ACP Pilot
A Visual Studio Code extension that provides a chat 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 pre-configured ACP agents or add your own custom agent configurations
- Interactive Chat: Built-in chat panel in the sidebar with Markdown rendering and syntax highlighting
- Thinking Display: See agent reasoning in collapsible blocks with streaming animation
- Tool Call Cards: File read/write cards with diff preview, terminal execution cards with output display
- Plan Display: View agent execution plans as interactive cards
- Code Selection to Chat: Select code in the editor and send it as a reference to the chat panel
- Context Usage Tracking: Real-time token/context usage indicator in the status bar
- Session Management: Create new sessions, switch between conversations, reconnect agents
- Permission Management: Configurable auto-approve policies for agent tool calls
- Streaming Messages: Real-time text streaming with incremental rendering

Quick Start
- Install the extension
- Open the ACP Pilot panel from the Activity Bar (chat icon on the left)
- Click Connect to connect to the default agent (Hermes Agent)
- Start chatting!
Requirements
- VS Code 1.88.0+
- An ACP-compatible agent installed and available on your
PATH
The extension comes with a default configuration for:
| Agent |
Command |
Args |
| Hermes Agent |
hermes |
acp |
| Claude Code |
claude |
--acp, --stdio |
| Codex CLI |
codex |
--acp, --stdio |
| OpenCode |
opencode |
acp |
You can add custom agent configurations in settings.
Note on Hermes Agent: Hermes is a Python package. Install it via pip install hermes-agent or the Hermes Quickstart. Make sure hermes is on your PATH.
Extension Settings
| Setting |
Default |
Description |
acp-pilot.agents |
{"Hermes Agent": {"command": "hermes", "args": ["acp"]}} |
Agent launch configurations keyed by display name. Each entry has command, args, and env. |
acp-pilot.agent.cwd |
"" |
Working directory for the agent process. Empty string uses current workspace folder. |
acp-pilot.permission.policy |
autoApproveAll |
Permission policy for agent tool calls: autoApproveAll, autoApproveRead, or askForAll. |
Permission Policies
| Policy |
Description |
autoApproveAll |
Auto-approve all tool calls |
autoApproveRead |
Auto-approve read operations, ask for write/execute |
askForAll |
Ask for every tool call |
Commands
All commands are accessible via the Command Palette (Cmd/Ctrl+Shift+P):
| Command |
Description |
ACP Pilot: Open Chat |
Open the ACP Pilot panel |
ACP Pilot: Connect Agent |
Connect to the configured agent |
ACP Pilot: Disconnect Agent |
Disconnect from the current agent |
ACP Pilot: Select Agent |
Select or switch agent |
ACP Pilot: New Session |
Start a new conversation session |
ACP Pilot: Add Selection to Chat |
Add selected code as a reference to the chat input |
Keyboard Shortcuts
| Shortcut |
Action |
Cmd+Shift+Alt+A (macOS) / Ctrl+Shift+Alt+A (Windows/Linux) |
Add Selection to Chat |
Only available when text is selected in the editor. Customizable via Cmd/Ctrl+K Cmd/Ctrl+S.
Code References
Select code in the editor, then use right-click menu, keyboard shortcut, or command palette to add it as a reference chip to the chat input. Multiple references can be added and removed individually. When sent, referenced code is automatically formatted as a quote block attached to your message.
Development
Setup
pnpm install
Build & Run
pnpm build # Build all packages
pnpm mock-host # Start webview UI + ACP bridge for development
pnpm test # Run extension tests
pnpm package # Build and package .vsix
Press F5 in VS Code to launch the Extension Development Host.
Project Structure
acp-pilot/
├── packages/
│ ├── extension/ # VS Code extension (Rslib)
│ ├── webview-ui/ # Preact + Vite webview frontend
│ ├── core/ # ACP protocol core logic
│ └── shared/ # Shared types and utilities
├── apps/
│ └── acp-bridge/ # ACP bridge / mock-host for development
└── package.json
Links
License
MIT