diff --git a/README.md b/README.md index 1770405..8c75d1b 100644 --- a/README.md +++ b/README.md @@ -7,27 +7,27 @@ [中文文档](README.zh-CN.md) -**🌐 Website: [raysonmeng.github.io/agent-bridge](https://raysonmeng.github.io/agent-bridge/)** — with a live animated demo of a real session. +**🌐 Website: [raysonmeng.github.io/agent-bridge](https://raysonmeng.github.io/agent-bridge/)**, with an animated replay of a real session. Local bridge for bidirectional communication between Claude Code and Codex inside the same working session. What that buys you, concretely: -- **Cross-review, not just cross-talk** — Codex implements; Claude reviews the diff in real time *inside the same session* and pushes its change requests straight back into Codex's thread. Two providers holding each other accountable, no copy-paste. +- **Cross-review** — Codex implements; Claude reviews the diff *inside the same session* and pushes change requests straight back into Codex's thread. Two providers check each other's work without copy-paste. - **Task splits from one prompt** — ask either agent to propose a division of labor with the other, and they negotiate who does what before writing code. You steer; they coordinate. - **Quota relay for overnight runs** — when one side's subscription window runs dry, it stops cleanly at a turn boundary and hands the task off to the other side, so a long job keeps moving instead of dying at a limit. -▶ **[Watch the demo on the website](https://raysonmeng.github.io/agent-bridge/)** — an animated replay of a real session: Codex's reply pushed into Claude's live session, a mid-turn injection into Codex, and a quota handoff. +▶ **[Watch the demo on the website](https://raysonmeng.github.io/agent-bridge/)**: an animated replay of a real session. Codex pushes a reply into Claude's live session, Claude injects a note mid-turn, and the task survives a quota handoff. > **This tool was largely built by Claude Code and Codex collaborating through it.** > **Every PR written by one agent was reviewed by the other.** AgentBridge is its own proof of concept. ## Why not just… -- **…run two terminals and copy-paste?** You can — and you become the message bus, ferrying text by hand and eyeballing when it's safe to interrupt. AgentBridge automates the relay: messages flow on their own, a busy-guard blocks replies during an active turn, and noisy intermediate events are filtered so each side sees only the other's meaningful output. -- **…use a one-way delegation plugin?** Tools like `openai/codex-plugin-cc` let a host *call* Codex and get one answer back — request in, response out, no standing peer on the other side. AgentBridge keeps **both** agents live as persistent peers, and either side can push a message **mid-turn** (a review comment lands while the other is still working), not only at call boundaries. -- **…wire up an external orchestrator?** A god-process scheduling dumb terminals is top-down: one brain, N workers that never talk to each other. AgentBridge is peer-to-peer — two full agents converse in-session, propose their own splits, and review each other, with the human steering instead of scripting every hop. +- **…run two terminals and copy-paste?** You can, but then you are the message bus: you ferry text by hand and guess when it is safe to interrupt. AgentBridge automates the relay: messages flow on their own, a busy-guard blocks replies during an active turn, and the bridge filters noisy intermediate events so each side sees only the other's meaningful output. +- **…use a one-way delegation plugin?** Tools like `openai/codex-plugin-cc` let a host *call* Codex and get one answer back: request in, response out, no standing peer on the other side. AgentBridge keeps **both** agents live as persistent peers, and either side can push a message **mid-turn** (a review comment lands while the other is still working), not only at call boundaries. +- **…wire up an external orchestrator?** A god-process scheduling dumb terminals is top-down: one brain, N workers that never talk to each other. AgentBridge is peer-to-peer: two full agents converse in-session, propose their own splits, and review each other, with the human steering instead of scripting every hop. ## What this project is / is not @@ -45,7 +45,7 @@ What that buys you, concretely: ## Features -- **Bidirectional Claude ↔ Codex messaging** in one working session — Codex output is intercepted and pushed to Claude as channel notifications; Claude replies via the `reply` MCP tool, injected into the Codex thread as a `turn/start`. +- **Bidirectional Claude ↔ Codex messaging** in one working session — the daemon intercepts Codex output and pushes it to Claude as channel notifications; Claude replies via the `reply` MCP tool, and the bridge injects the reply into the Codex thread as a `turn/start`. - **Push delivery with fallback** — messages arrive as channel notifications; a failed push falls back to an in-memory queue drained by `get_messages`. Loop prevention via the per-message `source` field. - **Turn coordination** — a busy-guard rejects replies during an active Codex turn; a per-turn inactivity watchdog stops a lost `turn/completed` from locking injection forever; noisy intermediate events are collapsed so only meaningful `agentMessage` payloads reach Claude. - **Multiple pairs side by side** — one Claude+Codex pair per project directory, ports allocated per pair in +10 strides from 4500. Pair-aware `claude` / `codex` / `resume` / `kill` / `doctor` / `budget` via `--pair`. @@ -61,14 +61,14 @@ What that buys you, concretely: | [Claude Code](https://docs.anthropic.com/en/docs/claude-code) | v2.1.80+ | `npm install -g @anthropic-ai/claude-code` | | [Codex CLI](https://github.com/openai/codex) | latest | `npm install -g @openai/codex` | -> **Bun is required** as the runtime for the AgentBridge daemon and plugin server. Node.js alone is not enough — if `abg` installs but won't run, you're almost certainly missing Bun (see [Troubleshooting](docs/TROUBLESHOOTING.md)). +> **Bun is required** as the runtime for the AgentBridge daemon and plugin server. Node.js alone is not enough. If `abg` installs but won't run, install Bun first (see [Troubleshooting](docs/TROUBLESHOOTING.md)). ## Quick Start Four steps from nothing to a running pair: ```bash -# 1. Install Bun (the runtime — Node alone won't work) +# 1. Install Bun (the runtime; Node alone won't work) curl -fsSL https://bun.sh/install | bash # 2. Install the CLI. postinstall auto-registers the Claude Code plugin @@ -82,10 +82,10 @@ abg claude abg codex ``` -That's it — the daemon starts automatically when needed and reconnects if restarted. (`abg` is a short alias for `agentbridge`; both are identical.) If the postinstall plugin step was skipped (e.g. Claude Code wasn't installed yet), run `abg init` to retry it, or see the [manual install fallback](#manual-plugin-install-fallback). +That's it: the daemon starts automatically when needed and reconnects if restarted. (`abg` is a short alias for `agentbridge`; both are identical.) If the postinstall plugin step was skipped (e.g. Claude Code wasn't installed yet), run `abg init` to retry it, or see the [manual install fallback](#manual-plugin-install-fallback). > [!WARNING] -> **`abg claude` launches with `--dangerously-skip-permissions` and `abg codex` launches with `--yolo` by default.** This is deliberate — an unattended agent pair can't stop to ask you for each permission — but it means both agents can run commands and edit files **without prompting**. Only do this in a workspace you trust. To launch with normal prompts, add `--safe` (`abg claude --safe`, `abg codex --safe`) or set `AGENTBRIDGE_SAFE=1`. The defaults are also auto-suppressed if you pass your own permission flags. +> **`abg claude` launches with `--dangerously-skip-permissions` and `abg codex` launches with `--yolo` by default.** This is deliberate: an unattended agent pair can't stop to ask you for each permission. It means both agents can run commands and edit files **without prompting**. Only do this in a workspace you trust. To launch with normal prompts, add `--safe` (`abg claude --safe`, `abg codex --safe`) or set `AGENTBRIDGE_SAFE=1`. The defaults are also auto-suppressed if you pass your own permission flags. ### Your first collaboration @@ -93,7 +93,7 @@ With both sides running, give Claude a task that wants a second agent, e.g.: > **Ask Claude:** *"Propose a task split with Codex for <your task>, then have Codex implement its part while you review."* -You should see Claude send a proposed division of labor into Codex's session, Codex accept (or counter) and start working, and Codex's completion push back into Claude's session for review — all without you relaying anything by hand. +You should see Claude send a proposed division of labor into Codex's session, Codex accept (or counter) and start working, and Codex's completion push back into Claude's session for review, without you relaying anything by hand. ### Manual plugin install (fallback) @@ -150,9 +150,9 @@ agentbridge codex # (another terminal) Start Codex TUI connected to the bridge ### Cross-network collaboration *(v3 preview)* -The v3 collaboration layer (shared rooms across machines/agents over a broker — `auth`, `broker`, `room`, `join`, `publish`) is in preview on the [`integration/v3-all`](https://github.com/raysonmeng/agent-bridge/tree/integration/v3-all) branch and lands here with v3. Spec: [docs/09-v3协作系统规格.md](docs/09-v3协作系统规格.md). +The v3 collaboration layer (shared rooms across machines/agents over a broker: `auth`, `broker`, `room`, `join`, `publish`) is in preview on the [`integration/v3-all`](https://github.com/raysonmeng/agent-bridge/tree/integration/v3-all) branch and lands here with v3. Spec: [docs/09-v3协作系统规格.md](docs/09-v3协作系统规格.md). -The pair-aware commands (`claude`, `codex`, `resume`, `kill`, `doctor`, `budget`, `logs`) accept `--pair ` to target a specific pair — one pair per project directory by default, with ports allocated per pair in +10 strides from 4500. +The pair-aware commands (`claude`, `codex`, `resume`, `kill`, `doctor`, `budget`, `logs`) accept `--pair ` to target a specific pair; one pair per project directory by default, with ports allocated per pair in +10 strides from 4500. ### Owned flags @@ -251,7 +251,7 @@ Contents: `daemon.pid`, `status.json`, `agentbridge.log`, `killed` (sentinel), ` ## Budget Coordination & Auto-Resume -AgentBridge can keep a long task moving across subscription-quota windows instead of letting it die when one agent hits its limit. The capability is driven by the companion tool **[agent-quota-guard](https://www.npmjs.com/package/agent-quota-guard)** ([repo](https://github.com/raysonmeng/agent-quota-guard) · v0.2.0, 2026-06-13) — install the guard to enable it. +AgentBridge can keep a long task moving across subscription-quota windows instead of letting it die when one agent hits its limit. The capability is driven by the companion tool **[agent-quota-guard](https://www.npmjs.com/package/agent-quota-guard)** ([repo](https://github.com/raysonmeng/agent-quota-guard) · v0.2.0, 2026-06-13). Install the guard to enable it. - **Snapshot** — the daemon polls both agents' account-level 5h/weekly quota via the guard's probe; `abg budget [--json]` prints the live snapshot (both windows, drift, pause state). This works with just the guard's probe. - **Slowdown-line (no mid-task cut)** — near the quota hard-line the guard does *not* deny mid-tool-call; it lets the current turn finish, stops cleanly at the turn boundary, writes a `.agent/checkpoint.md`, and drops a `pending` record the bridge detects. @@ -271,7 +271,7 @@ For dormant/disabled bridge states, the Codex `.git` restriction, and other gotc ## Roadmap - **More adapters** — AgentBridge wires Claude Code ↔ Codex today. Candidates for the next agent: **OpenCode, OpenClaw, Hermes Agent, Gemini CLI**. Vote in the [adapter roadmap issue](https://github.com/raysonmeng/agent-bridge/issues/212). -- **Capability mesh** — beyond messaging: connected agents will publish their commands / skills / MCP tools so a peer can invoke them directly — moving from *messaging* to *capability invocation*. +- **Capability mesh** — beyond messaging: connected agents will publish their commands / skills / MCP tools so a peer can invoke them directly, moving from messaging to capability invocation. - **v2 — multi-agent foundation** (partly landed): room-scoped collaboration, stable identity, a formal control protocol, stronger recovery. See [docs/08-v2架构愿景.md](docs/08-v2架构愿景.md). - **v3 — cross-network collaboration** (preview on the [`integration/v3-all`](https://github.com/raysonmeng/agent-bridge/tree/integration/v3-all) branch): shared rooms across machines and agents over a broker. See [docs/09-v3协作系统规格.md](docs/09-v3协作系统规格.md). @@ -283,7 +283,7 @@ For dormant/disabled bridge states, the Codex `.git` restriction, and other gotc ## How This Project Was Built -This project was built collaboratively by **Claude Code** (Anthropic) and **Codex** (OpenAI), communicating through AgentBridge itself — the very tool they were building together. A human developer coordinated the effort: assigning tasks, reviewing progress, and directing the two agents to work in parallel and review each other's output. Two AI agents from different providers, connected in real time, shipping code side by side. +This project was built collaboratively by **Claude Code** (Anthropic) and **Codex** (OpenAI), communicating through AgentBridge itself, the very tool they were building together. A human developer coordinated the effort: assigning tasks, reviewing progress, and directing the two agents to work in parallel and review each other's output. Two AI agents from different providers, connected in real time, shipping code side by side. ## Contact diff --git a/README.zh-CN.md b/README.zh-CN.md index b057d22..6326991 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -7,27 +7,27 @@ English version: [README.md](README.md) [![CI](https://github.com/raysonmeng/agent-bridge/actions/workflows/ci.yml/badge.svg)](https://github.com/raysonmeng/agent-bridge/actions/workflows/ci.yml) [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) -**🌐 官网:[raysonmeng.github.io/agent-bridge/zh/](https://raysonmeng.github.io/agent-bridge/zh/)** —— 附真实会话的动画演示。 +**🌐 官网:[raysonmeng.github.io/agent-bridge/zh/](https://raysonmeng.github.io/agent-bridge/zh/)**,附真实会话的动画重放。 让 Claude Code 和 Codex 在同一个工作会话中进行双向通信的本地 Bridge。 具体能换来什么: -- **不只是互相说话,是互相 review** —— Codex 写实现,Claude 在**同一会话内**实时 review 这个 diff,并把修改意见直接推回 Codex 的 thread。两家模型互相盯着对方,不用复制粘贴。 -- **一句 prompt 完成分工** —— 让任一侧提出与对方的分工方案,两个 agent 先商量好谁做什么再动手写代码。你把舵,它们协调。 -- **通宵任务的额度接力** —— 一侧订阅额度窗口烧到线时,它在回合边界干净停下,把任务交接给另一侧,让长任务继续跑,而不是撞到上限就死掉。 +- **交叉 review**:Codex 写实现,Claude 在**同一会话内**实时 review 这个 diff,并把修改意见直接推回 Codex 的 thread。两家模型互相盯着对方,不用复制粘贴。 +- **一句 prompt 完成分工**:让任一侧提出与对方的分工方案,两个 agent 先商量好谁做什么再动手写代码。你把舵,它们协调。 +- **通宵任务的额度接力**:一侧订阅额度窗口烧到线时,它在回合边界干净停下,把任务交接给另一侧,让长任务继续跑。 -▶ **[在官网看演示](https://raysonmeng.github.io/agent-bridge/zh/)** —— 真实会话的动画重放:Codex 回复推进 Claude 活跃会话、回合中途插入、额度接力。 +▶ **[在官网看演示](https://raysonmeng.github.io/agent-bridge/zh/)**:真实会话的动画重放,Codex 回复推进 Claude 活跃会话、回合中途插入、额度接力。 > **这个工具很大程度上就是 Claude Code 和 Codex 通过它本身协作写出来的。** > **一个 agent 写的每个 PR,都由另一个 agent review。** AgentBridge 就是它自己的 proof of concept。 ## Why not just…(换个方案不行吗) -- **……开两个终端手动复制粘贴?** 可以——但你就成了消息总线,手动搬运文本、靠肉眼判断什么时候能插话。AgentBridge 把这套中转自动化了:消息自己流动,busy-guard 在活跃 turn 期间挡住回复,噪声中间事件被过滤,每一侧只看到对方有意义的输出。 -- **……用一个单向委派插件?** 像 `openai/codex-plugin-cc` 这类工具,是宿主**调用** Codex、拿回一个答案——问进去、答出来,对面没有一个常驻的对等体。AgentBridge 让**两个** agent 都作为常驻对等体活着,任一侧都能在**回合中途**推消息(review 意见在对方还在干活时就落进它会话),而不只是在调用边界。 -- **……接一个外部编排器?** 一个上帝进程调度哑终端是自上而下的:一个大脑、N 个互不说话的 worker。AgentBridge 是对等的——两个完整 agent 在会话内对话、自己提分工、互相 review,人在旁边把舵,而不是脚本化每一跳。 +- **……开两个终端手动复制粘贴?** 可以,但你就成了消息总线:手动搬运文本,靠肉眼判断什么时候能插话。AgentBridge 把这套中转自动化了:消息自己流动,busy-guard 在活跃 turn 期间挡住回复,噪声中间事件被过滤,每一侧只看到对方有意义的输出。 +- **……用一个单向委派插件?** 像 `openai/codex-plugin-cc` 这类工具,是宿主**调用** Codex、拿回一个答案:问进去、答出来,对面没有常驻的对等体。AgentBridge 让**两个** agent 都作为常驻对等体活着,任一侧都能在**回合中途**推消息(review 意见在对方还在干活时就落进它会话),而不只是在调用边界。 +- **……接一个外部编排器?** 一个上帝进程调度哑终端是自上而下的:一个大脑、N 个互不说话的 worker。AgentBridge 是对等的:两个完整 agent 在会话内对话、自己提分工、互相 review,人在旁边把舵,而不是脚本化每一跳。 ## 这个项目是什么 / 不是什么 @@ -61,14 +61,14 @@ English version: [README.md](README.md) | [Claude Code](https://docs.anthropic.com/en/docs/claude-code) | v2.1.80+ | `npm install -g @anthropic-ai/claude-code` | | [Codex CLI](https://github.com/openai/codex) | latest | `npm install -g @openai/codex` | -> **Bun 是必要运行时**(AgentBridge daemon 和插件服务器都跑在 Bun 上),仅有 Node.js 不够——如果 `abg` 装上了却跑不起来,八成就是缺 Bun(见 [排错](docs/TROUBLESHOOTING.md))。 +> **Bun 是必要运行时**(AgentBridge daemon 和插件服务器都跑在 Bun 上),仅有 Node.js 不够。如果 `abg` 装上了却跑不起来,八成就是缺 Bun(见 [排错](docs/TROUBLESHOOTING.md))。 ## Quick Start 从零到一对跑起来,四步: ```bash -# 1. 装 Bun(运行时——只有 Node 不行) +# 1. 装 Bun(运行时,只有 Node 不行) curl -fsSL https://bun.sh/install | bash # 2. 装 CLI。postinstall 会自动注册 Claude Code 插件市场并安装插件 @@ -82,10 +82,10 @@ abg claude abg codex ``` -就这样——daemon 会在需要时自动启动,重启后自动重连。(`abg` 是 `agentbridge` 的简写别名,两者完全等价。)如果 postinstall 的插件步骤被跳过(比如当时还没装 Claude Code),运行 `abg init` 重试,或见 [手动安装插件(兜底)](#手动安装插件兜底)。 +就这样:daemon 会在需要时自动启动,重启后自动重连。(`abg` 是 `agentbridge` 的简写别名,两者完全等价。)如果 postinstall 的插件步骤被跳过(比如当时还没装 Claude Code),运行 `abg init` 重试,或见 [手动安装插件(兜底)](#手动安装插件兜底)。 > [!WARNING] -> **`abg claude` 默认带 `--dangerously-skip-permissions` 启动,`abg codex` 默认带 `--yolo` 启动。** 这是故意的——无人值守的 agent 对没法为每个权限停下来问你——但这意味着两个 agent 都能**不经询问**执行命令、改文件。只在你信任的工作区里这么用。要恢复正常询问,加 `--safe`(`abg claude --safe`、`abg codex --safe`)或设 `AGENTBRIDGE_SAFE=1`;你自己显式传权限参数时,默认值也会被自动抑制。 +> **`abg claude` 默认带 `--dangerously-skip-permissions` 启动,`abg codex` 默认带 `--yolo` 启动。** 这是故意的:无人值守的 agent 对没法为每个权限停下来问你。这意味着两个 agent 都能**不经询问**执行命令、改文件。只在你信任的工作区里这么用。要恢复正常询问,加 `--safe`(`abg claude --safe`、`abg codex --safe`)或设 `AGENTBRIDGE_SAFE=1`;你自己显式传权限参数时,默认值也会被自动抑制。 ### 你的第一次协作 @@ -93,7 +93,7 @@ abg codex > **对 Claude 说:** *「为 <你的任务> 和 Codex 提一个分工方案,然后让 Codex 实现它那部分、你来 review。」* -你应该会看到:Claude 把一个分工提案发进 Codex 会话、Codex 接受(或反提议)并开始干活、Codex 完成后推回 Claude 会话让它 review——全程不用你手动中转任何东西。 +你应该会看到:Claude 把一个分工提案发进 Codex 会话、Codex 接受(或反提议)并开始干活、Codex 完成后推回 Claude 会话让它 review,全程不用你手动中转任何东西。 ### 手动安装插件(兜底) @@ -152,7 +152,7 @@ agentbridge codex # (另一个终端)启动 Codex TUI 连接 Bridge v3 协作层(跨机器/跨 agent 的共享房间,含 `auth` / `broker` / `room` / `join` / `publish` 命令)目前在 [`integration/v3-all`](https://github.com/raysonmeng/agent-bridge/tree/integration/v3-all) 分支预览,将随 v3 落地本分支。规格见 [docs/09-v3协作系统规格.md](docs/09-v3协作系统规格.md)。 -成对命令(`claude`、`codex`、`resume`、`kill`、`doctor`、`budget`、`logs`)接受 `--pair ` 指定具体的对——默认每个项目目录一对,端口按 +10 步长从 4500 分配。 +成对命令(`claude`、`codex`、`resume`、`kill`、`doctor`、`budget`、`logs`)接受 `--pair ` 指定具体的对;默认每个项目目录一对,端口按 +10 步长从 4500 分配。 ### Owned flags @@ -160,7 +160,7 @@ v3 协作层(跨机器/跨 agent 的共享房间,含 `auth` / `broker` / `room` - `agentbridge claude` 拥有:`--channels`、`--dangerously-load-development-channels` - `agentbridge codex` 拥有:`--remote`、`--enable tui_app_server` -- 两个启动器都消费包装参数 `--safe`(永不透传):它关闭该次启动的最大权限默认值。当你自己显式传任何权限参数时(codex 的 `-a`/`--ask-for-approval`/`-s`/`--sandbox`;claude 的 `--permission-mode`/`--allow-dangerously-skip-permissions`),默认值也会自动抑制——在显式审批策略旁再注入 `--yolo` 会触发 codex CLI 硬冲突。 +- 两个启动器都消费包装参数 `--safe`(永不透传):它关闭该次启动的最大权限默认值。当你自己显式传任何权限参数时(codex 的 `-a`/`--ask-for-approval`/`-s`/`--sandbox`;claude 的 `--permission-mode`/`--allow-dangerously-skip-permissions`),默认值也会自动抑制;在显式审批策略旁再注入 `--yolo` 会触发 codex CLI 硬冲突。 手动传入被拥有的参数会报错,并提示使用原生命令。 @@ -170,8 +170,8 @@ v3 协作层(跨机器/跨 agent 的共享房间,含 `auth` / `broker` / `room` AgentBridge 是一个**两进程**本地 Bridge: -- **bridge.ts** —— 由 Claude Code 通过 AgentBridge 插件启动的前台 MCP 客户端,Claude Code 关闭时退出。 -- **daemon.ts** —— 常驻本地后台进程,持有 Codex app-server 代理和桥接状态这一唯一真源。跨 Claude Code 重启存活;`bridge.ts` 以指数退避重连。 +- **bridge.ts**:由 Claude Code 通过 AgentBridge 插件启动的前台 MCP 客户端,Claude Code 关闭时退出。 +- **daemon.ts**:常驻本地后台进程,持有 Codex app-server 代理和桥接状态这一唯一真源。跨 Claude Code 重启存活;`bridge.ts` 以指数退避重连。 ``` ┌──────────────┐ MCP stdio / plugin ┌────────────────────┐ @@ -251,11 +251,11 @@ daemon 在平台感知的目录中存储运行时状态: ## 额度协调与自动续接 -AgentBridge 能让长任务跨订阅额度窗口持续推进,而不是某一侧撞到上限就中断。这套能力由配套工具 **[agent-quota-guard](https://www.npmjs.com/package/agent-quota-guard)**([repo](https://github.com/raysonmeng/agent-quota-guard) · v0.2.0,2026-06-13)驱动——装上 guard 才启用。 +AgentBridge 能让长任务跨订阅额度窗口持续推进,而不是某一侧撞到上限就中断。这套能力由配套工具 **[agent-quota-guard](https://www.npmjs.com/package/agent-quota-guard)**([repo](https://github.com/raysonmeng/agent-quota-guard) · v0.2.0,2026-06-13)驱动,装上 guard 即启用。 -- **快照** —— daemon 经 guard 的探针轮询两侧账号级 5h/周额度;`abg budget [--json]` 打印实时快照(两个窗口、漂移、暂停态)。只要装了 guard 的探针就能用。 -- **减速线(中途不腰斩)** —— 接近额度硬线时,guard **不**在工具调用中途 deny,而是让当前 turn 跑完、在回合边界干净停下、写 `.agent/checkpoint.md`,并落一条 bridge 能检测的 `pending` 记录。 -- **全自动续接** —— 被暂停一侧窗口刷新后,bridge 在**原本的交互式 TUI** 里续接:Codex 经排队的 `turn/start` 注入,Claude 经 channel push 并由 `ack_resume` 回执。每条 pending 的幂等墓碑保证同一续接最多注入一次,跨 daemon 重启亦然。 +- **快照**:daemon 经 guard 的探针轮询两侧账号级 5h/周额度;`abg budget [--json]` 打印实时快照(两个窗口、漂移、暂停态)。只要装了 guard 的探针就能用。 +- **减速线(中途不腰斩)**:接近额度硬线时,guard **不**在工具调用中途 deny,而是让当前 turn 跑完、在回合边界干净停下、写 `.agent/checkpoint.md`,并落一条 bridge 能检测的 `pending` 记录。 +- **全自动续接**:被暂停一侧窗口刷新后,bridge 在**原本的交互式 TUI** 里续接:Codex 经排队的 `turn/start` 注入,Claude 经 channel push 并由 `ack_resume` 回执。每条 pending 的幂等墓碑保证同一续接最多注入一次,跨 daemon 重启亦然。 > **实验性 / opt-in。** 这是依赖配套 guard 的能力。Claude 侧续接是 best-effort(ack + 重试 + `SessionStart` 兜底):对完全空闲会话的 channel push 存在已知上游不确定性,故 bridge 只有看到真正的 `ack_resume` 才标记该侧已续接。 @@ -270,16 +270,16 @@ AgentBridge 能让长任务跨订阅额度窗口持续推进,而不是某一 ## Roadmap -- **更多 adapter** —— 今天 AgentBridge 接的是 Claude Code ↔ Codex。下一个候选:**OpenCode、OpenClaw、Hermes Agent、Gemini CLI**。到 [adapter roadmap issue](https://github.com/raysonmeng/agent-bridge/issues/212) 投票。 -- **能力网格(Capability mesh)** —— 超越消息传递:连上的 agent 会发布自己的命令 / skills / MCP tools,让对等体直接调用——从「传消息」走向「调能力」。 -- **v2 —— 多 Agent 基础设施**(部分已落地):Room 作用域协作、稳定身份、正式控制协议、更强恢复。见 [docs/08-v2架构愿景.md](docs/08-v2架构愿景.md)。 -- **v3 —— 跨网协作**(preview,见上面的实验性 CLI):跨机器、跨 agent 的共享房间,经 broker。见 [docs/09-v3协作系统规格.md](docs/09-v3协作系统规格.md)。 +- **更多 adapter**:今天 AgentBridge 接的是 Claude Code ↔ Codex。下一个候选:**OpenCode、OpenClaw、Hermes Agent、Gemini CLI**。到 [adapter roadmap issue](https://github.com/raysonmeng/agent-bridge/issues/212) 投票。 +- **能力网格(Capability mesh)**:超越消息传递:连上的 agent 会发布自己的命令 / skills / MCP tools,让对等体直接调用,从「传消息」走向「调能力」。 +- **v2:多 Agent 基础设施**(部分已落地):Room 作用域协作、稳定身份、正式控制协议、更强恢复。见 [docs/08-v2架构愿景.md](docs/08-v2架构愿景.md)。 +- **v3:跨网协作**(preview,见上面的实验性 CLI):跨机器、跨 agent 的共享房间,经 broker。见 [docs/09-v3协作系统规格.md](docs/09-v3协作系统规格.md)。 ## 文档 -- **[排错 / Troubleshooting](docs/TROUBLESHOOTING.md)** —— 禁用状态恢复、Codex `.git` 挂死、「装了却跑不起来」、Bun 版本要求 -- **[使用手册](https://github.com/raysonmeng/agent-bridge/blob/integration/v3-all/docs/manual/使用手册.md)**([English](https://github.com/raysonmeng/agent-bridge/blob/integration/v3-all/docs/manual/manual-en.md))—— 端到端使用走查 -- **[项目成长编年史](docs/README.md)** —— AgentBridge 是怎么一步步长起来的(阶段 01–11) +- **[排错 / Troubleshooting](docs/TROUBLESHOOTING.md)**:禁用状态恢复、Codex `.git` 挂死、「装了却跑不起来」、Bun 版本要求 +- **[使用手册](https://github.com/raysonmeng/agent-bridge/blob/integration/v3-all/docs/manual/使用手册.md)**([English](https://github.com/raysonmeng/agent-bridge/blob/integration/v3-all/docs/manual/manual-en.md)):端到端使用走查 +- **[项目成长编年史](docs/README.md)**:AgentBridge 是怎么一步步长起来的(阶段 01–11) ## 这个项目是怎么建成的 diff --git a/site/index.html b/site/index.html index c4766ed..5bbb7a6 100644 --- a/site/index.html +++ b/site/index.html @@ -77,12 +77,12 @@ { "@type": "Question", "name": "Which agents does AgentBridge support?", - "acceptedAnswer": { "@type": "Answer", "text": "Today the shipping in-session integration connects Claude Code and Codex. A public adapter vote (issue #212) decides which agent — OpenCode, Gemini CLI, and others are candidates — is wired in next." } + "acceptedAnswer": { "@type": "Answer", "text": "Today the shipping in-session integration connects Claude Code and Codex. A public adapter vote (issue #212) decides which agent is wired in next; OpenCode, Gemini CLI, and others are candidates." } }, { "@type": "Question", "name": "How is this different from codex-plugin-cc?", - "acceptedAnswer": { "@type": "Answer", "text": "One-way delegation plugins like openai/codex-plugin-cc let a host call Codex and get one answer back — request in, response out, no standing peer. AgentBridge keeps both agents live as persistent peers, and either side can push a message mid-turn (a review comment lands while the other is still working), not only at call boundaries." } + "acceptedAnswer": { "@type": "Answer", "text": "One-way delegation plugins like openai/codex-plugin-cc let a host call Codex and get one answer back: request in, response out, with no standing peer. AgentBridge keeps both agents live as persistent peers, and either side can push a message mid-turn (a review comment lands while the other is still working), not only at call boundaries." } }, { "@type": "Question", @@ -448,7 +448,7 @@

local bridge · claude code ⇄ codex

Multi AI agents. In-session comms.
No copy-paste.

-

AgentBridge is a local bridge that lets Claude Code and Codex collaborate in real time inside one working session — cross-reviewing each other's diffs, splitting tasks between them, and relaying work across quota limits.

+

AgentBridge is a local bridge that lets Claude Code and Codex collaborate in real time inside one working session: they cross-review each other's diffs, split tasks between them, and relay work across quota limits.

npm install -g @raysonmeng/agentbridge @@ -494,7 +494,7 @@

Multi AI agents. In-session comms.
N

-

A real session, replayed — both directions: Codex's reply is pushed into Claude's live session, and Claude's notes land inside Codex's running turn. No human relay.

+

Replay of a real session. Codex pushes its reply into Claude's live session; Claude drops notes into Codex's running turn. Nobody relays anything by hand.

@@ -502,13 +502,13 @@

Multi AI agents. In-session comms.
N

what that buys you

-

Concretely, three workflows

-

Not two chatbots talking. Two full agents from different providers holding each other accountable while you steer.

+

Three workflows

+

Two full agents from different providers check each other's work while you steer. Hover a card for the full exchange.

-

Cross-review, not just cross-talk

-

Codex implements; Claude reviews the diff in real time inside the same session and pushes change requests straight back into Codex's thread. Two providers checking each other — no copy-paste.

+

Cross-review, inside the session

+

Codex implements; Claude reviews the diff in real time inside the same session and pushes change requests straight back into Codex's thread. Two providers check each other's work without copy-paste.

cross-review
codex   guard done, 3 files
@@ -553,7 +553,7 @@ 

Task splits from one prompt

Quota relay for overnight runs

-

When one side's subscription window runs dry, it stops cleanly at a turn boundary and hands the task off — so a long job keeps moving instead of dying at a limit.

+

When one side's subscription window runs dry, it stops cleanly at a turn boundary and hands the task off, so the job keeps moving instead of dying at the limit.

quota-relay
codex   5h window low
@@ -580,7 +580,7 @@ 

Quota relay for overnight runs

Multi-pair by design

-

Every project folder gets its own pair. Working three repos at once? Run three bridges side by side — ports are allocated automatically per pair, and --pair <name> targets a specific one.

+

Every project folder gets its own pair. Working three repos at once? Run three bridges side by side; the CLI allocates ports per pair, and --pair <name> targets a specific one.

multi-pair
@@ -604,14 +604,14 @@

No mid-task cut

Automatic resume

-

When the paused side's window refreshes, the bridge resumes the task in the original interactive TUI — Codex via a queued turn/start, Claude via a channel push it acks with ack_resume. Idempotency tombstones inject each resume at most once.

+

When the paused side's window refreshes, the bridge resumes the task in the original interactive TUI: Codex via a queued turn/start, Claude via a channel push it acks with ack_resume. Idempotency tombstones inject each resume at most once.

Both windows in one glance

The daemon polls both agents' account-level 5h and weekly quota. abg budget --json prints the live snapshot: both windows, drift between the two sides, and pause state.

-

Opt-in. Quota relay is a companion-guard feature — install agent-quota-guard to enable it. Without it, everything else still works.

+

Opt-in. Quota relay ships as a companion-guard feature. Install agent-quota-guard to enable it. Without it, everything else still works.

@@ -619,7 +619,7 @@

Both windows in one glance

positioning

Why AgentBridge, and not…

-

Three things people reach for instead — and where each one leaves you doing the work by hand.

+

Three things people reach for instead, and the work each one hands back to you.

@@ -689,7 +689,7 @@

Four steps to a running pair

01
-

Install Bun (the runtime — Node alone won't work)

+

Install Bun (the runtime; Node alone won't work)

curl -fsSL https://bun.sh/install | bash
@@ -716,8 +716,8 @@

In another terminal, start Codex connected to the same bridge

-

Your first collaboration: with both sides running, ask Claude — "Propose a task split with Codex for <your task>, then have Codex implement its part while you review." You'll see the split flow into Codex's session, Codex start working, and its completion push back to Claude for review — all without you relaying anything by hand.

-

abg is a short alias for agentbridge. Both agents launch with max-permission defaults so an unattended pair doesn't stop for each prompt — add --safe to launch with normal prompts. See the Troubleshooting guide if abg installs but won't run.

+

Your first collaboration: with both sides running, ask Claude — "Propose a task split with Codex for <your task>, then have Codex implement its part while you review." You'll see the split flow into Codex's session, Codex start working, and its completion push back to Claude for review, without you relaying anything by hand.

+

abg is a short alias for agentbridge. Both agents launch with max-permission defaults so an unattended pair doesn't stop for each prompt. Add --safe for normal prompts. See the Troubleshooting guide if abg installs but won't run.

@@ -725,11 +725,11 @@

In another terminal, start Codex connected to the same bridge

origin

AgentBridge is its own proof of concept

-

The strongest thing we can say about it is that we didn't build it the normal way.

+

We did not build it the normal way.

- This tool was largely built by Claude Code (Anthropic) and Codex (OpenAI) collaborating through it — the very bridge they were building together. Every PR written by one agent was reviewed by the other. A human steered: assigning tasks, reviewing progress, and directing the two to work in parallel and check each other's output. + This tool was largely built by Claude Code (Anthropic) and Codex (OpenAI) collaborating through it, the very bridge they were building together. Every PR written by one agent was reviewed by the other. A human steered: assigning tasks, reviewing progress, and directing the two to work in parallel and check each other's output.
-

Two AI agents from different providers, connected in real time, shipping code side by side — and reviewing each other's PRs across the wire. That's not a marketing metaphor; it's the commit history.

+

Two AI agents from different providers, connected in real time, shipping code side by side and reviewing each other's PRs across the wire. The commit history shows it.

@@ -741,17 +741,17 @@

Claude Code ↔ Codex ships today. Here's what's coming.

Testing now · in branch

Multi-machine agent network

-

Agents on different machines joining one room over your LAN or tailnet — passphrase-gated, with presence and a shared whiteboard. Already passing real three-machine cross-network tests behind experimental abg room / join / broker commands.

+

Agents on different machines joining one room over your LAN or tailnet: passphrase-gated, with presence and a shared whiteboard. Already passing real three-machine cross-network tests behind experimental abg room / join / broker commands.

Next · public vote

More agents on the bridge

-

OpenCode, Gemini CLI, openclaw, hermes — wired in one adapter at a time, each a first-class peer. Which one lands first is your call: vote on issue #212.

+

OpenCode, Gemini CLI, openclaw, hermes, wired in one adapter at a time, each a first-class peer. Which one lands first is your call: vote on issue #212.

Designing

Capability mesh

-

From exchanging messages to calling each other's abilities: every bridged agent publishes its commands, skills and MCP tools; peers invoke them directly — behind a default permission gate. Chat bridge → agent bus.

+

From exchanging messages to calling each other's abilities: every bridged agent publishes its commands, skills and MCP tools; peers invoke them directly, behind a default permission gate. Chat bridge → agent bus.

Ongoing
@@ -765,11 +765,11 @@

Sharper collaboration

faq

-

Questions people actually ask

+

Questions people ask

abg installed but won't run — what's wrong? -

You're almost certainly missing Bun. AgentBridge's daemon and plugin server run on the Bun runtime; Node.js alone is not enough. Install it with curl -fsSL https://bun.sh/install | bash, then re-run abg claude. This is the single most common install failure.

+

You're almost certainly missing Bun. AgentBridge's daemon and plugin server run on the Bun runtime; Node.js alone is not enough. Install it with curl -fsSL https://bun.sh/install | bash, then re-run abg claude. This is the most common install failure.

Does AgentBridge support Windows? @@ -777,23 +777,23 @@

Questions people actually ask

Is it safe? What does --safe do? -

By default abg claude launches with --dangerously-skip-permissions and abg codex with --yolo — deliberate, because an unattended agent pair can't stop to ask you for each permission. Both can then run commands and edit files without prompting, so only do this in a workspace you trust. Add --safe (or set AGENTBRIDGE_SAFE=1) to launch with normal prompts. AgentBridge is a local dev tool, not a hardened boundary between untrusted tools.

+

By default abg claude launches with --dangerously-skip-permissions and abg codex with --yolo. This is deliberate: an unattended agent pair can't stop to ask you for each permission. Both can then run commands and edit files without prompting, so only do this in a workspace you trust. Add --safe (or set AGENTBRIDGE_SAFE=1) to launch with normal prompts. AgentBridge is a local dev tool, not a hardened boundary between untrusted tools.

How does quota relay actually work? -

With the companion agent-quota-guard installed, the daemon polls both agents' 5h and weekly subscription windows. Near a limit the guard lets the current turn finish, stops cleanly at the turn boundary, writes a .agent/checkpoint.md, and drops a pending record. When the window refreshes, the bridge auto-resumes the task in the original interactive TUI — Codex via a queued turn/start, Claude via an acked channel push.

+

With the companion agent-quota-guard installed, the daemon polls both agents' 5h and weekly subscription windows. Near a limit the guard lets the current turn finish, stops cleanly at the turn boundary, writes a .agent/checkpoint.md, and drops a pending record. When the window refreshes, the bridge auto-resumes the task in the original interactive TUI: Codex via a queued turn/start, Claude via an acked channel push.

Which agents does it support? -

Today the shipping in-session integration connects Claude Code and Codex. Which agent comes next is a public vote — see the adapter roadmap on issue #212 (OpenCode, Gemini CLI, and more are candidates).

+

Today the shipping in-session integration connects Claude Code and Codex. Which agent comes next is a public vote. See the adapter roadmap on issue #212 (OpenCode, Gemini CLI, and more are candidates).

How is this different from codex-plugin-cc? -

One-way delegation plugins like openai/codex-plugin-cc let a host call Codex and get one answer back — request in, response out, no standing peer on the other side. AgentBridge keeps both agents live as persistent peers, and either side can push a message mid-turn (a review comment lands while the other is still working), not only at call boundaries.

+

One-way delegation plugins like openai/codex-plugin-cc let a host call Codex and get one answer back: request in, response out, with no standing peer on the other side. AgentBridge keeps both agents live as persistent peers, and either side can push a message mid-turn (a review comment lands while the other is still working), not only at call boundaries.

Do I need an account or API keys for AgentBridge itself? -

No. AgentBridge is a local tool with zero runtime dependencies and no hosted service. You use your existing Claude Code and Codex logins; AgentBridge only relays messages between them on your machine — raw work never leaves the box.

+

No. AgentBridge is a local tool with zero runtime dependencies and no hosted service. You use your existing Claude Code and Codex logins; AgentBridge only relays messages between them on your machine; raw work never leaves the box.

Can I run more than one pair at once? @@ -809,7 +809,7 @@

Questions people actually ask

AgentBridge
Local bridge for Claude Code ↔ Codex collaboration. MIT licensed.
-
Built by this bridge itself — Claude Code ⇄ Codex, collaborating through it.
+
Built by this bridge itself: Claude Code ⇄ Codex, collaborating through it.
@@ -479,13 +479,13 @@

多个 AI agent,会话内通信

这能换来什么

-

具体说,三种工作流

-

不是两个聊天机器人对话,而是来自不同厂商的两个完整 agent 互相盯着对方干活,你只负责掌舵。悬停任意一张卡看完整例子。

+

三种工作流

+

来自不同厂商的两个完整 agent 互相盯着对方干活,你只负责掌舵。悬停任意一张卡看完整例子。

-

交叉 review,不只是互相喊话

-

Codex 写实现,Claude 在同一个会话里实时 review 它的 diff,把修改意见直接推回 Codex 的 thread。两个厂商互相把关 —— 全程不用复制粘贴。

+

会话内交叉 review

+

Codex 写实现,Claude 在同一个会话里实时 review 它的 diff,把修改意见直接推回 Codex 的 thread。两个厂商互相把关,不用复制粘贴。

交叉 review
codex   限流写完,改 3 个文件
@@ -530,7 +530,7 @@ 

一句话就能拆分任务

额度接力,通宵长任务不中断

-

当一方的订阅额度窗口跑空,它会在回合边界干净停下、把任务交接给另一方 —— 长任务继续推进,而不是撞到上限就死掉。

+

当一方的订阅额度窗口跑空,它会在回合边界干净停下,把任务交接给另一方,长任务继续推进。

额度接力
codex   5 小时窗口告急
@@ -557,7 +557,7 @@ 

额度接力,通宵长任务不中断

多项目多开,天生支持

-

每个项目文件夹一对。同时干三个仓库?三座桥并排跑 —— 端口按对自动分配,--pair <名字> 指定其中一对。

+

每个项目文件夹一对。同时干三个仓库?三座桥并排跑,端口按对自动分配,--pair <名字> 指定其中一对。

多开
@@ -581,14 +581,14 @@

不在中途硬切

自动续接

-

暂停一方的额度窗口刷新后,bridge 会在原来的交互式 TUI 里续接任务 —— Codex 通过排队的 turn/start 注入,Claude 通过它用 ack_resume 确认的 channel push。幂等墓碑保证每次续接最多注入一次。

+

暂停一方的额度窗口刷新后,bridge 会在原来的交互式 TUI 里续接任务:Codex 通过排队的 turn/start 注入,Claude 通过它用 ack_resume 确认的 channel push。幂等墓碑保证每次续接最多注入一次。

两个窗口一眼看清

daemon 轮询两个 agent 账户级的 5 小时和每周额度。abg budget --json 打印实时快照:两个窗口、两侧的用量偏差、以及暂停状态。

-

可选功能。额度接力依赖配套的 agent-quota-guard —— 装上才启用。不装它,其余功能照常工作。

+

可选功能。额度接力依赖配套的 agent-quota-guard,装上即启用。不装它,其余功能照常工作。

@@ -596,7 +596,7 @@

两个窗口一眼看清

定位

为什么用 AgentBridge,而不是……

-

大家通常会用另外三种方式凑合 —— 看看每一种会把哪些活儿甩回给你手动做。

+

大家通常拿另外三种方式凑合,每一种都会把一部分活儿甩回给你手动做。

@@ -618,36 +618,36 @@

为什么用 AgentBridge,而不是……

- - - - + + + + - + - - + + - + - + - + - - + + @@ -666,7 +666,7 @@

四步跑起一对 agent

01
-

装 Bun(运行时 —— 只有 Node 跑不起来)

+

装 Bun(运行时,只有 Node 跑不起来)

curl -fsSL https://bun.sh/install | bash
@@ -693,8 +693,8 @@

另开一个终端,启动接入同一 bridge 的 Codex

-

你的第一次协作:两边都跑起来后,对 Claude 说 —— 「就 <某个任务> 和 Codex 商量个分工,然后让 Codex 实现它那部分,你来 review。」 你会看到分工方案流进 Codex 的会话、Codex 开始干活、干完后又推回 Claude 这边等 review —— 全程你不用手动搬运一句话。

-

abgagentbridge 的短别名。两个 agent 默认以最高权限启动,好让无人值守的一对不必逐条问你 —— 加 --safe 恢复正常权限提示。如果 abg 装好却跑不起来,看排错指南

+

你的第一次协作:两边都跑起来后,对 Claude 说:「就 <某个任务> 和 Codex 商量个分工,然后让 Codex 实现它那部分,你来 review。」 你会看到分工方案流进 Codex 的会话、Codex 开始干活、干完后又推回 Claude 这边等 review,全程你不用手动搬运一句话。

+

abgagentbridge 的短别名。两个 agent 默认以最高权限启动,好让无人值守的一对不必逐条问你。加 --safe 恢复正常权限提示。如果 abg 装好却跑不起来,看排错指南

@@ -702,11 +702,11 @@

另开一个终端,启动接入同一 bridge 的 Codex

来历

AgentBridge 本身就是它自己的概念验证

-

关于它,我们能说的最有力的一句话是:它不是按常规方式写出来的。

+

我们没按常规方式写它。

- 这个工具很大程度上是 Claude Code(Anthropic)和 Codex(OpenAI)通过它自己协作写出来的 —— 它们正是在用这座桥搭这座桥。其中一个 agent 写的每一个 PR,都由另一个 agent review。一位人类开发者掌舵:分派任务、审阅进度、指挥两边并行工作、互相把关。 + 这个工具很大程度上是 Claude Code(Anthropic)和 Codex(OpenAI)通过它自己协作写出来的,它们正是在用这座桥搭这座桥。其中一个 agent 写的每一个 PR,都由另一个 agent review。一位人类开发者掌舵:分派任务、审阅进度、指挥两边并行工作、互相把关。
-

来自两个不同厂商的 AI agent,实时相连,并肩写代码 —— 还隔着这根线互相 review PR。这不是营销比喻,而是提交历史里实打实的记录。

+

来自两个不同厂商的 AI agent,实时相连,并肩写代码,还隔着这根线互相 review PR,提交历史里有实打实的记录。

@@ -718,17 +718,17 @@

Claude Code ↔ Codex 今天已可用。接下来是这些。
正在测试 · 已在分支

多机 agent 网络

-

不同机器上的 agent 通过局域网或 tailnet 加入同一个房间 —— 口令门禁、成员在线状态、共享白板。真实三机跨网测试已经打通,实验命令 abg room / join / broker 已可用。

+

不同机器上的 agent 通过局域网或 tailnet 加入同一个房间:口令门禁、成员在线状态、共享白板。真实三机跨网测试已经打通,实验命令 abg room / join / broker 已可用。

下一步 · 公开投票

更多 agent 上桥

-

OpenCode、Gemini CLI、openclaw、hermes —— 一次接一个,每个都是一等对等体。先接谁由你决定:去 issue #212 投票。

+

OpenCode、Gemini CLI、openclaw、hermes,一次接一个,每个都是一等对等体。先接谁由你决定:去 issue #212 投票。

设计中

能力网格

-

从互发消息升级到互调能力:每个上桥的 agent 公开自己的 command、skill 和 MCP 工具,对方可以直接调用 —— 默认自带权限门。聊天桥 → agent 总线。

+

从互发消息升级到互调能力:每个上桥的 agent 公开自己的 command、skill 和 MCP 工具,对方可以直接调用,默认自带权限门。聊天桥 → agent 总线。

持续
@@ -742,7 +742,7 @@

更精细的协作

常见问题

-

大家真的会问的问题

+

常见问题

abg 装好了却跑不起来? @@ -754,23 +754,23 @@

大家真的会问的问题

安全吗?--safe 是干什么的? -

默认 abg claude--dangerously-skip-permissionsabg codex--yolo 启动 —— 这是有意为之,无人值守的一对 agent 没法逐条停下来问你权限。代价是两个 agent 可以不经确认执行命令、改文件,所以只在你信任的工作区里这么用。加 --safe(或设 AGENTBRIDGE_SAFE=1)恢复正常权限提示。它是本地开发工具,不是隔离不可信工具的安全边界。

+

默认 abg claude--dangerously-skip-permissionsabg codex--yolo 启动。这是有意为之:无人值守的一对 agent 没法逐条停下来问你权限。代价是两个 agent 可以不经确认执行命令、改文件,所以只在你信任的工作区里这么用。加 --safe(或设 AGENTBRIDGE_SAFE=1)恢复正常权限提示。它是本地开发工具,不是隔离不可信工具的安全边界。

额度接力到底怎么工作? -

装上配套的 agent-quota-guard 后,daemon 轮询两个 agent 的 5 小时和每周订阅额度。临近上限时,guard 让当前 turn 收尾、在回合边界干净停下、写入 .agent/checkpoint.md、留下一条 pending 记录。等窗口刷新,bridge 在原来的交互式 TUI 里自动续接 —— Codex 靠排队的 turn/start,Claude 靠一条被确认的 channel push。

+

装上配套的 agent-quota-guard 后,daemon 轮询两个 agent 的 5 小时和每周订阅额度。临近上限时,guard 让当前 turn 收尾、在回合边界干净停下、写入 .agent/checkpoint.md、留下一条 pending 记录。等窗口刷新,bridge 在原来的交互式 TUI 里自动续接:Codex 靠排队的 turn/start,Claude 靠一条被确认的 channel push。

支持哪些 agent? -

目前已上线的会话内集成连接的是 Claude Code 和 Codex。下一个接哪个由公开投票决定 —— 见 issue #212(OpenCode、Gemini CLI 等都是候选)。

+

目前已上线的会话内集成连接的是 Claude Code 和 Codex。下一个接哪个由公开投票决定,见 issue #212(OpenCode、Gemini CLI 等都是候选)。

codex-plugin-cc 有什么区别? -

openai/codex-plugin-cc 这类单向委派插件是宿主调用 Codex、拿一个结果回来 —— 请求进、响应出,对面没有常驻对等体。AgentBridge 让两个 agent 都作为持久对等体在线,任意一方都能在对方 turn 进行中途推消息(review 意见能在对方还在干活时就送达),而不只是在调用边界。

+

openai/codex-plugin-cc 这类单向委派插件是宿主调用 Codex、拿一个结果回来:请求进、响应出,对面没有常驻对等体。AgentBridge 让两个 agent 都作为持久对等体在线,任意一方都能在对方 turn 进行中途推消息(review 意见能在对方还在干活时就送达),而不只是在调用边界。

用 AgentBridge 本身需要账号或 API key 吗? -

不需要。它是本地工具,零运行时依赖,也没有任何托管服务。你用现成的 Claude Code 和 Codex 登录即可;AgentBridge 只在你机器上转发它们之间的消息 —— 原始工作内容不出本机。

+

不需要。它是本地工具,零运行时依赖,也没有任何托管服务。你用现成的 Claude Code 和 Codex 登录即可;AgentBridge 只在你机器上转发它们之间的消息,原始工作内容不出本机。

能同时跑多对吗? @@ -786,7 +786,7 @@

大家真的会问的问题

AgentBridge
连接 Claude Code ↔ Codex 协作的本地桥接工具。MIT 开源。
-
这座桥由它自己建成 —— Claude Code ⇄ Codex 通过它协作完成。
+
这座桥由它自己建成:Claude Code ⇄ Codex 通过它协作完成。

顶级 coding agent 的原生能力完整保留 —— 两边都是未经修改的原生 CLI 本体保留 —— 但靠你人肉当胶水打折 —— 被调方是一次性子进程丢失 —— agent 被降级成被驱动的工人完整保留:两边都是未经修改的原生 CLI 本体保留:但靠你人肉当胶水打折:被调方是一次性子进程丢失:agent 被降级成被驱动的工人
两个 agent 都作为对等体在线是 —— 持久对等体是:持久对等体 在,但彼此断开否 —— 一个宿主一个被调方否 —— 一个大脑 N 个工人否:一个宿主一个被调方否:一个大脑 N 个工人
turn 进行中途推消息可以 —— review 中途送达可以:review 中途送达 靠手动,还得猜时机 只能在调用边界 只能在预定步骤
agent 自己提分工可以 —— 它们自己商量可以:它们自己商量 不能 不能不能 —— 自上而下不能:自上而下
扛得住额度撞线行 —— 检查点 + 自动续接不行 —— 得你手动重启行:检查点 + 自动续接不行:得你手动重启 不行 看你脚本写得怎么样