You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Every editor builds bespoke manifests or scrapes GitHub, leading to duplication and stale data.
21
21
22
22
## Agent manifest format (core proposal)
23
23
24
-
Each agent advertises itself via `agent.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):
|`id`**\***| Unique agent identifier. Lowercase letters, digits, and hyphens; must start with a letter (pattern: `^[a-z][a-z0-9-]*$`). Also the folder name in the registry repo. |
31
+
|`name`**\***| Human-readable display name. |
32
+
|`version`**\***| Semantic version of the agent release (e.g. `1.0.0`). |
33
+
|`description`**\***| Brief description of the agent's functionality and purpose. |
34
+
|`distribution`**\***| Object describing how to obtain and run the agent. Supports three distribution types: `binary` (platform-specific archives), `npx` (Node packages), and `uvx` (Python packages). At least one distribution type must be provided. See [Distribution](#distribution) for details. |
35
+
|`repository`| Source code repository URL. |
36
+
|`authors`| Array of author/organization names. |
37
+
|`license`| SPDX license identifier or `"proprietary"`. |
38
+
|`icon`| Path to icon file (relative path or absolute URL). Must be SVG format, 16×16, monochrome using `currentColor` (enables light/dark theme adaptation). See [Icon requirements](#icon-requirements). |
39
+
40
+
### Distribution
41
+
42
+
The `distribution` object supports three mutually independent strategies. An agent may provide one or more:
43
+
44
+
#### `binary`
45
+
46
+
Platform-specific archive downloads. Keyed by `<os>-<arch>` targets:
47
+
48
+
| Target | OS | Architecture |
49
+
| ----------------- | ------- | ------------ |
50
+
|`darwin-aarch64`| macOS | ARM64 |
51
+
|`darwin-x86_64`| macOS | x86-64 |
52
+
|`linux-aarch64`| Linux | ARM64 |
53
+
|`linux-x86_64`| Linux | x86-64 |
54
+
|`windows-aarch64`| Windows | ARM64 |
55
+
|`windows-x86_64`| Windows | x86-64 |
56
+
57
+
When using `binary` distribution, builds **must be provided for all three operating systems** (darwin, linux, windows). CI will reject entries that only cover a subset.
|`package`| Yes | Package name (with optional version spec) |
75
+
|`args`| No | Array of command-line arguments |
76
+
|`env`| No | Object of environment variables |
77
+
78
+
### Icon requirements
79
+
80
+
Icons must meet the following requirements to pass CI validation:
81
+
82
+
-**SVG format** — only `.svg` files are accepted.
83
+
-**16×16 dimensions** — via `width`/`height` attributes or `viewBox`.
84
+
-**Monochrome using `currentColor`** — all `fill` and `stroke` values must use `currentColor` or `none`. Hardcoded colors (e.g. `fill="#FF5500"`, `fill="red"`) are rejected.
85
+
86
+
Using `currentColor` lets icons adapt automatically to the client's light or dark theme.
|`version`| Registry schema version (semver, e.g. `1.0.0`). |
161
+
|`agents`| Array of agent entries (each following the agent manifest schema above, sourced from `agent.json` files). |
162
+
163
+
## Authentication requirements
164
+
165
+
To be listed in the registry, an agent **must support at least one** of the following authentication methods:
166
+
167
+
-**Agent Auth** — the agent handles the OAuth flow independently (opens the user's browser, runs a local callback server, exchanges the authorization code for tokens).
168
+
-**Terminal Auth** — the agent provides an interactive terminal-based setup experience (launched with additional args/env specified in the auth method).
169
+
170
+
CI verifies this by checking that the agent returns an `authMethods` array in its `initialize` response, with at least one method. See the [ACP auth methods RFD](./auth-methods) for the full specification.
171
+
93
172
## What we propose to do about it
94
173
95
174
1.**Manifest spec** (above) becomes normative; we publish the JSON Schema and validator script so maintainers can lint locally.
-CI validates manifests on every PR: schema compliance, slug uniqueness, icon format (16×16 SVG, monochrome `currentColor`), URL accessibility for all distribution URLs, authentication support via ACP handshake, and binary OS coverage.
178
+
-Push to `main` triggers a build that aggregates all entries into `registry.json` and publishes versioned + `latest` GitHub releases.
100
179
3.**Aggregated outputs**:
101
-
-`registry.json`: deterministic list of all agents with JSONC stripped.
180
+
-`registry.json`: deterministic list of all agents with icons copied to `dist/<id>.svg`.
102
181
4.**Distribution & search**:
103
-
- Clients fetch `registry.json` from a pinned release or `https://agentclientprotocol.com/registry.json` or `https://registry.agentclientprotocol.com`.
104
-
- Static site offers filters for capability, protocol version, deployment, auth model, and tags.
182
+
- Clients fetch `registry.json` from `https://cdn.agentclientprotocol.com/registry/v1/latest/registry.json`.
183
+
- Static site offers filters for deploymentmodel, license, and distribution type.
105
184
106
185
## Shiny future
107
186
108
187
- Agent maintainers make PRs to update their manifests; CI keeps data clean.
188
+
- Automated version updates run hourly, checking npm, PyPI, and GitHub releases for new versions of registered agents and opening PRs automatically.
109
189
- Editors/clients can bootstrap ACP support by fetching one JSON file and filtering locally.
110
190
- The ACP website displays the same data for humans, ensuring consistency.
111
-
-Protocol-version mismatches are visible immediately; clients can warn or hide incompatible agents.
191
+
-Package-based distribution (`npx`, `uvx`) lowers the barrier for agents that don't need platform-specific binaries.
112
192
113
193
## Implementation details and plan
114
194
115
195
**Phase 1 – Spec & repo bootstrap**
116
196
117
-
- Think about the auth options.
118
197
- Finalize JSON Schema and documentation.
119
-
- Ask agent developers to contribute their thoughts on the spec.
120
-
- Create registry repo with CI (GitHub Actions) that runs validation on PRs.
121
-
- Seed with a few reference agents to prove the workflow.
198
+
- Create registry repo with CI (GitHub Actions) that validates on PRs and publishes on merge.
199
+
- Seed with reference agents.
200
+
- Implement automated version update workflow (hourly cron via GitHub Actions).
201
+
- Enforce authentication requirements via CI handshake verification.
122
202
123
203
## Revision history
124
204
125
205
- 2025-11-28: Initial draft.
126
206
- 2025-12-16: Minors.
207
+
- 2026-02-04: Updated to match latest schema — removed `schema_version`, `homepage`, `capabilities`, and `auth` fields; added `icon` field; restructured `distribution` into `binary`, `npx`, and `uvx` types.
0 commit comments