mirror of
https://github.com/claude-code-best/claude-code.git
synced 2026-06-22 00:05:51 +00:00
* feat: acp-link 支持 --group 参数指定 channel group - 添加 --group CLI flag,校验格式 [a-zA-Z0-9_-]+ - 支持 ACP_RCS_GROUP 环境变量 fallback - 传递 channelGroupId 到 RcsUpstreamClient - 更新 README 文档说明 --group 和相关环境变量 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: RCS 后端 session 复用与 group 绑定 - storeFindEnvironmentByMachineName 匹配 offline 状态,防止重连创建重复 session - registerEnvironment 复用已有 session 而非每次新建 - EnvironmentResponse 返回 channel_group_id 字段 - 注册时将 session 绑定到 group ID,支持 web UI 按 group 查询 - apiKeyAuth 不再设置 uuid,由 uuidAuth 统一处理 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: Web UI Token Manager — 多 token 切换与 session 隔离 - 新增 useTokens hook 管理 localStorage token CRUD - 新增 TokenManagerDialog 弹窗组件(添加/编辑/删除/切换 token) - api client 支持Bearer token 认证,UUID 跟随 token 变化 - Navbar 添加 token 切换按钮 - 切换 token 时自动 reload,实现 session 数据隔离 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: 修复 useTokens useState 初始化函数签名错误 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
106 lines
2.8 KiB
Markdown
106 lines
2.8 KiB
Markdown
# acp-link
|
|
|
|
ACP proxy server that bridges WebSocket clients to ACP (Agent Client Protocol) agents.
|
|
|
|
> Source code adapted from [chrome-acp](https://github.com/Areo-Joe/chrome-acp).
|
|
|
|
## Installation
|
|
|
|
### From source
|
|
|
|
```bash
|
|
# From monorepo root
|
|
bun install
|
|
```
|
|
|
|
## Usage
|
|
|
|
```bash
|
|
# Via global install
|
|
acp-link /path/to/agent
|
|
|
|
# Via source
|
|
bun src/cli/bin.ts /path/to/agent
|
|
```
|
|
|
|
### Examples
|
|
|
|
```bash
|
|
# Basic usage
|
|
acp-link /path/to/agent
|
|
|
|
# With custom port and host
|
|
acp-link --port 9000 --host 0.0.0.0 /path/to/agent
|
|
|
|
# With debug logging
|
|
acp-link --debug /path/to/agent
|
|
|
|
# Enable HTTPS with self-signed certificate
|
|
acp-link --https /path/to/agent
|
|
|
|
# Disable authentication (dangerous)
|
|
acp-link --no-auth /path/to/agent
|
|
|
|
# Register to RCS with a specific channel group
|
|
acp-link --group my-team /path/to/agent
|
|
|
|
# Pass arguments to the agent (use -- to separate)
|
|
acp-link /path/to/agent -- --verbose --model gpt-4
|
|
```
|
|
|
|
## CLI Reference
|
|
|
|
```
|
|
USAGE
|
|
acp-link [--port value] [--host value] [--debug] [--no-auth] [--https] [--group value] <command>...
|
|
acp-link --help
|
|
acp-link --version
|
|
|
|
FLAGS
|
|
[--port] Port to listen on [default = 9315]
|
|
[--host] Host to bind to [default = localhost]
|
|
[--debug] Enable debug logging to file
|
|
[--no-auth] Disable authentication (dangerous)
|
|
[--https] Enable HTTPS with self-signed cert
|
|
[--group] Channel group ID for RCS registration (letters, digits, hyphens, underscores only)
|
|
-h --help Print help information and exit
|
|
-v --version Print version information and exit
|
|
|
|
ARGUMENTS
|
|
command... Agent command followed by its arguments
|
|
```
|
|
|
|
## How It Works
|
|
|
|
1. Listens for WebSocket connections from clients
|
|
2. When a "connect" message is received, spawns the configured ACP agent as a subprocess
|
|
3. Bridges messages between the WebSocket (client) and stdin/stdout (agent via ACP protocol)
|
|
4. Supports session management: create, load, resume, list sessions
|
|
5. Handles permission approval flow and heartbeat keepalive
|
|
|
|
## Authentication
|
|
|
|
By default, a random token is auto-generated on startup. Pass it as a query parameter:
|
|
|
|
```
|
|
ws://localhost:9315/ws?token=<your-token>
|
|
```
|
|
|
|
Set `ACP_AUTH_TOKEN` env var to use a fixed token, or use `--no-auth` to disable (not recommended).
|
|
|
|
## RCS Upstream
|
|
|
|
acp-link can register to a Remote Control Server (RCS) for remote access. Set the following environment variables:
|
|
|
|
| Variable | Description |
|
|
|----------|-------------|
|
|
| `ACP_RCS_URL` | RCS server URL (e.g. `http://rcs.example.com:3000`) |
|
|
| `ACP_RCS_TOKEN` | API token for RCS authentication |
|
|
| `ACP_RCS_GROUP` | Channel group ID to lock the agent into (letters, digits, `-`, `_` only) |
|
|
|
|
You can also use `--group <id>` on the CLI. The CLI flag takes priority over the env var.
|
|
|
|
## License
|
|
|
|
MIT
|