Skip to content

Commit 52f81e8

Browse files
nikomatsakisclaude
andcommitted
feat(acp): implement ACP server and q acp command
Add Agent Client Protocol (ACP) server capability to Amazon Q CLI, allowing editors like Zed and Neovim to use Q as an AI coding assistant through a standardized JSON-RPC interface. Core implementation: - Actor-based ACP server architecture with session management - Complete ACP protocol support (initialize, sessions, prompts, streaming) - `q acp --agent profile` command with feature gating (acp.enabled setting) - Integration with existing Q CLI conversation and tool systems - Transport over stdio with proper async handling The ACP server reuses Q CLI's existing ConversationState, API client, and tool systems, providing the same models and capabilities as `q chat` but accessible from editors through the standardized protocol. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 37a77e0 commit 52f81e8

File tree

21 files changed

+1833
-104
lines changed

21 files changed

+1833
-104
lines changed

Cargo.lock

Lines changed: 88 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[workspace]
22
resolver = "3"
3-
members = ["crates/amzn-codewhisperer-client", "crates/amzn-codewhisperer-streaming-client", "crates/amzn-consolas-client", "crates/amzn-qdeveloper-streaming-client", "crates/amzn-toolkit-telemetry-client", "crates/aws-toolkit-telemetry-definitions", "crates/chat-cli", "crates/semantic-search-client"]
3+
members = [ "acp-client-test","crates/amzn-codewhisperer-client", "crates/amzn-codewhisperer-streaming-client", "crates/amzn-consolas-client", "crates/amzn-qdeveloper-streaming-client", "crates/amzn-toolkit-telemetry-client", "crates/aws-toolkit-telemetry-definitions", "crates/chat-cli", "crates/chat-script", "crates/semantic-search-client"]
44
default-members = ["crates/chat-cli"]
55

66
[workspace.package]
@@ -12,6 +12,7 @@ version = "1.16.2"
1212
license = "MIT OR Apache-2.0"
1313

1414
[workspace.dependencies]
15+
agent-client-protocol = "0.3.0"
1516
amzn-codewhisperer-client = { path = "crates/amzn-codewhisperer-client" }
1617
amzn-codewhisperer-streaming-client = { path = "crates/amzn-codewhisperer-streaming-client" }
1718
amzn-consolas-client = { path = "crates/amzn-consolas-client" }

crates/chat-cli/Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ default = []
1616
wayland = ["arboard/wayland-data-control"]
1717

1818
[dependencies]
19+
agent-client-protocol.workspace = true
1920
amzn-codewhisperer-client.workspace = true
2021
amzn-codewhisperer-streaming-client.workspace = true
2122
amzn-consolas-client.workspace = true
@@ -39,6 +40,7 @@ bstr.workspace = true
3940
bytes.workspace = true
4041
camino.workspace = true
4142
cfg-if.workspace = true
43+
chat-script = { path = "../chat-script" }
4244
chrono.workspace = true
4345
clap.workspace = true
4446
clap_complete.workspace = true

0 commit comments

Comments
 (0)