raysonmeng/agent-bridge
요약
AgentBridge는 Claude Code와 Codex 간 양방향 통신을 가능하게 하는 로컬 브리지 도구입니다. 이 도구는 두 에이전트가 하나의 세션 내에서 서로의 코드를 검토하고, 작업 분할을 협상하며, 구독 제한에 관계없이 작업을 연속적으로 진행하도록 돕습니다.
핵심 포인트
- Codex와 Claude Code 간 실시간 양방향 교차 검토 지원
- 단일 프롬프트로 에이전트 간 작업 분배 및 역할 협상 가능
- 한쪽의 구독 만료 시 다른 쪽으로 작업을 원활하게 인계 (Quota relay)
- 수동 복사/붙여넣기 없이 메시지 흐름을 자동화하는 브리지 기능
🌐 웹사이트: raysonmeng.github.io/agent-bridge, 실제 세션의 애니메이션 리플레이와 함께 제공됩니다.
같은 작업 세션 내에서 Claude Code와 Codex 간 양방향 통신을 위한 로컬 브리지입니다.

실제 세션을 재현했습니다. Codex의 검토 내용이 인간의 중개 없이 Claude의 라이브 세션으로 전달됩니다. 전체 애니메이션 데모 →
이를 통해 구체적으로 얻는 이점:
교차 검토(Cross-review) — Codex가 구현하고, Claude가 같은 세션 내에서 diff*를 검토하며 변경 요청을 곧바로 Codex의 스레드로 푸시합니다. 두 제공업체가 복사/붙여넣기 없이 서로의 작업을 확인합니다.하나의 프롬프트로 작업 분할(Task splits from one prompt) — 두 에이전트 중 어느 쪽이든 다른 쪽과 노동 분배를 제안하도록 요청하면, 코드를 작성하기 전에 누가 무엇을 할지 협상합니다. 사용자가 조종하고; 그들이 조정합니다.야간 실행을 위한 쿼터 릴레이(Quota relay for overnight runs) — 한쪽의 구독 기간이 소진되면, 턴 경계에서 깔끔하게 중단되고 다른 쪽으로 작업을 인계하여, 긴 작업이 제한에 걸려 죽는 대신 계속 진행되도록 합니다.
이 도구는 주로 Claude Code와 Codex가 이를 통해 협업하며 구축되었습니다. 한 에이전트가 작성한 모든 PR은 다른 에이전트에 의해 검토되었습니다. AgentBridge 자체가 그 증명 개념(proof of concept)입니다.
⭐ 만약 AgentBridge가 유용하다면, 별점을 남겨 두 에이전트를 사용하는 다른 사람들이 이 도구를 찾도록 도와주세요.
…두 개의 터미널을 열고 복사/붙여넣기? 할 수는 있지만, 그러면 사용자가 메시지 버스가 됩니다. 수동으로 텍스트를 운반하고 언제 중단해도 안전한지 추측해야 합니다. AgentBridge는 릴레이 과정을 자동화합니다: 메시지가 스스로 흐르고, 비즈니스 가드(busy-guard)가 활성 턴 동안 답장을 차단하며, 브리지는 잡음이 많은 중간 이벤트를 필터링하여 각 측면이 다른 쪽의 의미 있는 출력만 보도록 합니다.…단방향 위임 플러그인 사용? openai/codex-plugin-cc와 같은 도구는
let a hostcallCodex를 호출하고 하나의 답변을 받습니다: 요청 입력(request in), 응답 출력(response out), 반대편에 대기하는 동료가 없습니다. AgentBridge는 두 에이전트를 지속적인 피어(persistent peers)로 유지하며, 어느 쪽이든 호출 경계(call boundaries)뿐만 아니라 **턴 중간(mid-turn)**에도 메시지를 보낼 수 있습니다(다른 쪽이 아직 작업 중일 때 검토 코멘트가 도착하는 식).…외부 오케스트레이터 연결? 신의 프로세스가 단순한 터미널들을 스케줄링하는 것은 하향식입니다: 하나의 두뇌와 서로 대화하지 않는 N개의 워커들. AgentBridge는 피어-투-피어(peer-to-peer) 방식입니다: 두 개의 완전한 에이전트가 세션 내에서 대화하며, 스스로 분할을 제안하고, 인간의 조종 하에 모든 단계를 스크립팅하는 대신 서로를 검토합니다.
이 프로젝트는:
- Claude Code와 Codex를 하나의 워크플로우로 연결하는 로컬 개발자 도구입니다.
- MCP 채널과 Codex 앱 서버 프로토콜 간 메시지를 전달하는 브릿지입니다.
- 여러 에이전트 간의 인간 참여형(human-in-the-loop) 협업을 위한 실험적 설정입니다.
이 프로젝트가 아닌 것은:
- 호스팅되는 서비스나 멀티테넌트 시스템입니다.
- 임의의 에이전트 백엔드를 위한 범용 오케스트레이션 프레임워크입니다.
- 신뢰하지 않는 도구 간의 강화된 보안 경계입니다.
양방향 Claude ↔ Codex 메시징을 하나의 작업 세션에서 지원합니다. 데몬(daemon)은 Codex 출력을 가로채서 채널 알림으로 Claude에 전달하고; Claude는 reply MCP 도구를 통해 응답하며, 브릿지는 그 응답을 turn/start로 Codex 스레드에 주입합니다.
.폴백이 있는 푸시 전송(Push delivery with fallback): 메시지가 채널 알림으로 도착하며; 실패한 푸시는 get_messages를 통해 비워내는 인메모리 큐(in-memory queue)로 폴백됩니다. 개별 메시지 source 필드를 통한 루프 방지 기능을 제공합니다.
.턴 조정(Turn coordination): 바쁜 가드(busy-guard)는 활성 Codex 턴 동안의 응답을 거부하며; 개별 턴 비활동 감시 장치(inactivity watchdog)는 손실된 turn/completed가 영원히 주입 잠금 상태에 빠지는 것을 막습니다. 잡음이 많은 중간 이벤트들은 축소되어 의미 있는 agentMessage 페이로드만 Claude에게 도달하게 합니다.
.여러 쌍을 나란히 배치(Multiple pairs side by side): 프로젝트 디렉토리당 하나의 Claude+Codex 쌍을 구성하며, 포트는 4500부터 +10 간격으로 각 쌍에 할당됩니다. 쌍 인지형 claude/codex/resume
/kill
/doctor
/budget
via --pair
.복원력 있는 라이프사이클 (Resilient lifecycle) — Claude Code 재시작 시에도 지속적으로 실행되는 백그라운드 데몬이 유지됩니다 (백오프(backoff)를 이용한 자동 재연결); 고아 프로세스 정리(abg doctor); 읽기 전용 진단 기능; abg pairs prune을 통해 방치된 상태를 회수합니다.
.스레드 자동 재개 (Thread auto-resume) — 기본적으로 abg codex는 쌍의 마지막 Codex 스레드를 재개하며, abg resume는 양쪽 모두에 대해 재개 명령을 출력하거나 수행합니다.
.예산 조정, 속도 저하 라인 및 완전 자동 재개 (Budget coordination, slowdown-line & fully-automatic resume) — 구독 할당량 창(subscription-quota windows)에서 한계에 도달하여 중단되는 대신 장기 작업을 계속 진행하도록 합니다. 자세한 내용은 예산 조정(Budget Coordination)을 참조하십시오.
실시간 양방향 메시징에 대한 일반적인 우려는 두 에이전트의 컨텍스트가 무한정 합쳐져서 커진다는 것입니다. 그렇지 않습니다. 브릿지(bridge)는 컨텍스트가 아니라 메시지를 전달합니다 — 각 에이전트는 자체 컨텍스트 창을 유지하며, 브릿지는 한 에이전트의 전체 기록을 다른 쪽으로 복사하지 않습니다. (어떤 에이전트가 계획하고 어떤 에이전트가 실행할지는 사용자의 선택입니다 — 역할은 고정되어 있지 않으며, Codex는 Claude를 매우 쉽게 구동할 수 있습니다.) 세 가지 필터가 실제로 교차하는 내용만 작게 유지합니다:
오직 브릿지는 에이전트의 실제 결론만을 전달하며, 도구 호출 노이즈(tool-call noise)는 전송하지 않습니다 — agentMessage
교차되는 것은 다음 세 가지입니다: commandExecution, fileChange, 그리고 추론 변화량(reasoning deltas)은 다른 쪽으로 전달되지 않으며, 전체 스크롤백도 마찬가지입니다.세 계층 마커 라우팅(기본값 filtered 모드). 각 메시지는 태그가 지정되며 데몬이 해당 태그로 라우팅합니다: [IMPORTANT]는 즉시 전송되고, [STATUS]는 버퍼링되어 주기적인 요약(기본값: 3회 업데이트 또는 15초)으로 배치되며, [FYI]는 폐기됩니다. 마커 규칙은 프로젝트의 AGENTS.md에 한 번만 존재하며 (abg init을 통해 작성됨), 에이전트 시작 시 로드됩니다.협업 계약은 한 곳에만 존재합니다 — 모든 메시지에 추가되지 않습니다 (이는 모든 스레드와 재개 제목을 오염시킬 것입니다).
결과적으로: 각 쪽은 선별된 의미 있는 메시지 스트림을 받게 되므로, 컨텍스트는 다른 에이전트의 원시 활동량에 따라 커지는 것이 아니라 실제 교환 횟수에 비례하여 성장합니다. AGENTBRIDGE_FILTER_MODE=full로 설정하십시오.
(또는 설정 파일에서 동등한 방법으로) 필터링되지 않은 스트림을 정말로 원할 때입니다.
| Dependency | Recommended version | Install |
|---|---|---|
| Bun | v1.3.11+ | `curl -fsSL https://bun.sh/install |
| ... | ||
Claude Code와 Codex의 권장 버전은 2026-09-12에 확인된 발행사(publishers)의 최신 안정 npm 버전을 따릅니다. 이러한 권장 사항은 기존의 최소 버전 검사를 변경하지 않습니다. 크로스 머신 Codex 메시징, 승인(acknowledgements), 데몬/세션 복구는 Codex 0.153.4를 사용하여 확인되었습니다. 룸 설정 및 일회성 --new |
업그레이드 후 단계에 대해서는 Codex 원격 룸을 참조하십시오.
Bun은 AgentBridge 데몬과 플러그인 서버의 런타임으로 필수적입니다. Node.js만으로는 충분하지 않습니다. 만약 abg가 설치되지만 실행되지 않는다면, 먼저 Bun을 설치하십시오 (문제 해결(Troubleshooting) 참조).
아무것도 없는 상태에서 작동하는 페어까지 다섯 단계:
# 1. Bun 설치 (런타임; Node만으로는 작동하지 않음)
curl -fsSL https://bun.sh/install | bash
# 2. CLI 설치. postinstall이 Claude Code 플러그인을 자동으로 등록합니다.
...
끝입니다: 데몬은 필요할 때 자동으로 시작되며 재시작 시 다시 연결됩니다. (abg는 agentbridge의 짧은 별칭이며, 둘 다 동일합니다.) 만약 postinstall 플러그인 단계가 건너뛰어졌다면(예: Claude Code를 아직 설치하지 않은 경우), abg init을 실행하여 재시도하거나 수동 설치 대체 방법을 참조하십시오.
경고
** abg claude는 기본적으로 --dangerously-skip-permissions 플래그와 함께 실행되며, abg codex는 --yolo 플래그와 함께 실행됩니다.** 이는 의도된 것입니다. 관리되지 않는 에이전트 페어는 모든 권한에 대해 사용자에게 물어볼 수 없기 때문입니다. 이는 두 에이전트 모두 프롬프트 없이 명령을 실행하고 파일을 편집할 수 있음을 의미합니다. 신뢰하는 작업 공간에서만 이 작업을 수행하십시오. 정상적인 프롬프트로 시작하려면 --safe를 추가하십시오 (abg claude --safe, abg codex --safe) 또는 AGENTBRIDGE_SAFE=1로 설정하십시오. 기본값은 사용자가 자체 권한 플래그를 전달하는 경우 자동으로 비활성화됩니다. 양쪽 모두 실행 중일 때, Claude에게 두 번째 에이전트를 필요로 하는 작업을 할당해 보십시오. 예를 들어:
Claude에게 다음과 같이 요청해 보세요: "Codex를 사용하여 <당신의 작업>에 대한 작업 분할을 제안하고, Codex가 자신의 부분을 구현하는 동안 당신이 검토하도록 하세요."
그러면 Claude가 코덱스 세션으로 제안된 업무 분담을 보내고, 코덱스가 이를 수락(또는 반박)하며 작업을 시작하고, 이 결과물이 당신이 직접 전달할 필요 없이 다시 Claude의 세션으로 푸시되어 검토될 것을 볼 수 있습니다.
만약 자동 postinstall 과정에서 플러그인을 등록하지 못했다면, Claude Code 내부에서 다음 명령을 실행하세요:
# 1. AgentBridge 마켓플레이스 추가
/plugin marketplace add raysonmeng/agent-bridge
# 2. 플러그인 설치
...
나중에 업데이트하려면: /plugin marketplace update agentbridge
그리고 /reload-plugins
(또는 /plugin → Marketplaces → agentbridge에서 자동 업데이트 활성화).
만약 AgentBridge 소스 코드를 수정하고 싶다면, 로컬 개발 환경 설정을 사용하는 것이 좋습니다:
git clone https://github.com/raysonmeng/agent-bridge.git
cd agent-bridge
bun install
...
참고: agentbridge claude는 --dangerously-load-development-channels plugin:agentbridge@agentbridge를 주입합니다 (연구 미리보기 워크플로우). 신뢰하는 채널과 MCP 서버만 활성화하세요. 소스를 변경한 후에는 agentbridge dev를 다시 실행하고 Claude Code를 재시작하거나 (/reload-plugins) 하세요.
모든 명령어는 agentbridge와 짧은 별칭인 abg 모두에서 작동합니다.
| 명령어 (Command) | 설명 (Description) |
|---|---|
abg init | 플러그인을 설치하고 종속성(bun/claude/codex)을 확인하며, .agentbridge/config.json 파일을 생성합니다. |
abg claude [인수...] | 푸시 채널이 활성화된 상태로 Claude Code를 시작합니다. 기본적으로 (--dangerously-skip-permissions 옵트 아웃), --safe 또는 AGENTBRIDGE_SAFE=1 로 실행됩니다. 이전 kill 명령으로 인해 종료된 센티넬(sentinel)을 정리합니다. 전달되는 인수들은 claude로 포워딩됩니다. |
abg codex [인수...] | AgentBridge 데몬에 연결된 Codex TUI를 시작합니다. 기본적으로 (abg codex는 쌍의 마지막 스레드를 자동 재개하며, 신선한 스레드는 abg codex --new를 사용해야 합니다. TUI는 기본적으로 --yolo로 실행됩니다.) --safe 또는 AGENTBRIDGE_SAFE=1 로 실행되며, exec와 같은 비-TUI 하위 명령어는 건드리지 않습니다. 전달되는 인수들은 codex로 포워딩됩니다. |
| `abg resume [claude | codex]` |
abg pairs | 등록된 쌍 목록을 보여줍니다. `abg pairs rm <이름 |
abg doctor [--json] | 읽기 전용 진단: 환경 변수(env), 데몬 상태/준비 상태, 빌드 드리프트(build drift), 아티팩트 정렬(artifact alignment), TUI 연결, 로그를 확인합니다. |
abg budget [--json] | 두 에이전트의 구독 할당량 스냅샷 (5시간/주간 창, 드리프트, 일시 중지 상태)을 보여줍니다. |
abg logs [--codex] [-f] [-n N] | 이 쌍의 데몬 로그(또는 --codex를 사용한 Codex 래퍼 로그)를 추적합니다. -f는 실시간으로 따라가고, -n N은 라인 수를 설정합니다 (기본값 100). |
abg kill | 이 쌍의 데몬과 관리되는 Codex TUI를 정상적으로 중지하고, 종료된 센티넬을 작성합니다. abg kill --all은 모든 쌍을 중지합니다. |
abg dev | (개발 전용) 로컬 마켓플레이스를 등록하고 플러그인을 캐시에 강제 동기화합니다. |
abg --help / abg --version | 도움말 또는 버전을 표시합니다. |
The v3 협업 계층은 0.1.31 버전으로 배포되며, 브로커를 통해 장치 간 공유 방(shared rooms)을 제공하고, auth, broker, room, join, 그리고 publish 기능을 포함합니다.
명령어(commands). Codex 전용 머신은 네이티브 룸 도구(native room tools)를 사용하여 메시지와 승인(acknowledgements)을 교환할 수 있습니다. 설정 및 전달 제한에 대해서는 Codex 원격 룸(Codex remote rooms)을, 브로커 및 멤버십 관리에 대해서는 사용자 매뉴얼을 참조하십시오.
페어 인식 명령어(claude, codex, resume, kill, doctor, budget, logs)는 --pair <name>를 받아 특정 페어를 대상으로 합니다. 기본적으로 프로젝트 디렉터리당 하나의 페어가 할당되며, 포트는 4500부터 +10 간격으로 할당됩니다.
일부 플래그는 자동으로 주입되므로 수동으로 지정할 수 없습니다:
agentbridge claude은 다음을 소유합니다: --channels, --dangerously-load-development-channels
agentbridge codex는 다음을 소유합니다: --remote, --enable tui_app_server
- 두 런처 모두 래퍼 플래그
--safe(전달되지 않음)를 소비합니다. 이 플래그는 해당 실행에 대한 최대 권한 기본값을 비활성화합니다. 기본값은 또한 사용자가 명시적인 권한 플래그(-a/--ask-for-approval/-s/--sandboxfor codex;--permission-mode/--allow-dangerously-skip-permissionsfor claude)를 전달할 때 자동으로 억제됩니다. —claude에 명시적인 승인 정책 옆에--yolo를 주입하는 것은 하드한 Codex CLI 충돌을 야기합니다.
소유된 플래그를 수동으로 전달하는 것은 하드 오류이며, 네이티브 명령어를 직접 사용하도록 안내가 제공됩니다.
TUI 형식의 경우 플래그 위치에 대한 참고 사항: 브리지 플래그는 맨 앞에 주입되며; 서브 명령어별 인수를 포함하는 TUI 서브 명령어(agentbridge codex:resume, fork)의 경우, 서브 명령어 이름 뒤에 주입됩니다. 비-TUI 서브 명령어(exec, mcp, plugin, …)는 변경 없이 전달됩니다. src/cli/codex.ts buildCodexArgs를 참조하십시오.
AgentBridge는 두 개의 프로세스 로컬 브리지입니다:
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Claude Ecosystem의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기