|
2 | 2 | <img alt="Agent Client Protocol" src="https://zed.dev/img/acp/banner-dark.webp"> |
3 | 3 | </a> |
4 | 4 |
|
5 | | -# Agent Client Protocol |
| 5 | +# ACP TypeScript Library |
6 | 6 |
|
7 | | -The Agent Client Protocol (ACP) standardizes communication between _code editors_ (interactive programs for viewing and editing source code) and _coding agents_ (programs that use generative AI to autonomously modify code). |
| 7 | +The official TypeScript implementation of the Agent Client Protocol (ACP) — a standardized communication protocol between code editors and AI-powered coding agents. |
8 | 8 |
|
9 | | -Learn more at [agentclientprotocol.com](https://agentclientprotocol.com/). |
| 9 | +Learn more at https://agentclientprotocol.com |
10 | 10 |
|
11 | | -## Integrations |
| 11 | +## Installation |
12 | 12 |
|
13 | | -### Editors |
| 13 | +```bash |
| 14 | +npm install @agentclientprotocol/sdk |
| 15 | +``` |
14 | 16 |
|
15 | | -- [Zed](https://zed.dev/docs/ai/external-agents) |
16 | | -- Emacs via [agent-shell.el](https://github.com/xenodium/agent-shell) |
17 | | -- [JetBrains _(coming soon)_](https://blog.jetbrains.com/ai/2025/10/jetbrains-zed-open-interoperability-for-ai-coding-agents-in-your-ide/) |
18 | | -- [marimo notebook](https://github.com/marimo-team/marimo) |
19 | | -- [neovim](https://neovim.io) |
20 | | - - through the [CodeCompanion](https://github.com/olimorris/codecompanion.nvim) plugin |
21 | | - - through the [yetone/avante.nvim](https://github.com/yetone/avante.nvim) plugin |
| 17 | +## Get Started |
22 | 18 |
|
23 | | -### Agents |
| 19 | +### Understand the Protocol |
24 | 20 |
|
25 | | -- [Claude Code](https://docs.anthropic.com/en/docs/claude-code/overview) |
26 | | - - [via Zed's SDK adapter](https://github.com/zed-industries/claude-code-acp) |
27 | | -- [Gemini](https://github.com/google-gemini/gemini-cli) |
28 | | -- [Goose](https://block.github.io/goose/docs/guides/acp-clients) |
29 | | -- [JetBrains Junie _(coming soon)_](https://www.jetbrains.com/junie/) |
30 | | -- [Stakpak](https://github.com/stakpak/agent?tab=readme-ov-file#agent-client-protocol-acp) |
31 | | -- [VT Code](https://github.com/vinhnx/vtcode/blob/main/README.md#zed-ide-integration-agent-client-protocol) |
| 21 | +Start by reading the [official ACP documentation](https://agentclientprotocol.com) to understand the core concepts and protocol specification. |
32 | 22 |
|
33 | | -## Libraries and Schema |
| 23 | +### Try the Examples |
34 | 24 |
|
35 | | -- **JSON Schema**: [`schema.json`](./schema/schema.json) |
36 | | -- **Kotlin**: [`acp-kotlin`](https://github.com/agentclientprotocol/acp-kotlin-sdk) – supports JVM, other targets are in progress |
37 | | -- **Rust**: [`agent-client-protocol`](https://crates.io/crates/agent-client-protocol) - See [examples/agent.rs](./rust/examples/agent.rs) and [examples/client.rs](./rust/examples/client.rs) |
38 | | -- **TypeScript**: [`@agentclientprotocol/sdk`](https://www.npmjs.com/package/@agentclientprotocol/sdk) - See [examples/](./src/examples/) |
| 25 | +The [examples directory](https://github.com/agentclientprotocol/agent-client-protocol/tree/main/src/examples) contains simple implementations of both Agents and Clients in TypeScript. These examples can be run from your terminal or from an ACP Client like [Zed](https://zed.dev), making them great starting points for your own integration! |
39 | 26 |
|
40 | | -### From the Community |
| 27 | +### Explore the API |
41 | 28 |
|
42 | | -- **Dart**: [`acp_dart`](https://github.com/SkrOYC/acp-dart) |
43 | | -- **Emacs**: [`acp.el`](https://github.com/xenodium/acp.el) |
44 | | -- **Go**: [`acp-go-sdk`](https://github.com/coder/acp-go-sdk) |
45 | | -- **Python**: [`agent-client-protocol-python`](https://github.com/PsiACE/agent-client-protocol-python) |
46 | | -- **React**: [`use-acp`](https://github.com/marimo-team/use-acp): hooks for connecting to Agent Client Protocol (ACP) servers. |
| 29 | +Browse the [TypeScript library reference](https://agentclientprotocol.github.io/agent-client-protocol) for detailed API documentation. |
47 | 30 |
|
48 | | -## Contributing |
| 31 | +If you're building an [Agent](https://agentclientprotocol.com/protocol/overview#agent), start with [AgentSideConnection](https://agentclientprotocol.github.io/agent-client-protocol/classes/AgentSideConnection.html). |
| 32 | + |
| 33 | +If you're building a [Client](https://agentclientprotocol.com/protocol/overview#client), start with [ClientSideConnection](https://agentclientprotocol.github.io/agent-client-protocol/classes/ClientSideConnection.html). |
49 | 34 |
|
50 | | -ACP is a protocol intended for broad adoption across the ecosystem; we follow a structured process to ensure changes are well-considered. |
| 35 | +### Study a Production Implementation |
51 | 36 |
|
52 | | -### Pull Requests |
| 37 | +For a complete, production-ready implementation, check out the [Gemini CLI Agent](https://github.com/google-gemini/gemini-cli/blob/main/packages/cli/src/zed-integration/zedIntegration.ts). |
53 | 38 |
|
54 | | -Pull requests should intend to close [an existing issue](https://github.com/agentclientprotocol/agent-client-protocol/issues). |
| 39 | +## Resources |
55 | 40 |
|
56 | | -### Issues |
| 41 | +- [Library docs](https://agentclientprotocol.github.io/agent-client-protocol) |
| 42 | +- [Examples](https://github.com/agentclientprotocol/agent-client-protocol/tree/main/src/examples) |
| 43 | +- [Protocol Documentation](https://agentclientprotocol.com) |
| 44 | +- [GitHub Repository](https://github.com/agentclientprotocol/agent-client-protocol) |
| 45 | +- [NPM Package](https://www.npmjs.com/package/@agentclientprotocol/sdk) |
| 46 | + |
| 47 | +## Contributing |
57 | 48 |
|
58 | | -- **Bug Reports**: If you notice a bug in the protocol, please file [an issue](https://github.com/agentclientprotocol/agent-client-protocol/issues/new?template=05_bug_report.yml) and we will be in touch. |
59 | | -- **Protocol Suggestions**: If you'd like to propose additions or changes to the protocol, please start a [discussion](https://github.com/agentclientprotocol/agent-client-protocol/discussions/categories/protocol-suggestions) first. We want to make sure proposed suggestions align well with the project. If accepted, we can have a conversation around the implementation of these changes. Once that is complete, we will create an issue for pull requests to target. |
| 49 | +See the main [repository](https://github.com/agentclientprotocol/agent-client-protocol) for contribution guidelines. |
60 | 50 |
|
61 | 51 | ### License |
62 | 52 |
|
|
0 commit comments