# @agentproto/cli 中文文档

规范地址：https://npmcn.com/package/%40agentproto/cli/

版本：1\.34\.0
npm 元数据更新时间：2026-11-05T17:49:23.726Z
中文译文更新时间：2026-11-06T01:51:35.187Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40agentproto/cli
原文对照：https://npmcn.com/package/%40agentproto/cli/?lang=original
项目主页：https://agentproto.sh/
源码仓库：https://github.com/agentproto/ts

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：101 MB，38 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=20\.9\.0
- 运行依赖：37 个
- 首次发布：2026-05-09T20:03:52.392Z
- 最新版本发布：2026-11-05T17:49:23.367Z
- 近 30 天下载量：6963（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：80（近 12 个月 80 个）

## 中文简介

@agentproto/cli — 翻译: `agentproto` 二进制. 安装 AIP-45 代理CLI 适配器,在本地运行,或者在地道上暴露出它们作为长跑守护进程. hermes / claude-code / opencode / gemini- cli / 鹅的参考主机, 全部通过 @ agentproto/ 驱动

## 安装

```sh
npm install @agentproto/cli
```

也可以使用：`pnpm add @agentproto/cli`、`yarn add @agentproto/cli`、`bun add @agentproto/cli`

## README

# @ agentproto/ cli (英语)

