ACP Client for VS Code
A Visual Studio Code extension that provides a client for the Agent Client Protocol (ACP) — connect to any ACP-compatible AI coding agent directly from your editor.

Features
- Multi-Agent Support: Connect to 8 pre-configured ACP agents or add your own
- Single-Agent Focus: One agent active at a time — seamlessly switch between agents
- Interactive Chat: Built-in chat panel with Markdown rendering, inline tool call display, and collapsible tool sections
- Mode & Model Picker: Switch agent modes and models directly from the chat toolbar
- File System Integration: Agents can read and write files in your workspace
- Terminal Execution: Agents can run commands with terminal output display
- Permission Management: Configurable auto-approve policies for agent actions
- Protocol Traffic Logging: Inspect all ACP JSON-RPC messages with request/response/notification labels
- Agent Registry: Browse and discover available ACP agents
- Chat Persistence: Conversations are preserved when switching panels
Quick Start
- Install the extension
- Open the ACP Client panel from the Activity Bar (ACP icon)
- Click + to add an agent configuration, or use the defaults
- Click an agent to connect
- Start chatting!
Requirements
- Node.js 18+ (for spawning agent processes)
- An ACP-compatible agent installed or available via
npx
The extension comes with default configurations for:
| Agent |
Command |
| GitHub Copilot |
npx @github/copilot-language-server@latest --acp |
| Claude Code |
npx @zed-industries/claude-code-acp@latest |
| Gemini CLI |
npx @google/gemini-cli@latest --experimental-acp |
| Qwen Code |
npx @qwen-code/qwen-code@latest --acp --experimental-skills |
| Auggie CLI |
npx @augmentcode/auggie@latest --acp |
| Qoder CLI |
npx @qoder-ai/qodercli@latest --acp |
| Codex CLI |
npx @zed-industries/codex-acp@latest |
| OpenCode |
npx opencode-ai@latest acp |
You can add custom agent configurations in settings.
Extension Settings
| Setting |
Default |
Description |
acp.agents |
(8 agents) |
Agent configurations. Each key is the agent name, value has command, args, and env. |
acp.autoApprovePermissions |
ask |
How agent permission requests are handled: ask, allowRead, or allowAll. |
acp.defaultWorkingDirectory |
"" |
Default working directory for agent sessions. Empty uses current workspace. |
acp.logTraffic |
true |
Log all ACP protocol traffic to the ACP Traffic output channel. |
Commands
All commands are accessible via the Command Palette (Ctrl+Shift+P):
| Command |
Description |
ACP: Connect to Agent |
Connect to an agent |
ACP: New Conversation |
Start a new conversation with the connected agent |
ACP: Send Prompt |
Send a message to the agent |
ACP: Cancel Current Turn |
Cancel the current agent turn |
ACP: Disconnect Agent |
Disconnect from the current agent |
ACP: Restart Agent |
Restart the current agent process |
ACP: Open Chat Panel |
Focus the chat webview |
ACP: Add Agent Configuration |
Add a new agent to settings |
ACP: Remove Agent |
Remove an agent configuration |
ACP: Set Agent Mode |
Change the agent's operating mode |
ACP: Set Agent Model |
Change the agent's model |
ACP: Show Log |
Open the ACP Client log output channel |
ACP: Show Protocol Traffic |
Open the ACP Traffic output channel |
ACP: Browse Agent Registry |
Browse the ACP agent registry |
Keyboard Shortcuts
| Shortcut |
Action |
Ctrl+Shift+A (Cmd+Shift+A on Mac) |
Open Chat Panel |
Escape (when turn in progress) |
Cancel Current Turn |
Development
Prerequisites
- Node.js 18+
- VS Code 1.85+
Setup
git clone https://github.com/your-username/vscode-acp.git
cd vscode-acp
npm install
Build & Run
npm run compile # One-time build
npm run watch # Watch mode for development
Press F5 in VS Code to launch the Extension Development Host.
Testing
npm run pretest # Compile tests + lint
npm test # Run tests
Packaging
npm run package # Production build
npx @vscode/vsce package # Create .vsix
Architecture
The extension follows a modular architecture:
- Core:
AgentManager, ConnectionManager, SessionManager, AcpClientImpl
- Handlers:
FileSystemHandler, TerminalHandler, PermissionHandler, SessionUpdateHandler
- UI:
SessionTreeProvider, ChatWebviewProvider, StatusBarManager
- Config:
AgentConfig, RegistryClient
- Utils:
Logger, StreamAdapter
Communication with agents uses the ACP protocol (JSON-RPC 2.0 over stdio).
Known Issues
- Agents must be available via the system PATH or
npx
- Some agents may require additional authentication setup
- File attachment feature is not yet functional
License
MIT — see LICENSE for details.