This file provides guidance to AI coding agents when working with code in this repository.
# Build registry (validates all agents and outputs to dist/)
uv run --with jsonschema .github/workflows/build_registry.py
# Dry run (validate without writing to dist/)
uv run --with jsonschema .github/workflows/build_registry.py --dry-run
# Build without schema validation (if jsonschema not available)
python .github/workflows/build_registry.py# Run tests
cd .github/workflows && uv run --with pytest pytest tests/ -v
# Lint check
cd .github/workflows && uv run --with ruff ruff check .
# Format check
cd .github/workflows && uv run --with ruff ruff format --check .
# Auto-fix formatting
cd .github/workflows && uv run --with ruff ruff format .This is a registry of ACP (Agent Client Protocol) agents. The structure is:
<id>/
├── agent.json # Agent metadata and distribution info
└── icon.svg # Icon: 16x16 SVG, monochrome with currentColor (required)
Build process (.github/workflows/build_registry.py):
- Scans directories for
agent.jsonfiles - Validates against
agent.schema.json(JSON Schema) - Validates icons (16x16 SVG, monochrome with
currentColor) - Aggregates into
dist/registry.json - Copies icons to
dist/<id>.svg
CI/CD (.github/workflows/build-registry.yml):
- PRs: Runs validation only
- Push to main: Validates, then publishes versioned +
latestGitHub releases
id: lowercase, hyphens only, must match directory nameversion: semantic versioning (e.g.,1.0.0)distribution: at least one ofbinary,npx,uvxbinarydistribution: builds for all operating systems (darwin, linux, windows) are recommended; missing OS families produce a warningbinaryarchives must use supported formats (.zip,.tar.gz,.tgz,.tar.bz2,.tbz2, or raw binaries); installer formats (.dmg,.pkg,.deb,.rpm,.msi,.appimage) are rejectedicon.svg: must be SVG format, 16x16, monochrome usingcurrentColor(enables theming)- URL validation: All distribution URLs must be accessible (binary archives, npm/PyPI packages)
Set SKIP_URL_VALIDATION=1 to bypass URL checks during local development.
Agent versions are automatically updated via .github/workflows/update-versions.yml:
- Schedule: Runs hourly (cron:
0 * * * *) - Scope: Checks all agents in the root directory
- Supported distributions:
npx(npm),uvx(PyPI),binary(GitHub releases)
# Dry run - check for available updates
uv run .github/workflows/update_versions.py
# Apply updates locally
uv run .github/workflows/update_versions.py --apply
# Check specific agents only
uv run .github/workflows/update_versions.py --agents gemini,github-copilotThe workflow can also be triggered manually via GitHub Actions with options to apply updates and filter by agent IDs.
To update agents manually:
- For npm packages (
npxdistribution): Check latest version athttps://registry.npmjs.org/<package>/latest - For GitHub binaries (
binarydistribution): Check latest release athttps://api.github.com/repos/<owner>/<repo>/releases/latest
Update agent.json:
- Update the
versionfield - Update version in all distribution URLs (use replace-all for consistency)
- For npm: update
packagefield (e.g.,@google/gemini-cli@0.22.5) - For binaries: update archive URLs with new version/tag
Run build to validate: uv run --with jsonschema .github/workflows/build_registry.py
binary: Platform-specific archives (darwin-aarch64,linux-x86_64, etc.). Supported archive formats:.zip,.tar.gz,.tgz,.tar.bz2,.tbz2, or raw binaries. Supporting all operating systems (darwin, linux, windows) is recommended.npx: npm packages (cross-platform by default)uvx: PyPI packages (cross-platform by default)
Icons must be:
- SVG format (only
.svgfiles accepted) - 16x16 dimensions (via width/height attributes or viewBox)
- Monochrome using
currentColor- all fills and strokes must usecurrentColorornone
Using currentColor enables icons to adapt to different themes (light/dark mode) automatically.
Valid example:
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
<path fill="currentColor" d="M..."/>
</svg>Invalid patterns:
- Hardcoded colors:
fill="#FF5500",fill="red",stroke="rgb(0,0,0)" - Missing currentColor:
fillorstrokewithoutcurrentColor
Agents must support ACP authentication. The CI verifies auth via .github/workflows/verify_agents.py --auth-check.
Requirements:
- Return
authMethodsarray ininitializeresponse - At least one method must have type
"agent"or"terminal"
See AUTHENTICATION.md for details on implementing auth methods.