这个 `agentproto` 二进制 - 主机 [AIP-45代理公司](https://agentproto.sh/docs/aip-45)安装适配器,运行一发旋转,产出长寿会话,在隧道上曝光,并从终端或网络客户端驱动交互的PTY.

```bash
npm install -g @agentproto/cli
```

此安装 `agentproto` 您的可执行文件 `PATH`。 。 。 .

## 动词

```text
agentproto auth         <login|status|logout> [--host <url>]        authenticate against a remote host
agentproto config       <show|path|get|set|unset|edit>              read/write ~/.agentproto/config.json
agentproto app          <init|validate|pack|unpack|serve|build|dev|install|resync|list|catalog|uninstall|update|store|tunnel>  package, serve, install or browse agentproto apps
agentproto daemon       <install|uninstall|start|restart|stop|status|logs>  manage launchd/systemd service
agentproto install      <slug> [--force] [--dry-run] [--allow-unverified]  install an adapter's underlying CLI
agentproto plugins      <list|show|install|uninstall|enable|disable> manage runtime plugins
agentproto setup        <slug> [--force] [--dry-run] [--only ...]   re-run an adapter's setup steps
agentproto run          <slug> [--cwd <dir>] [--prompt <text>]      spawn the adapter, dispatch one turn, exit
agentproto chat         <adapter> [--model <id>] [--cwd <dir>]      interactive chat
agentproto chat-tui     <adapter> [--model <id>] [--cwd <dir>]      interactive TUI chat
agentproto models       [adapter] [--json]                          runnable models + provider-key status
agentproto run-swarm    --manifest <path> [--once] [--interval ...]  run a swarm manifest
agentproto serve        [--port <n>] [--workspace <dir>] [--connect <wss>]  local daemon
agentproto workspace    <add|list|remove|use|remote|check>          register spawn workspaces; check a workspace/v2 tree
agentproto sessions     [start|terminal|mirror|prompt|stop|report|...]     browse / control live sessions
agentproto browser      <install|start|list|stop|status>            manage browser sessions
agentproto tunnel       <create|list|stop|revoke|status>                   public URL tunnels
agentproto provider-preset list [--json]                            provider gateway definitions
agentproto preset       <list|show|add|delete>                       saved user spawn configurations
agentproto mcp-bridge                                               stdio MCP proxy to daemon /mcp
agentproto install-mcp  [--agent <name>...] [--all] [--yes]         register daemon MCP with coding CLIs
agentproto onboard      [--yes] [--no-skills] [--skills <slug>]     first-run setup
agentproto cron         <add|list|remove|run>                       recurring daemon jobs
agentproto worktree     <ls|new|rm|archive|gc>                       git worktree lifecycle
agentproto policy       <attach|status|wait|ack|ls|cancel>          completion-policy CLI (shell/judge gates)
agentproto permissions  <ls|approve|deny|watch>                           held tool-permission requests
agentproto acp          <ls|add|rm>                                 generic ACP agent registry
agentproto pair         <offer|accept|ls|revoke|exec>               pairing over a rendezvous broker
agentproto rendezvous   serve [--port <n>] [--host <ip>]           run a rendezvous broker
```

> `agentproto --help` 打印全部使用; `--version` 打印软件包版本.

## 快开始

```bash
# 1. Install an adapter (one-time, per slug).
npm i -g @agentproto/adapter-claude-code

# 2. One-shot: get a single turn back and exit.
agentproto run claude-code --cwd . --prompt "summarise this repo"

# 3. Daemon: keep the gateway alive so you can drive sessions over HTTP / MCP / WS.
agentproto serve &

# 4. Spawn a real terminal under PTY and attach to it.
agentproto sessions terminal --name claude-tui --attach -- claude
```

## `run` - 一发子弹

喷出适配器, 发送一个单一的即时, 流事件到 stdout,退出.

```bash
# Prompt via flag
agentproto run claude-code --cwd . --prompt "what does this repo do?"

# Prompt piped over stdin
echo "summarise CHANGELOG.md" | agentproto run claude-code

# Resume an existing adapter-side protocol session (claude-code session id)
agentproto run claude-code --resume <session-id>

# Machine-readable: one event per line as NDJSON
agentproto run claude-code --prompt "hi" --json
```

多回合或交互式使用,见 [`serve`](https://npmcn.com/package/%40agentproto/cli/#readme-serve--the-local-daemon) + 键 [`sessions`](https://npmcn.com/package/%40agentproto/cli/#readme-sessions--browse--control-the-daemon) 见下文.

## `install` 编号 : `setup`

```bash
agentproto install claude-code              # idempotent — skips if version_check passes
agentproto install claude-code --force      # reinstall regardless
agentproto install claude-code --dry-run    # print steps, don't execute
agentproto install claude-code --allow-unverified  # run curl/download installers with no SHA

agentproto setup openclaw                   # re-run adapter setup (env keys, login, …)
agentproto setup openclaw --only login      # only specific steps
```

安装方法按声明顺序进行试验(`npm`, (中文(简体) ), `curl`, (中文(简体) ), `brew`使用 `--force` 重新安装, `--dry-run` 预览步骤, `--allow-unverified` 在非交互语境中选择未验证的卷/下载安装器.

## `config` ——默认时间 `~/.agentproto/config.json`

守护魔的手版JSON在靴子上读取. 启用 CLI 旗 `agentproto serve` 仍然覆盖这里的任何东西;文件是记住选择的地方,以免每次重启时都会重打.

```bash
agentproto config show                                          # dump full config
agentproto config path                                          # print the file path
agentproto config get daemon.port                               # read one key
agentproto config set daemon.port 18791                         # number auto-detected
agentproto config set daemon.workspace ~/code/my-app
agentproto config set daemon.allowedOrigins https://guilde.work,https://app.example.com
agentproto config set tunnel.host wss://guilde.work/api/v1/agentproto/tunnel
agentproto config set tunnel.autoconnect true                   # --connect implied at next serve
agentproto config unset tunnel.host                             # forget
agentproto config edit                                          # open in $EDITOR
```

Schema( 所有字段可选; 见 [`docs/cli/reference/config-schema.md`](https://npmcn.com/package/docs/cli/reference/config-schema.md) 全文参见:

```jsonc
{
  "plugins": ["@guilde/agentproto-bridge"],
  "profileAliases": { "guilde": "@guilde/runtime-profile-guilde" },
  "corpusPresetPackages": ["@agentproto/corpus-presets"],
  "daemon": {
    "workspace": "/abs/path",                  // default cwd when not passed
    "port": 18791,
    "bind": "127.0.0.1",
    "allowedOrigins": ["https://guilde.work"], // extends localhost defaults
    "strictOrigins": false,                    // when true, drops localhost defaults
    "authToken": "<random-hex>",               // stable bearer for /mcp, /events, …
    "label": "jeremy@mbp",
    "turnStallAfterMs": 300000                 // turn-liveness watchdog (see below)
  },
  "tunnel": {
    "host": "wss://guilde.work/api/v1/agentproto/tunnel",
    "autoconnect": false                       // bootstrap with --connect at serve
  },
  "pairing": {
    "rendezvous": "wss://rendezvous.example/v1",
    "autoconnect": true
  },
  "defaults": {
    "skills": ["review-checklist"],
    "options": { "verbose": true },
    "adapters": { "hermes": { "options": { "model": "z-ai/glm-5.2" } } },
    "defaultRoleDepthCutoff": 1,
    "langfuseTracing": false
  },
  "acpAgents": {
    "my-agent": { "bin": "my-agent", "bin_args": ["acp"], "resumable": true }
  },
  "profiles": {
    "headless": { "daemon": { "port": 18792 }, "features": { "pty": false } }
  },
  "terminalPresets": {
    "terra": { "argv": ["bash", "-l"], "env": { "TERM": "xterm-256color" } }
  },
  "features": { "pty": true, "llmEndpoint": false }
}
```

**转活性监督员`daemon.turnStallAfterMs`:** 守护进程 忙碌的代理- cli 会话和没有适配器活动的旗帜 超过此阈值( 默认为 5 分钟, 内存覆盖) `AGENTPROTO_TURN_STALL_AFTER_MS`) (中文(简体) ). 绊倒时,会话描述器会得到一个 `stalledSinceMs` 时间戳和守护进程发出a `session:stalled` 活动—— 冲出已死适配器流而无需自动杀死或重启. 如果 转而完全没有产出或使用,因为描述器也迅速 携带 `lastTurnErrorMessage: "no output since prompt — provider retrying?"`设置 阈值至 `0` 以禁用.

**关于 `strictOrigins`数字 :** 默认的浏览器 `localhost` (任何一端口)被允许驱动突变路线——这就是使Guilde dev / Vite / Sorybook全部"只是工作"而没有每个端口的配置. 设定 `strictOrigins: true` 如果您想要将守护进程锁定到一个字符列表( 共享主机, 硬化设置) 。 注意: 任何有 shell 访问权限的本地用户都可以读取 `runtime.json`不论此设置如何, 其符号; 严格模式只会缩小浏览器- Origin 表面 .

## `daemon` - 作为背景服务运行

包接主机的内置系统,以免终端打开. 马科斯 `launchd`时, Linux `systemd --user` (当框没有可用的系统用户会话时,带有一个可拆卸的服务器 pidfile倒置),而Windows任务调度器在今天的船.

```bash
agentproto config set daemon.workspace ~/code/my-project   # one-time
agentproto config set daemon.allowedOrigins https://guilde.work
agentproto daemon install                                  # write plist + bootstrap
agentproto daemon status                                   # plist? loaded? /health probe?
agentproto daemon logs --lines 30                          # tail ~/.agentproto/daemon.log
agentproto daemon stop                                     # SIGTERM
agentproto daemon start                                    # kickstart again (idempotent)
agentproto daemon restart                                  # kill + relaunch
agentproto daemon uninstall                                # bootout + delete plist
```

`install` 读取当前 `config.json` 烤着它 `daemon.*` 键入服务的 argv 快照( macOS plist ) `ProgramArguments`, Linux 单位的 `ExecStart`,窗口启动器 `.cmd`) (中文(简体) ). 重新运行 `install` 在任何配置更改后刷新。 日志在 `~/.agentproto/daemon.log` (sdout + stderr 合并).

## `auth` 与远程主机交谈

```bash
agentproto auth login --host wss://guilde.work    # device-flow login → ~/.agentproto/credentials.json
agentproto auth status --host wss://guilde.work   # show expiry
agentproto auth logout --host wss://guilde.work   # forget the token
```

证书由 `agentproto serve --connect <host>` 建立隧道.

## `workspace` - 登记产卵目标

工作空间是存储在 `~/.agentproto/workspaces.json`。守护进程决定 `workspaceSlug` 字段为绝对 cwd `/sessions/agent` 财务报告和审定财务报表 `/sessions/terminal`。 。 。 .

```bash
agentproto workspace add ~/code/my-project --slug my-project
agentproto workspace add ~/code/secret --slug secret --label "Skunkworks"
agentproto workspace list
agentproto workspace use my-project   # mark active
agentproto workspace remove secret

# Git clone source for sandbox spawns (token via stdin, stored in the OS keychain):
echo "$GITHUB_PAT" | agentproto workspace remote set my-project \
  --url https://github.com/acme/my-project.git --token-stdin
```

活动的工作空间是什么 `serve` 默认为未启用时 `--workspace`,当一个 HTTP 调用省略两个时,守护进程又回到什么 `cwd` 财务报告和审定财务报表 `workspaceSlug`。 。 。 .

## `serve` 本地守护进程

```bash
# Plain local daemon (loopback only). Reads / writes the active workspace.
agentproto serve

# Bind to a specific port + workspace
agentproto serve --port 18790 --workspace ~/code/my-project

# Local + tunnel: cloud host can dispatch spawns through the daemon.
agentproto serve --connect wss://guilde.work/api/v1/agentproto/tunnel

# Light banner + chain into the interactive dashboard (same terminal).
# Quitting the TUI shuts the daemon down too.
agentproto serve --interactive   # alias: -i
```

仪表盘看起来大概是:

```
─ agentproto monitor · http://127.0.0.1:18790 ──── workspace ~/code/proj · uptime 12m ─
SESSIONS (3)                       │ DETAIL
▸ PTY claude-tui   running     12m │   id        sess_a3f8c1b2
   PTY shell-main running      4m  │   name      claude-tui
       hermes-bg  exited      1h   │   kind      terminal (pty)
                                    │   status    running
                                    │   workspace my-app
                                    │   command   claude
                                    │   pid       12345
                                    │   started   12m ago
                                    │   last out  3s ago
                                    │
                                    │   Enter to attach
─ events  20:42:01 boot · my-app · 20:43:11 spawn sess_a3f8c1b2 ──────────────────────
  ↑/↓ select · Enter attach · K kill · d forget · r refresh · q quit
```

什麽 `serve` 揭露:

| 表面 | 網址 | 页:1 |
| --- | --- | --- |
| 卫生 | `GET /health` | 守护进程状态: 工作空间、 升起时间, `startedAt`,版本,构建身份(`sha`, (中文(简体) ), `builtAt`, (中文(简体) ), `source`),pid,节点路径,出入口——总是公开的 |
| 事件( SSE) | `GET /events` | 运行时事件流 |
| MCP 磁共振 | `POST /mcp` (硬质HTTP) | 适应器产卵,终端会话,fs/exec, |
| 适应器发现 | `GET /adapters` | 全球已安装 `@agentproto/adapter-*` 软件包 |
| 会议(名单) | `GET /sessions` 编号 : `GET /sessions/:id` | id- 或名称在 `:id` |
| 代理产卵 | `POST /sessions/agent` | 非加太长期代理人(多轮) |
| 发送提示 | `POST /sessions/:id/prompt` | 消息运行会话 - `?wait=false` 到队列/ 起火和遗忘 |
| 中断转弯 | `POST /sessions/:id/interrupt` | 取消飞行中转并让会话活着 |
| 终端输入 | `POST /sessions/:id/terminal/input` | 将原始输入写入动态 PTY 会话 |
| 重命名会话 | `PATCH /sessions/:id` | 设置或清除会话的用户界面 `title`编号 :`label` |
| **PTY 产卵** | **`POST /sessions/terminal`** | 在节点-pty下真实的 PTY( 自动屏幕、 ANSI、 原始输入) |
| **PTY 附加** | **`WS /sessions/:id/pty`** | JSON 框架双倍; 多订阅者 |
| SSE 附加 | `GET /sessions/:id/stream` | 逐行文字事件 |
| 杀 | `POST /sessions/:id/kill` | 签下孩子 |

### 发现 + 符号

守护进程启动时写着 `<workspace>/.agentproto/runtime.json` (模式) `0600`(中文(简体) ) **财务报告和审定财务报表** 在中央登记处登记 `~/.agentproto/daemons/<port>.json` 改为:

```json
{
  "workspace": "/abs/path",
  "port": 18790,
  "bind": "127.0.0.1",
  "pid": 12345,
  "startedAt": "2026-05-13T…",
  "name": "agentproto-serve",
  "registered": [],
  "token": "<random-uuid>"
}
```

CLI确实如此 **没有** 只读一个固定文件.. `discoverDaemon()` (单位:千美元)`src/commands/_daemon-helpers.ts`将候选人按此顺序排列 **第一个是活的**数字 :

1.  **`AGENTPROTO_DAEMON_URL`** env 覆盖。 若为 `AGENTPROTO_DAEMON_TOKEN` 还没有设置, CLI 仍然搜索每个注册的工作空间 `runtime.json` 对于一个其 URL 匹配, 所以突变路线 不401 仅仅因为 符号没有转发.
2.  **`~/.agentproto/runtime.json`** - 明确、手放或以前写的文件,但必须 `pid` 还活着`process.kill(pid, 0)`) (中文(简体) ). 这是大多数文件( 和旧文件) `--help` 文本) 调用为 _页:1_ 发现机制,它其实只是第二高优先候选人, 一个死人被跳过而不是信任.
3.  这个 **中央登记处**, (中文(简体) ), `~/.agentproto/daemons/<port>.json`,选择端口匹配的条目 `config.json`已经宣布 `daemon.port` (默认) `18790`在任何其他直播入口上——随机端口上短暂的瞬间运行时间不得遮蔽长期运行时间 `serve` 守护进程 .
4.  每个配置的工作空间自己的 `<workspace>/.agentproto/runtime.json`输入 `workspaces.json` 秩序。 秩序.

候选人: `pid` 死亡是永远不会相信的——被记录为 `stale` 和发现移动到下一个。 这很重要,因为 `runtime.json` **超过不干净的关闭**数字 : `kill -9`,崩溃,或者重启,所有文件都留下一个现在无效的代号,它可以坐到一个守护进程开始的地方(包括 `~` 本身,如果 `agentproto serve` 曾经运行没有 `--workspace` 从主目录). `agentproto serve` 也扫描已死 PID `runtime.json` 每个文件 _登记_ 工作空间和启动时的中央登记册——但在从未注册的工作空间下的一个偏差文件(例如:. `~` 作为临时工作空间使用)没有被扫荡,因此可以无限期地停留;活生生的检查在 `discoverDaemon()` 才是真正保持无害的.

-   需要由任意一个描述器赢得的符号 **变异** `/sessions/*` 路线和路线 `/sessions/:id/pty` WebSocket升级. 有一个 **没有回路绕行** ——我们抵御的威胁(浏览器取自本地主机装入的页面)本身是回回回回回回. 浏览器无法读取 `runtime.json` (mode 0600;同用CLI可以.
-   通过掩体覆盖 : `AGENTPROTO_DAEMON_URL=http://… AGENTPROTO_DAEMON_TOKEN=…`。 。 。 .
-   读取路线( E)`GET /sessions`, SSE 数据 `/stream`)保持开口,这样现有的只读工具继续工作.

**已知限制——重启交接窗口.** `pid` 活的不是那样的 _符号_ 众生相. 接下来的几秒钟 `agentproto serve` 重新启动,则 **上一个** 守护进程仍然可以活(中-shutdown)以其现在被取代的代号来进行,而对于新进程的更新鲜的描述还没有被写入. `discoverDaemon()` {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}然后守护进程会回答 {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}你应该知道 `401 sessions_unauthorized`。这是一个狭义的种族,而不是沉默:CLI's `explain401()` 帮助查找已解析的 URL `/health`和——自守护进程以来 _实值_ 可达到 —— 告诉你这是象征性的错配,而不是打印一幅赤裸的401. 工作轮廓和上面一样 覆盖文件 `explain401()` 其输出中的名称——通常是守护进程端口的中央注册条目:

```bash
export AGENTPROTO_DAEMON_TOKEN=$(node -p "require('$HOME/.agentproto/daemons/18790.json').token")
export AGENTPROTO_DAEMON_URL=http://127.0.0.1:18790
```

它解决自己 一旦旧过程完成 退出和 Stale 描述器 `pid` 检查开始失败 .

### 网关认证( 永久无记名符号)

默认情况下,网关本身在回回路上打开(`mode: "none"`()—— `runtime.json` 只有CLI自己的发现流上方的门 这个 `remote_enable` MCP 工具可以将整个网关翻入 `mode: "bearer"`,但是它总是会铸造出新的随机标志并打开Cloudflare快地道;标志活在记忆中,在每次重启时都会丢失.

对a **稳定** 幸存的符号 重新启动,不需要隧道,设置 `daemon.authToken` 启动前:

```bash
agentproto config set daemon.authToken $(openssl rand -hex 32)
agentproto serve
```

或者通过内线进行一次性跑道:

```bash
agentproto serve --auth-token <token>
```

`--auth-token` 覆盖 `daemon.authToken` 当两者都设置好了。 这是与每道门隔开的 `runtime.json` 上面的符号: 它覆盖 `/mcp`, (中文(简体) ), `/events`, (中文(简体) ), `/conversations*`,和心跳的路线,和(不同于 `/sessions/*` 门),它可以免去回路调用器,没有 `X-Forwarded-For` 头条——守护进程前的一条地道总是设置头条,因此真正从未离开机器的请求仍然通过未经认证. 未设置,行为不变:完全开放. 若为 `remote_enable` 后被调用在顶上, 它的发光标志优于 `daemon.authToken` 只要远处的地道上方.

## `sessions` ——浏览+控制守护进程

```bash
# One-shot table of live + recent sessions
agentproto sessions

# Interactive dashboard — 3 panes + live events ticker
agentproto sessions --watch
#   ↑/↓ or j/k   move selection in the sidebar
#   Enter         attach to selected (PTY-aware)
#   K             SIGTERM selected session
#   d             forget selected (must be exited)
#   r             refresh now
#   q or Ctrl-C   quit
#
# Flat-table version for piping into a pager or grep:
agentproto sessions --watch --simple

# Attach to a specific session (id or name) — full duplex
agentproto sessions --attach claude-tui

# Mirror — read-only tail, never takes stdin, Ctrl-C exits cleanly
# (great when your terminal emulator eats the Ctrl-] q detach chord)
agentproto sessions mirror claude-tui

# Spawn an agent CLI (ACP, structured events)
agentproto sessions start claude-code --workspace my-app --attach
agentproto sessions start claude-code --workspace my-app --title "payments refactor" --attach
agentproto sessions start hermes --label "ops on-call"

# Spawn a real PTY (raw bytes, ANSI escapes, alt-screen apps)
agentproto sessions terminal --name claude-tui --attach -- claude
agentproto sessions terminal --name shell --cwd /tmp -- bash -l
agentproto sessions terminal --name htop --workspace my-project -- htop

# Message an already-running session (default: fire-and-forget, queued
# behind any in-flight turn — read the reply back with `sessions story`)
agentproto sessions prompt claude-tui --prompt "go check the PR review comments"
agentproto sessions prompt claude-tui --prompt "redirect now" --interrupt
agentproto sessions prompt claude-tui --prompt "one more thing" --wait

# Pin / unpin a session (list visibility only)
agentproto sessions pin claude-tui
agentproto sessions unpin ses_abc12

# Stop by id or name
agentproto sessions stop claude-tui
```

**旗帜公约 `sessions terminal`数字 :** 动词旗来了 **在此之前** `--`; 之后的所有内容 `--` 是 argv 逐字传递到产出二进制 。 这么说吧 `--name my-shell -- bash --login` 设置会话名称并运行 `bash --login`。领导者 `--` 当没有argv旗帜与动词旗帜相撞时,是可选的.

### 附加模式

`agentproto sessions --attach <id-or-name>` 首先获取描述符,然后根据 `desc.pty`数字 :

| 动词/ 类型 | 运输 | 儿童 | 调整大小 | 调试 |
| --- | --- | --- | --- | --- |
| `--attach` 转到 PTY | 网络安全套 `/pty` | 原始字节 | ✓ | `Ctrl-] q` 和弦 |
| `mirror` 转到 PTY | 网络安全套 `/pty` | **没有** (只读) | 没有 | `Ctrl-C` |
| `--attach` 切换到代理cli | 证监会 `/stream` | 无(使用) `agent_prompt` MCP 工具) | 无 | `Ctrl-C` |
| `--attach` 到命令/管道 | 证监会 `/stream` | 无 | 无 | `Ctrl-C` |

**何时选择:**

-   **`--attach`** 您想要将 TYPE 切入会话( 驱动 claude, 运行 bash 命令等) 。 双层,接管斯丁,你和 `Ctrl-] q` 和弦.
-   **`mirror`** ——你想在不受干扰的情况下观看,或者你的终端燕子 `Ctrl-] q`。只读, `Ctrl-C` 出口干净 会话一直运行在守护进程上.

**分解和弦(仅PTY):** `Ctrl-]` 接下来 `q` 关闭 WebSocket 并退出 CLI; 会话持续运行在守护进程上 。 稍后随行 `agentproto sessions --attach <id-or-name>`. 多个客户端(CLI + xterm.js web 面板 + 另一个 CLI)可以同时附加在同一会话上——守护进程扇字节出并合并输入.

## MCP工具

何时 `agentproto serve` 是上, 网关 `/mcp` 端点暴露出这些工具(来自Mastra代理的Claude Code作为子代理的呼叫,Cursor MCP客户端,

| 工具 | 目的 |
| --- | --- |
| **`session_list`** | 列出会话; 以 `q` 编号 : `excludeNoise` 编号 : `excludeLabelPrefix` 编号 : `rootOnly` 编号 : `parentSessionId` 编号 : `updatedSince` + 键 `kind` 编号 : `status` 编号 : `onlyAlive` 编号 : `limit` (分类列表) |
| `agent_sessions_list` | 只代理视图; 使用 `session_list` 与 `kind` 用于完全控制 |
| `agent_start` | 喷出长寿的ACP适配器(claude-code/hermes/ |
| `agent_prompt` | 发送一个后续转折到实时代理会话 |
| `agent_output` | 拖住最近的环缓冲( 线) |
| `agent_kill` | 签名代理会话 |
| `agent_interrupt` | 取消飞行中转而不杀死会话 |
| `conversation_read` | 阅读任何会话背后的提供者- 本地对话 |
| **`terminal_start`** | 注入一个 PTY 辅助进程( 任意 argv) |
| **`terminal_input`** | 向 PTY 的 stdin 发送按键 |
| **`terminal_output`** | 抓取最近的字节缓冲( Base64) |
| **`terminal_kill`** | 标出届会 |
| `session_rename` | 设置或清除会话的用户界面 `title`编号 :`label` |
| `session_set_pinned` | 键入或解开会话, 使其在列表中先排序 |
| `session_flag_status` | 手动更正会话 `awaitingInput` 编号 : `awaitingQuestion` 分类 |
| `adapter_list` | 假设已安装 `@agentproto/adapter-*` 软件包 |
| `mcp_discovered_list` | 在 Claude / 光标/ 鹅中配置的 MCP 服务器 |
| `mcp_imported_list` | 用户的 MCP 配置集 |
| `mcp_import` 编号 : `mcp_imported_remove` | 校正设定 |
| `mcp_imported_status` | 每个导入的 MCP 的连接状态 |
| `mcp_imported_tool_list` 编号 : `mcp_imported_call` | 代理导入的 MCP 工具 |
| `skill_import` 编号 : `skill_imported_list` 编号 : `skill_imported_remove` 编号 : `skill_resync` | 限制进口技能,供每期交付 |
| `app_install` 编号 : `app_run` 编号 : `app_list` 编号 : `app_status` 编号 : `app_stop` | 安装和运行 `@agentproto/app` 应用作为直播会话 |
| `app_apply` 编号 : `app_unapply` 编号 : `app_list_applied` | 挂载/ 卸载应用到具有依赖性验证范围 |
| `app_data_read` 编号 : `app_data_write` 编号 : `app_data_list` 编号 : `app_data_migrate` | App-scoped 耐用数据平面(读取/写入/列表 + 遗存迁移),定位在 app's `dataDir` (默认) `<dir>/data`(中文(简体) ) |
| `harness_preset_list` 编号 : `harness_preset_create` 编号 : `harness_preset_delete` 编号 : `harness_preset_set_default` | 被束缚的被绑住的- 自动预设 |
| `workspace_brain_query` 编号 : `workspace_brain_status` 编号 : `workspace_brain_ingest` | 工作空间记录召回(BM25) |
| `conversation_export` | 导出守护进程记录到目标适配器的本地商店( 今天的 Claude-code) |
| `llm_endpoint_start` 编号 : `llm_endpoint_stop` 编号 : `llm_endpoint_status` 编号 : `llm_endpoint_set_upstream_link` 编号 : `llm_endpoint_list_links` | 当地 LLM 端点代理侧车( 需要) `features.llmEndpoint`(中文(简体) ) |

终端工具允许一个代理 **协奏曲** 其他会议:结构化的非加太会议的代理人可召集 `terminal_start({argv: ["bash"]})`,然后驱动它转身 `terminal_input` + 键 `terminal_output`。同样的表面背向未来 `wire`编号 :`tee` 原始用于相交管.

## 适应器分辨率

`<slug>` 解析到 npm 软件包 `@agentproto/adapter-<slug>`在全球安装适配器 `agentproto` 可以找到他们在其 `NODE_PATH`. 今天运送的一等适配器包括:

-   `@agentproto/adapter-claude-code` - Anthropic Claude Code(议定书:ACP,结构化活动)
-   `@agentproto/adapter-claude-sdk` - 麻醉克洛德探员SDK
-   `@agentproto/adapter-codex` - OpenAI 代码x
-   `@agentproto/adapter-gemini` - 谷歌双子座CLI(`gemini --experimental-acp`(中文(简体) )
-   `@agentproto/adapter-grok-cli` - xAI Grok 建设CLI(`grok agent stdio`(中文(简体) )
-   `@agentproto/adapter-hermes` - 赫尔墨斯(议定书:非加太)
-   `@agentproto/adapter-opencode` ——开放代码
-   `@agentproto/adapter-openclaw` - OpenClaw(开放法律)
-   `@agentproto/adapter-antigravity` - 谷歌反重力(`agy`,打印/无头,多型号)
-   `@agentproto/adapter-jcode` ——jcode (Rust编码代理,打印/无头,多提供)
-   `@agentproto/adapter-mastra` 编号 : `adapter-mastra-agent` 编号 : `adapter-mastra-controller` 编号 : `adapter-mastracode` 编号 : `adapter-mastracode-inprocess`: 基于马斯特拉的特工
-   `@agentproto/adapter-browser` – 浏览器/ CDP 会话适配器
-   `@agentproto/adapter-pi` ——毕

使用 `agentproto sessions terminal -- claude` (或 `-- hermes`, (中文(简体) ), `-- aider`,当你想 **原始交互式 TUI** 而不是结构化的非加太活动流.

## 许可证

麻省理工学院——见 [自由主义](https://npmcn.com/package/%40agentproto/cli/LICENSE)。 。 。 .

## 常见问题

### @agentproto/cli 是什么？

@agentproto/cli — 翻译: agentproto 二进制\. 安装 AIP-45 代理CLI 适配器,在本地运行,或者在地道上暴露出它们作为长跑守护进程\. hermes / claude-code / opencode / gemini- cli / 鹅的参考主机, 全部通过 @ agentproto/ 驱动

### 如何安装 @agentproto/cli？

在项目目录运行 npm install @agentproto/cli，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 agentproto，可以用 npx agentproto 直接运行。

### @agentproto/cli 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @agentproto/cli 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @agentproto/cli 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=20\.9\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @agentproto/cli 可以商用吗？

@agentproto/cli 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @agentproto/cli 的下载量有多少？

根据 npm 官方下载统计，@agentproto/cli 在 2026/10/05 – 2026/11/03 这 30 天内被下载 6,963 次，日均约 232 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @agentproto/cli 还在维护吗？

最新版本 1\.34\.0 发布于 2026/11/06（今天）；至今共发布 80 个版本，其中过去 12 个月发布了 80 个；首次发布于 2026/05/10。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

