A Chrome extension to chat with AI agents. Give them the power to see and interact with your browser.
Built on ACP.
To use Chrome ACP, you need:
@chrome-acp/proxy-server— The proxy that bridges browser ↔ agent- An ACP-compatible agent (e.g. Claude Code + its ACP adapter)
# Install
npm install -g @chrome-acp/proxy-server @anthropic-ai/claude-code @zed-industries/claude-code-acp
# Start
acp-proxy --no-auth claude-code-acpThen open http://localhost:9315 in your browser.
For full browser control (reading tabs, executing scripts), use the extension:
- Download
chrome-acp.zipfrom Releases - Unzip and load in
chrome://extensions(enable Developer mode → Load unpacked) - Click the extension icon → Connect to your running proxy
- Works with any ACP-compatible agent — Claude Code, OpenCode, Gemini CLI, and more
- Runs anywhere with Node.js — Local machine, server, even Termux on Android
- Operates as you — Agents interact with pages using your real browser session (spoiler: crawler!)
graph LR
A[Chrome Extension] <-->|WebSocket| C[Proxy Server]
B[Web Client] <-->|WebSocket| C
C <-->|stdin/stdout| D[ACP Agent]
| Option | Default | Description |
|---|---|---|
--port |
9315 |
Server port |
--host |
localhost |
Host to bind (use 0.0.0.0 for network access) |
--https |
false |
Enable HTTPS with self-signed certificate (for LAN only) |
--public-url |
- | Public WebSocket URL for QR code (e.g., wss://example.com/ws) |
--no-auth |
false |
Disable authentication (safe for localhost, dangerous for remote) |
--termux |
false |
Auto-launch PWA via Termux on Android |
--debug |
false |
Enable debug logging to file |
For accessing from other devices on your network (e.g., mobile):
acp-proxy --https --host 0.0.0.0 <agent-command>The server prints URLs with embedded auth tokens and a QR code for mobile connection.
Note: HTTPS is required for camera access (QR scanning) on mobile devices.
acp-proxy --termux <agent-command>Auto-launches the PWA after server starts.
The extension exposes browser tools to agents via MCP:
| Tool | Description |
|---|---|
browser_tabs |
List all open tabs (id, url, title, active status) |
browser_read |
Read DOM content of a tab as simplified Markdown |
browser_execute |
Execute JavaScript in a tab's page context |
Usage flow:
- Agent calls
browser_tabsto list available tabs - Agent calls
browser_readwith atabIdto read page content - Agent calls
browser_executewith atabIdandscriptto interact with the page
Note: Browser tools require the Chrome extension. They are not available in the web client.
Claude Code — Anthropic's agentic coding tool
npm install -g @chrome-acp/proxy-server @anthropic-ai/claude-code @zed-industries/claude-code-acp
acp-proxy --no-auth claude-code-acpCodex CLI — OpenAI's coding agent
npm install -g @chrome-acp/proxy-server @openai/codex @zed-industries/codex-acp
acp-proxy --no-auth codex-acpOpenCode — Open-source terminal AI assistant
npm install -g @chrome-acp/proxy-server
curl -fsSL https://opencode.ai/install | bash
acp-proxy --no-auth opencode acpGemini CLI — Google's AI agent (free tier available)
npm install -g @chrome-acp/proxy-server @google/gemini-cli
acp-proxy --no-auth gemini -- --experimental-acpQwen Code — Free coding agent using Qwen models
npm install -g @chrome-acp/proxy-server @qwen-code/qwen-code@latest
acp-proxy --no-auth qwen -- --acpAugment Code — AI coding agent by Augment
npm install -g @chrome-acp/proxy-server @augmentcode/auggie
acp-proxy --no-auth auggie -- --acpAny ACP-compatible agent works with Chrome ACP.
# Use the project's Node.js version and pinned pnpm
nvm use
npm install --global pnpm@12.14.0
pnpm install
# Build all packages
pnpm run build
# Build individual packages
pnpm run build:extension # Chrome extension
pnpm run build:proxy # Proxy server
pnpm run build:web # Web client
pnpm run build:docs # Documentation
# Browser UI development with Vite hot reload
pnpm run dev
# Rebuild extension pages and background when source files change
pnpm --filter @chrome-acp/extension run watch
# Release new version
just release <version>For Chrome API testing, load packages/chrome-extension as an unpacked extension
in chrome://extensions. After a rebuild, reload the extension and reopen its
side panel. The Vite browser preview supports UI development; Chrome extension
APIs require the unpacked extension.
Both frontends use Vite 8. Build scripts run on Node.js; pnpm manages dependencies
and runs workspace commands. The proxy server uses TypeScript (tsc).
The pnpm workspace includes four application packages and the docs site.
Run installs from the repository root. pnpm-workspace.yaml defines membership,
and pnpm-lock.yaml locks every project. Internal packages use workspace:*.
CI installs with pnpm install --frozen-lockfile.
| Package | Description |
|---|---|
packages/chrome-extension |
Chrome extension with sidepanel chat UI |
packages/web-client |
PWA web client served by proxy server |
packages/shared |
Shared UI components and utilities (@chrome-acp/shared) |
packages/proxy-server |
WebSocket proxy server (npm: @chrome-acp/proxy-server) |
docs |
Rspress documentation site |
MIT