Elevator pitch
ACP needs a single, trusted registry of agents so clients can discover integrations, understand their capabilities, and configure them automatically. This RFD proposes (1) a canonical manifest format that every agent must publish, (2) a dedicatedagentclientprotocol/registry repo where maintainers contribute those manifests, and (3) tooling that aggregates and publishes a searchable catalog for editors and other clients.
Status quo
There is no canonical listing of ACP-compatible agents. Information lives in scattered READMEs or proprietary feeds, which makes it hard to:- Let users discover agents directly inside ACP-aware clients.
- Ensure protocol-version compatibility or capability coverage.
- Keep metadata consistent (auth requirements, hosting model, license, etc.).
Agent manifest format (core proposal)
Each agent advertises itself viaagent.json stored under <id>/ in the registry repo. JSONC keeps things close to ACP’s JSON-centric schemas while remaining human-friendly during authoring. Fields (required unless noted):
| Field | Description |
|---|---|
id | Lowercase slug, unique across registry (also the folder name). |
name | Human-readable label. |
version | Agent release version surfaced to users. |
schema_version | Semver of the manifest schema. Allows future breaking changes. |
description | Description of the agent’s functionality and purpose. |
homepage | URL for docs/marketing. |
repository | Source repository URL. |
authors | Array of author/organization names (mirrors authors in the TOML example). |
license | Licence (string). |
capabilities | Array of ACP method names implemented (e.g. ["terminal/new","files/read"]). |
auth | Array of auth options for authentication. This is the trickiest part of the schema. |
distribution | Object mapping target platforms to download/execution info. Each target key follows <os>-<arch> format (e.g., darwin-aarch64, linux-x86_64, windows-x86_64). Each target specifies archive (download URL), cmd (executable path), optional args (array of command-line arguments), and optional env (object of environment variables). |
What we propose to do about it
- Manifest spec (above) becomes normative; we publish the JSON Schema and validator script so maintainers can lint locally.
- Registry repository
github.com/agentclientprotocol/registry:- Structure:
<id>/agent.json, optionalicon.svg(oricon-light.svgandicon-dark.svgfor theme-specific variants), optionalREADME.md. - Icons should be SVG format for scalability. If providing theme-specific icons, both light and dark variants must be included.
- CI: validate manifests, enforce slug uniqueness, check asset sizes, generate aggregate artifacts.
- Structure:
- Aggregated outputs:
registry.json: deterministic list of all agents with JSONC stripped.
- Distribution & search:
- Clients fetch
registry.jsonfrom a pinned release orhttps://agentclientprotocol.com/registry.jsonorhttps://registry.agentclientprotocol.com. - Static site offers filters for capability, protocol version, deployment, auth model, and tags.
- Clients fetch
Shiny future
- Agent maintainers make PRs to update their manifests; CI keeps data clean.
- Editors/clients can bootstrap ACP support by fetching one JSON file and filtering locally.
- The ACP website displays the same data for humans, ensuring consistency.
- Protocol-version mismatches are visible immediately; clients can warn or hide incompatible agents.
Implementation details and plan
Phase 1 – Spec & repo bootstrap- Think about the auth options.
- Finalize JSON Schema and documentation.
- Ask agent developers to contribute their thoughts on the spec.
- Create registry repo with CI (GitHub Actions) that runs validation on PRs.
- Seed with a few reference agents to prove the workflow.
Revision history
- 2025-11-28: Initial draft.
- 2025-12-16: Minors.