feat(server): add ACP support #191
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR introduces the
deepagents-acppackage, enabling DeepAgents to integrate with IDEs like Zed, JetBrains, and other clients that support the Agent Client Protocol (ACP). This brings AI coding assistance directly into development environments through a standardized communication protocol.Motivation
The Agent Client Protocol is emerging as a standard for how IDEs communicate with AI coding agents. By implementing ACP support, DeepAgents can now:
What's Included
New Package:
deepagents-acpA complete ACP server implementation that wraps DeepAgents:
server.tsDeepAgentsServerclass implementing the ACP protocolcli.tsnpx deepagents-acp) with full option parsingadapter.tstypes.tslogger.tsindex.tsACP Protocol Implementation
Agent Methods:
initialize- Negotiate protocol version and capabilitiesauthenticate- Pass-through authenticationsession/new- Create conversation sessions with mode selectionsession/load- Resume existing sessionssession/prompt- Process user prompts with streaming responsessession/cancel- Cancel in-progress operationssession/set_mode- Switch between agent/plan/ask modesSession Updates (Streaming):
agent_message_chunk- Stream text responsesagent_thought_chunk- Stream agent reasoningtool_call/tool_call_update- Track tool executionplan- Send task planning updatesCLI Features
--name value,--name=value)ANTHROPIC_API_KEY,DEBUG,WORKSPACE_ROOT)Testing
Comprehensive test coverage:
server.test.tsserver.int.test.tscli.int.test.tsadapter.test.tslogger.test.tsExample
Added
examples/acp-server/server.tsdemonstrating programmatic usage with custom configuration.Usage
With Zed
Add to
~/.config/zed/settings.json:{ "agent": { "profiles": { "deepagents": { "name": "DeepAgents", "command": "npx", "args": ["deepagents-acp", "--name", "my-agent", "--debug"], "env": { "ANTHROPIC_API_KEY": "sk-ant-..." } } } } }Programmatically
Architecture
Future Improvements