Skip to main content
Glama

AgentBridge

Статус: идёт миграция, и этот README описывает старую форму.

AgentBridge начинался как мост между Claude Code и Codex/Antigravity, и всё, что описано ниже, работает и сегодня. Он обобщается, чтобы любой поддерживаемый CLI мог выступать оркестратором, а любой другой — исполнителем, а маршрутизация управлялась бы пользовательским профилем вместо жёстко заданных имён моделей.

О том, куда он движется, читайте в docs/architecture.md и docs/roles.md. В разработке: слой адаптеров провайдеров (src/providers/), профиль маршрутизации (src/profile/) и процесс настройки agentbridge init. Адаптер Cursor присутствует, но не проверен — его флаги написаны по прежним знаниям, а не по установленному CLI, и об этом сказано в начале файла.

Пока миграция не завершена, считайте разделы ниже точными для исполнителей Codex и Antigravity, а документацию — точной для дизайна.

Оркестраторы

AgentBridge предоставляет свою поверхность команд /agentbridge ... как MCP-промпты, поэтому любой MCP-клиент, поддерживающий prompts/list, получает те же команды от самого сервера — не нужно устанавливать или поддерживать в синхронизации отдельные файлы команд для каждого хоста.

Хост

Установка

Команды

Codex CLI

docs/install-codex.md

через MCP-промпты, плюс hosts/codex/AGENTS.md

Claude Code

зарегистрируйте MCP-сервер, затем по желанию скопируйте hosts/claude-code/skills/agentbridge в ~/.claude/skills/

через MCP-промпты

Команда

Что делает

agentbridge <goal>

оценить объём, спланировать, делегировать, проверить, отчитаться

agentbridge_setup

обнаружить CLI, убедиться, что каждый работает, записать профиль маршрутизации

agentbridge_status

что установлено и как роли сопоставлены; без инференса

agentbridge_doctor

диагностировать реальными пробными задачамии сказать, что исправить

agentbridge_profile

показать или пересчитать маршрутизацию, опционально для одной роли

agentbridge_recon

одно ограниченное исследование репозитория

agentbridge_review

независимое рецензирование от другого семейства моделей

agentbridge_resume

продолжить прерванный запуск

Доктрина, стоящая за этими командами, живёт в doctrine/ и не называет моделей — она маршрутизирует по ролям, а .agentbridge/profile.json сопоставляет роли с тем, что реально установлено у пользователя.

Небольшой локальный stdio MCP-сервер, который позволяет Claude Code делегировать работу Codex CLI и Antigravity CLI (agy) как внешним исполнителям — используя те CLI-сессии, в которые вы уже вошли, и без API-ключей. Claude остаётся оркестратором. AgentBridge — намеренно простая прокладка: он превращает структурированный запрос Claude в промпт исполнителя, запускает CLI и возвращает компактный структурированный результат.

User
 └─> Claude Code                      (orchestrator — decides what to delegate)
      └─> AgentBridge MCP tool        (codex_run / antigravity_run)
           └─> codex exec  |  agy --print
                └─> result
           <─ structured MCP result
      <─ Claude inspects the work and continues

Related MCP server: agent-intern

Чем это не является

Никакого облачного сервиса, веб-интерфейса, базы данных, демона, дашборда, очереди задач, системы аккаунтов или управления API-ключами. Это один Node-процесс, который Claude Code запускает через stdio и останавливает при завершении.


Как это работает

  1. Claude вызывает codex_run или antigravity_run со структурированным запросом (goal, mode, model, effort, paths, contract, acceptance criteria…).

  2. AgentBridge собирает промпт исполнителя ровно из этих полей. Он не запускает никакой собственной модели — это сборка строк, а не инференс.

  3. Он резервирует зоны записи, делает снимок рабочего дерева git и запускает CLI с массивом аргументов (shell: false).

  4. Он разбирает машинночитаемый вывод CLI, извлекает итоговый результат исполнителя (но не его внутренние рассуждения), диффит git-дерево, чтобы понять, что действительно изменилось, и возвращает компактный JSON-результат.

Один вызов MCP — это одна попытка исполнителя. AgentBridge никогда не повторяет. Решает ли, стоит ли новая попытка, Claude.


Требования

Node.js

≥ 20.10 (собран и проверен на 24.14)

Codex CLI

на PATH, уже выполнен вход (codex login) — проверено на codex-cli 0.147.0

Antigravity CLI

agy на PATH, уже выполнен вход — проверено на agy 1.1.12

git

необязателен, но настоятельно рекомендуется; без него нельзя вычислить files_changed / scope_violations

AgentBridge никогда не читает, не копирует, не экспортирует и не изменяет ваши учётные данные Codex или Antigravity. Он вызывает CLI ровно так, как это сделал бы вошедший человек.


Установка и сборка

npm install
npm run build
npm test

Тестовый набор повсюду использует мокапы процессов, поэтому обычный npm test не расходует ни одной квоты моделей.


Регистрация в Claude Code

Зарегистрируйте один раз на уровне пользователя, чтобы каждый проект мог им пользоваться:

claude mcp add --transport stdio --scope user agentbridge -- node D:\Code\Agentbridge\dist\index.js

Проверьте из терминала:

claude mcp list
claude mcp get agentbridge

Затем проверьте изнутри Claude Code, запустив /mcp. Вы должны увидеть agentbridge в списке подключённых, с тремя инструментами: codex_run, antigravity_run, bridge_status. Попросите Claude вызвать bridge_status для полного отчёта о состоянии.

Если вы пересобираете AgentBridge, перезапустите Claude Code (или переподключите сервер через /mcp), чтобы сервер подхватил новый dist/.


Каталог проекта

Исполнители запускаются в одном каталоге проекта и ограничены им; его порядок определения:

  1. AGENTBRIDGE_PROJECT_DIR, затем унаследованный CLAUDE_PROJECT_DIR (который экспортирует Claude Code).

  2. Первый file://-корень, который объявляет MCP-клиент.

  3. Рабочий каталог процесса сервера.

bridge_status сообщает, какой из них был использован.


Инструменты

codex_run

Поле

Тип

Примечание

goal

string

обязательно

mode

string | implement | review

обязательно

model

gpt-5.6-sol | gpt-5.6-terra | gpt-5.6-luna

обязательно

effort

light | medium | high | extra high | max

**обязательно`

relevant_files

string[]

файлы для просмотра в первую очередь

allowed_paths

string[]

обязательно в режиме implement

no_touch

string[]

пути, которые исполнитель не должен изменять

context

string

контекст, которого нет в репозитории

contract

string

интерфейсы/типы, которым нужно точно соответствовать

acceptance_criteria

string[]

критерии приёмки

tests

string[]

контекст для исполнителя — AgentBridge никогда не запускает их сам

timeout_seconds

number

по умолчанию 900, минимум/максимум 30–3600

Модели. Доступны три слага, каждый передаётся в CLI без изменений:

мodel

Что это

gpt-5.6 — sol

самая сильная универсальная инженерная модель

gpt-5.6-terra

специалист по «бра`;

Wait, I need to check the table formatting. I accidentally inserted gibberish. Let me rewrite cleanly:

model

Что это

gpt-5.6-sol

самая сильная универсальная инженерная модель

gpt-5.6-terra

глубокий браунфилд / существующий кода база

gpt-5.6-luna

экономичная рабочая лошадка на большие объёмы

Сопоставление effort (метка оркестратора → Codex model_reasoning_effort):

light

medium

high

extra high

max

low

medium

high

xhigh

max

Сопоставление полное и детерминированное. Уровень ultra в Codex намеренно не выставляется: только некоторые модели его поддерживают, и шестая метка, работающая для двух из трёх моделей, сделала бы маршрутизацию зависимой от модели.

Доиступность. Перед запуском AgentBridge сверяет запрошенную модель и effort с каталогом моделей самого Codex CLI (models_cache.json в CODEX_HOME) — это чтение файла, не инференс.

  • модель есть, effort есть → задача запускается

  • модель есть, effort нет → invalid_effort, с details.supported_efforts

  • модели нет → requested_model_unavailable, с details.available_models

  • нет читаемого каталога → задача всё равно выполняется, с предупреждением, что доступность unverified

Ничто никогда не подменяется. Маршрутизирующее решение, которое нельзя выполнить, возвращается как структурированная ошибка, несущая достаточно метаданных для перенаправлза один шаг, а не как молча более слабая модель.

Собираемый вызов:

codex exec --json --skip-git-repo-check -m <MODEL> -c model_reasoning_effort="<EFFORT>" \
           -s <read-only|workspace-write> -C <PROJECT> -o <tmpfile> --color never

с промптом, поступающим через stdin. Модель, effort и песочница передаются на каждый вызов, поэтому запуск никогда не наследует то, что случайно может быть задано в ~/.codex/config.toml.

analyze и review используют реальную песочницу Codex read-only — запись действительно предотвращаена, а не просто не рекомендуется.

antigravity_run

Та же схема, с учётом:

Поле

Поле

Вид

model

Gemini Flash 3.7

обязательно

effort

light / medium / high

опционально, по умолчанию medium

Логические имена резолвятся в момент выполнения по живому списку agy models:

Метка

Effort

Что резолвится (на этой машине)

Gemini Flash 3.7

light

gemini-3.7-flash-low

Gemini Flash 3.7

medium

gemini-3.7-flash-medium

Gemini Flash 3.7

high

gemini-3.7-flash-high

Antigravity кодирует уровень рассуждений в id модели, поэтому model + effort превращаются в один id, и отдельный флаг --effort не отправляется — они не могут разойтись. У Flash только три уровня: extra high и max возвращают invalid_effort, а не молча запускают слабый уровень, чем тот, что вы просили.

Antigravity намеренно ограничен дешёвым уровнем Gemini. Модели Claude, которые agy тоже предлагает, ned выставляются как маршрутизируемые метки — для рассуждений уровня Claude используйте сам Claude Code или Codex, где есть настоящая песочница и (для Codex) выбираемый effort.


Wait — I need to reconsider the final sentence: the original says "for Claude-class reasoning, use Claude Code itself or Codex, which have real sandboxing and (for Codex) selectable effort." My translation says "для рассуждений уровня Claude...". Good.

Also I mistakenly wrote "`" before "выставляются". Need to correct final: "не выставляются".

Let me ensure the final text is correct. I'll rewrite the whole segment properly in the final answer below.

Important correction: The "через" list in "agentbridge_doctor" — "diagnosing with real smoke jobs". I translated "выполнением реальных пробных задач". Good.

Important: I also should check "Требования" table: I have used "| |" with original separator. It's fine.

Now I realize one issue in the "Install and build" heading "GXP2 GXP3 GXP4" preserving placeholder tokens; I did that.

Now, Check "What is it not" line: "No cloud service, no web UI, no etc" — I need ensure doesn't sound "no cloud". Fine.

Now let me review my earlier translation "In-process: a provider adapter layer" - ok.

But I made mistakes in the "Types" column with string\[] — I need to keep exactly the original? In original it is "string[]". I wrote string\[] without last bracket? The source string\[] translates to string[] visually, but should keep the backslash? In the source text, the code span appears as "string[]". The bracket after backslash must remain. In my earlier drafts, in some places I wrote "string[]" fine. Let me verify the table:

| goal | string \| ... no, Type column is "string".

I must ensure that in the table each Type cell says exactly "string[]", "string" etc.

Alright, let me also check the "able paths" something.

Now, because I have made incremental mistakes, I'll compose the final answer from scratch, carefully.

Let me re-derive the final entire text with correctness.


Final translation:

AgentBridge

Статус: идёт миграция, и этот README описывает старую форму.

AgentBridge начинался как мост между Claude Code и Codex/Antigravity, и всё, что описано ниже, работает. Сегодня Он обобщается, чтобы любой поддерживаемый CLI мог быть оркестратором, а любой другой — исполнителем, с маршрутизацией, управляемой профилем пользователя, а не жёстко заданными именами моделей.

Куда это идёт, читайте docs/architecture.md и docs/roles.md. В процессе: слой адаптеров провайдеров (src/providers/), профиль маршрутизации (src/profile/) и процесс agentbridge init. Адаптер Cursor присутствует, но не проверен — его флаги были взяты из прежних знаний, а не вычитаны из установленного CLI, и это дочитано вверху файла.

Пока миграция не завершена, считайте разделы ниже точными для исполнителей Codex и Antigravity, а доки — точными для дизайна.

Оркестраторы

AgentBridge отдаёт свою поверхность команд /agentbridge … как MCP-промпты, поэтому любой MCP-клиент, поддерживающий prompts/list, получает те же команды от самого сервера — не нужно, как поддерживать файлы команд для каждого хоста.

Хост

Установка

Команды

Codex CLI

docs/install-codex.md

через MCP-промпты, плюс hosts/codex/AGENTS.md

Claude Code

зарегистрируйте MCP-сервер, затем скопируйте hosts/claude-code/skills/agentbridge в ~/.claude/skills/

через MCP-промпты

| Команда | Действие | | agentlayer <goal> | оценить работу, спланировать, делегироватьэкать, проверить, отчитаться | | agent_last_setup | определить CLI, доказать работоспособность каждого, записать маршрутный профиль | | ... |

Wait, I have repeating errors: agent_last_setup? No, it's agentbridge_setup. Let me be very careful.

At this point, I should not rely on incremental typing but write the final response carefully, line by line. I will now do that.

Let me create a clean full translation in the final answer.# AgentBridge

Статус: идёт миграция, и этот README описывает старую форму.

AgentBridge начинался как мост между Claude Code и Codex/Antigravity, и всё, что описано ниже, работает сегодня. Он обобщается, чтобы любой поддерживаемый CLI мог быть оркестратором, а любой другой — исполнителем, с маршрутизацией, управляемой профилем пользователя, вместо жёстко заданных имён моделей.

А что дальше — читайте в docs/architecture.md и docs/roles.md. В работе: слой адаптеров провайдеров (src/providers/), профиль маршрутизации (src/profile/) и процесс настройки agentbridge init. Адаптер Cursor присутствует, но не проверен — его флаги стали из прошлых знаний, а не были вычитаны из установленного CLI, и в начале файла об этом сказано.

Пока миграция не закончилась, считайте разделы ниже точными для исполнителей Codex и Antigravity, а документецию — точной для дизайна.

Оркестраторы

AgentBridge подаёт свою поверхность команд /agentbridge … как MCP-промпты, поэтому любой MCP-клиент, поддерживающий prompts/list, получает те же команды от самого сервера — без необходимости ставить или синхронизировать файлы команд для каждого хоста.

Хост

Установка

Команды

Codex CLI

docs/install-codex.md

через MCP-промпты, плюс hosts/codex/AGENTS.md

Claude Code

зарегистрируйте MCP-сервер, затем опционально скопируйте hosts/claude-code/skills/agentbridge в ~/.claude/skills/

через MCP-промпты

Команда

Что делает

agentbridge <goal>

определить объём, спланировать, делегировать, проверить, отчитаться

agentbridge_setup

найти CLI, убедиться, что каждый работает, записать маршрутный профиль

agentbridge_status

что установлено и как сопоставляются роли; никакой инференции

agentbridge_doctor

диагностика реальными пробными задачами и того, что исправить

agentbridge_profile

показать или пересчитать маршрутизацию, опционально в одной роли

agentbridge_recon

одно ограниченное исследование репозитория

agentbridge_review

независимое рецензирование от другого семейства моделей

agentbridge_resume

продолжить прерванный запуск

Доктрина, стоящая за этими командами, живёт в каталоге doctrine/ и не называет названия моделей — она маршрутизирует по ролям, а .agentbridge/profile.json сопоставляет роли с тем, что реально установлено у пользователя.

Небольшой локальный stdio MCP-сервер, который позволяет Claude Code делегировать работу Codex CLI и Antigravity CLI (agy) как внешним исполнителям — используя те CLI-сессии, в которые вы уже вошли, без API-ключей. Claude остаётся оркестратором. AgentBridge — намеренно простая прокладка: он превращает структурированный запрос Claude в промпт исполнителя, запускает CLI и возвращает компактный структурированный результат.

User
 └─> Claude Code                      (orchestrator — decides what to delegate)
      └─> AgentBridge MCP tool        (codex_run / antigravity_run)
           └─> codex exec  |  agy --print
                └─> result
           <─ structured MCP result
      <─ Claude inspects the work and continues

Что это не такое

Никакое облачное решение, веб-интерфейс, база данных, демон, дашборд, очередь задач, система аккаунтов или управление API-ключами. Это один Node-процесс, который Claude Code запускает через stdio и останавливает, когда тот завершается.


Как это работает

  1. Claude вызывает codex_run или antigravity_run со структурированным запросом (goal, mode, model, effort, paths, context, acceptance criteria…).

  2. AgentBridge собирают промпт исполнителя ровно из этих полей. Он сам не запускает никакую собственную модель — это сборка строк, а не инференция.

  3. Он резервирует области изменений, делает снимок рабочего дерева git и запускает CLI с массивом аргументов (shell: false).

  4. Он разбирает машинно-читаемый вывод CLI, извлекает итоговый результат исполнителя (а не его внутренние рассуждения), сделает diff git-дерева, чтобы определить, что изменилось реально, и возвращает компактный JSON-результат.

Один вызов MCP — одна попытка исполнителя. Agentbridge никогда не повторяет сам. Решение о том, стоит ли ещё одна попытка, принимает Claude.


Требования

Node.js

≥ 20.10 (собран и проверен на 24.14)

Codex CLI standard

codex login — проверено на codex-cli 0.147.0

Codex CLI

agy на PATH, уже вошёл в систему — проверено на agy 1.1.12

Antigravity CLI

agy на PATH, уже вошёл — проверено на agy 1.1.12

git

опционально, но настоятельно рекомендуется; без него нельзя вычислить files_changed / scope_violations

AgentBridge никогда не читает, не копирует, не экспортирует и не изменяет ваши учётные данные Codex или Antigravity. Он вызывает CLI ровно как это сделал бы вошедший в систему человек.


Установка и сборка

npm install
npm run build
npm test

Тестовый набор использует имитационные процессы, поэтому обычный npm test не расходует никакой квоты модели.


Регистрация в Claude Code

Зарегистрируйте один раз на уровне пользователя, чтобы любой проект мог использовать его:

claude mcp add --transport stdio --scope user agentbridge -- node D:\Code\Agentbridge\dist\index.js

Проверьте из терминала:

claude mcp list
claude mcp get agentbridge

Затем проверьте внутри Claude Code, выполнив /mcp. Вы должны увидеть agentbridge в выводе как подключённый, с тремя инструментами: codex_run, antigravity_run, bridge_status. Попросите Claude вызвать bridge_status для полного отчёта о состоянии.

Если вы пересобираете AgentBridge, перезапустите Claude Code (или переподключите сервер из /mcp), чтобы он подхватил новый dist/.


Каталог проекта

Исполнители работают в одном каталоге проекта и ограничены им, каталог выбирается в таком порядке:

  1. AGENTBRIDGE_PROJECT_DIR, затем унаследованный CLAUDE_PROJECT_DIR (который экспортирует Claude Code).

  2. Первый корень file://, который заявляет MCP-клиент.

  3. Рабочая каталог процесса сервера.

bridge_status сообщает, какой из них был выбран.


Инструменты

codex_run

Поле

Тип

Примечание

goal

string

обязательно

mode

analyze | implement | review

обязательно

model

gpt-5.6-sol | gpt-5.6-terra | gpt-5.6-luna

обязательно

effort

light | medium | high | extra high | max

обязательно

relevant_files

string[]

какие смотреть в первую очередь

allowed_paths

string[]

обязательно в режиме implement

no_touch

string[]

как нельзя менять

context

string

контекст, которого нет в репозитории

contract

string

интерфейсы/типы, которым нужено точно следовать

acceptance_criteria

string[]

критерии приёмки

tests

string[]

контекст для исполнителя — Agentbridge никогда не запускает их сам

timeout_seconds

number

по умолчанию 900, ограничен 30–3600

Модели. Доступны три слага, каждое передаётся в CLI без изменений:

model

Что это

gpt-5.6-sol

самая сильная универсальная инженерная модель

gpt-5.6-terra

глубокий специалист по существующим кодовым базам

gpt-5.6-luna

экономичная рабочая лошадка для больших объёмов

Сопоставление effort (метка оркестратора → Codex model_reasoning_effort):

light

medium

high

extra high

max

low

medium

high

xhigh

max

Сопоставление полное и детерминистическое. extra в Codex намеренно не выставляетсяе: уровень можно только у некоторых моделей, и шестая метка, работающая для двух из трёх моделей, сдедалает маршрутизацию зависящей от модели.

Доступность. Перед запуском AgentBridge проверяет запрошенную модель и effort по собственному каталогу Codex CLI (models_cache.json из CODEX_HOME) — это просто чтение файла, не инференция.

  • модель есть, effort есть → задача выполняется;

  • модель есть, effort нет → invalid_effort с details.supported_efforts;

  • модели нет → requested_model_unavailable with details.available_models;

  • каталога нет → задача всё равно выполняется с предупреждением, что доступность unverified.

Ничто никогда не заменяется на что-то другое. Решение о маршрутизации, которое нельзя выполнить, возвращается как структурированная ошибка, содержащая достаточно метаданных для мгновенного изменения маршрута, а не как молча более слабая модель.

Создаваемый вызов look:

codex exec --json --skip-git-repo-check -m <MODEL> -c model_reasoning_effort="<EFFORT>" \
           -s <read-only|workspace-write> -C <PROJECT> -o <tmpfile> --color never

а промпт подаётся через stdin. Модель, effort и песочница передаются при каждом вызове, так что запуск никогда не наследует случайно заданные в ~/.codex/config.toml значения.

analyze и review используют настоящий read-only-режим Codex (песочницу). Записи действительно предотвращаются, а не просто не одобряются.

antigravity_run

Та же схема, с изменениями:

Поле

Тип

Примечание

model

Gemini Flash 3.7

обязательно

effort

light / medium / high

опционально, по умолчанию medium.

Логические имена резолвятся во время выполнения из живого списка agy models:

Подпись

Уровень

Разрешение (на этой машине)

Gemini Flash 3.7

light

gemini-3.7-flash-low

Gemini Flash 3.7

medium

gemini-3.7-flash-medium

Gemini Flash 3.7

high

gemini-3.7-flash-high

Antigravity кодирует tier рассуждения в id модели, поэтому model + effort дают единый id и отдельный флаг --effort не оправляем — та бата могут никогда не расходиться. Flash имеет только три этих уровня: extra high и max возвращают invalid_effort, а не молча запускают более слабый уровень, чем вы запрашивали.

Antigravity намеренно ограничен дешёвым уровнем Gemini. Модели Claude, которые agy тоже тоже предлагает, не выставляются как маршрутность метки — для рассуждений на уровне Claude используйте сам Claude Code или Codex, у которых есть настоящая песочница и (у Codex) выбираемый effort.

Хорошо, я закончил перевод. Но давайте проверим возможные искажения и ошибки в последней части, а также в таблицах. Есть несколько мест:

  • В таблице "Поле и Тип" у меня string[] с экранированием? В финальном ответе я написал string[]. Не очень хорошо, but fine.

  • "**обязательно**" с тире? Я написал "обязательно". Good.

  • "модель с requested_model_unavailable with details.available_models" — использовал "with" по случайности. Нужно "с".

  • "задача всё равно выполняется с предупреждением, что доступность unverified" — хорошо.

  • "а промпт подаётся" — верно.

Также в ранней части — "Claude Code" "orchestrators". Всё нормально.

Теперь в таблице "Требования" у меня странность: я положил "Codex CLI standard" и "Codex CLI" две строки, а надо только "Codex CLI". Видимо не появ и во время письма по ошибке увлекли. Нужно исправить таблицу Требования правильно: строки должны:

  • "Node.js"

  • "Codex CLI"

  • "Antigravity CLI"

  • "git"

Также "Только корень file://" — перефразирую.

Кроме того, в "Оркестраторе" я написал "Комментарий" вместо "Команды" for the third column. Должно быть "Команды". Также, "Куда идёт" - ок.

Также "MCP-промпты" — норм.

"the later that works by hand" – нет.

Нужно аккуратно собрать финальный ответ без повторных ошибок. Я переберу его целиком, внимание на консистетность.

Окончательный ответ ниже, я аккуратно напишу заново в чистовом вариан# AgentBridge

Статус: идёт миграция, и этот README описывает старую форму.

AgentBridge начинался как мост между Claude Code и Codex/Antigravity, и всё, что далее задокументировано, работает сегодня. Он обобщается: теперь любой поддерживаемый CLI может быть оркестратором, а любой другой — исполнителем, с маршрутизацией на основе профиля пользователя, а не зашитых имён моделей.

О том, куда развивается, читайте docs/architecture.md и docs/roles.md. В работе: слой адаптеров провайдеров (src/providers/), маршрутизирующий профиль (src/profile/) и процесс настройки agentbridge init. Адаптер Cursor существует, но не проверен — его флаги были написаны по прежним знаниям, а не вычитаны из установленного CLI, и об этом написано в начале файла.

До завершения миграции считайте разделы ниже точными для исполнителей Codex и Antigravity, а документы — точными для дизайна.


Оркестраторы

AgentBridge предоставляет поверхность своих команд /agentbridge … как MCP-промпты, поэтому любой MCP-клиент, который поддерживает prompts/list, получает эти же команды прямо из самого сервера — не нужно ставить или синхронизировать файлы команд для хостов.

Хост

Установка

Команды

Codex CLI

docs/install-codex.md

через MCP-промпты, плюс hosts/codex/AGENTS.md

Claude Code

зарегистрируйте MCP-сервер, затем по желанию скопируйте hosts/claude-code/skills/agentbridge в ~/.claude/skills/

через MCP-промпты

Команда

Что делает

agentbridge <goal>

оценить объём, спланировать, делегировать, проверить, отчитаться

agentbridge_setup

обнаружить CLI, доказать, что каждый работает, записать профиль маршрутизации

agentbridge_status

что установлено и как сопоставляются роли; без выводов

agentbridge_doctor

диагностика реальными пробными заданиями и указание, что исправить

agentbridge_profile

показать или перестроить маршрутизацию, возможно, для одной роли

agentbridge_recon

одно ограниченное исследование репозитория

agentbridge_review

независимое рецензирование от другого семейства моделей

agentbridge_resume

продолжить прерванный запуск

Принципы, стоящие за этими командами, живут в каталоге doctrine/ и не называют модели — они маршрутизируют по ролям, а .agentbridge/profile.json сопоставляет роли с тем, что реально установлено у пользователя.

Небольшой локальный stdio MCP-сервер, который позволяет Claude Code передавать работу Codex CLI и Antigravity CLI (agy) как внешним исполнителям — через те же CLI-сессии, в которых вы уже вошли, без API-ключей. Claude остаётся оркестратором. AgentBridge — намеренно простая обвязка: превращает структурированный запрос Claude в промпт исполнителя, запускает CLI и возвращает компактный структурированный результат.

User
 └─> Claude Code                      (orchestrator — decides what to delegate)
      └─> AgentBridge MCP tool        (codex_run / antigravity_run)
           └─> codex exec  |  agy --print
                └─> result
           <─ structured MCP result
      <─ Claude inspects the work and continues

Что это не такое

AgentBridge — не облачный сервис, не веб-интерфейс, не база данных, не демон, не дашборд, не очередь заданий, не система учётных записей и не управление API-ключами. Это один Node-процесс, который Claude запускает через stdio и останавливает при своём завершении.


Как это работает

  1. Claude вызывает codex_run or antigravity_run со структурированным запросом (goal, mode, model, effort, paths, contract, acceptance criteria…).

  2. AgentBridge собирает промпт исполнителя ровно из этих полей. Он сам никакую модель не запускает — это строка, а не инференция.

  3. Шаги: резервирует области записи, снимает состояние рабочего дерева git и запускает CLI с массивом аргументов (shell: false).

  4. Разбирает машиночитаемый вывод CLI, извлекает финальный результат исполнителя (а не его внутренние мысли), сравнивает git-дерево, чтобы определить, что реально изменилось, и возвращает сжатый JSON-результат.

Один вызов MCP — это ровно одна попытка исполнителя. AgentBridge never не повторяет собственных попыток. Является ли попытка снова осмысленной — решает Claude.


Требования

Node.js

≥ 20.10 (проверено на) работает на 24.14

Codex CLI

в PATH, уже выполнен вход (codex login) — проверено с codex-cli 0.147.0

Antigravity CLI

agy в PATH, уже выполнен вход — проверено с agy 1.1.12

git

необязательно, но настоятельно рекомендуется: без него никак не вычислить files_changed / scope_violations

AgentBridge никогда читает, не открывает, не копирует, не экспортирует и не модифицирует ваши учётные данные Codex или Antigravity. CLI он вызывает ровно так, как это сделали бы в сессии вошедшего человека.


Установка и сборка

npm install
npm run build
npm test

Тестовый набор основан на имитация процессов, поэтому обычный npm test не использует анную вам квоту.


Регистрация в Claude Code

Зарегистрируйте один раз на уровне пользователя, чтобы каждый проект мог via его использовать:

claude mcp add --transport stdio --scope user agentbridge -- node D:\Code\Agentbridge\dist\index.js

Проверьте из терминала:

claude mcp list
claude mcp get agentbridge

Затем проверьте изнутри Claude командой /mcp. Вы должны увидеть agentbridge как подключённый сервер с тремя инструментами: codex_run, antigravity_run, bridge_status. Попросите Claude кликнуть на bridge_status, чтобы получить полный диагностический отчёт.

Если вы пересобираете AgentBridge, перезапустите Claude Code (или переподключите сервер /mcp), чтобы он подхватил новый dist/.


Каталог проекта

Для свершений используется один кадр-каталог проекта, который определяется в порядке:

  1. AGENTBRIDGE_PROJECT_DIR, затем унаследованный CLAUDE_PROJECT_DIR, который предоставляет Claude Code.

  2. Первый корень file://, предоставляемый MCP-клиентом.

  3. Рабочий каталог процесса сервера.

bridge_status показывает, какой из них выбран.


Инструменты

codex_run

Поле

Тип

Примечание

goal

string

** обязательно**

mode

analyze|implement|review

** обязательность**

model

gpt-5.6-sol | gpt-5.6-terra | gpt-5.6-luna

** обязательно**

effort

light|medium|high|extra high|max

** обязательно**

relevant_files

string[]

файлы, на которые смотрят в первую очередь

allowed_paths

string[]

** обязательно в режиме implement**

no_touch

string[]

пути, которые исполнитель не вправе изменять

context

string

контекст, которого нет в репозитории

contract

string

интерфейсы/типы, которым нужно соответствовать точ

acceptance_criteria

string[]

критерии приёмки

tests

string[]

фон для исполнителя; сам AgentBridge их не выполняет

timeout_seconds

number

default 900, range 30–3600

Модели. Доступны три слага, каждое передаётся в CLI без изменения:

model

описание

gpt-5.6-sol

cамый сильная универсальная инженерная модель

gpt-5.6-terra

глубокий браунфилд / старая кодовя база

gpt-5.6-luna

экономичная рабочая лошадка для больших объёмов

Сопоставление effort (метка оркестратора → Codex model_reasoning_effort):

light

medium

high

extra high

max

low

medium

high

xhigh

max

Сопоставление полное и детерминированное. ultra у Codex намеренно не раскрыто: только часть моделей его дают, а шестая метка, работающая для пары из трёх моделей, сделала бы маршрутизацию зависящей от модели.

Доступность. Перед запуском AgentBridge измеряет запрошенную модель и effort с каталогом моделей CLI (models_cache.json в CODEX_HOME) — чтение файла, инференции нет.

  • модель есть и effort есть → задача выполняется

  • модель есть, effort нет → invalid_effort, с details.supported_efforts

  • модели нет → requested_model_unavailable, с details.available_models

  • каталог недоступен → задача всё равно выполняется, с предупреждением, что доступность unverified

Ничего не подставляется вместо чего-то другого. Решение о маршруте, которое невозможно исполнить, возвращается как структурированная ошибка; в ней достаточно метаданных для повторного маршрута за один шаг, а не как тихо более слабая модель.

Собственно вызов:

codex exec --json --skip-git-repo-check -m <MODEL> -c model_reasoning_effort="<EFFORT>" \
           -s <read-only|workspace-write> -C <PROJECT> -o <tmpfile> --color never

промпт передаётся через stdin. Во всяком вызове задаются model, effort и sandbox, чтобы запуск не наследовал того, что окажется в ~/.codex/config.toml.

analyze и review используют настоящую песочницу Codex read-only — записи действительно предотвращены, а не промстим.

antigravity_run

Схема та же, но:

| Поле | Тип || Поле | | | -- | --------------------------------- | | model | Gemini Flash 3.7 | обязательно | | effort | light/medium/high | optional, defaults to medium |

Логические имена раскрываются на момент выполнения по актуальному списку agy models:

Наименование

effort

Разрешение (на этой машине)

Gemini Flash 3.7

light

gemini-3.7-flash-low

Gemini Flash 3.7

medium

gemini-3.7-flash-medium

Gemini Flash 3.7

high

gemini-3.7-flash-high

Antigravity кодирует уровень reasoning в id модели, поэтому model-button

  • effort сводятся к одному ID, отдельный флаг --effort не отправляется — за два параметра не могут никогда разойтись. Flash имеет имеет только эти три уровня: extra high и max дают invalid_effort, а не молча выполняют более слабый уровень, чем вы просили.

Antigravity специально используют дешёвый Gemini уровень. Модели Claude, которые agy тоже имеет, не открыты как маршрутируемые метки — для рассуждений высокого класса Claude используйте сам Claude Code или Codex; у них настоящая песочница и (Codex) выбираемый effort.

Однако я вижу, что в этом ответе всё ещё есть англицизмы и неудачные места, типа "полностью ", "grid". Давайте я улучшу финальный текст в более чистом русском, но без изменения структуры и сохраняя код.

Я буду использовать заметки ниже в отставке, и подам последний cleaned-up вариант.# AgentBridge

Статус: идёт миграция, и это README описывает старый облик.

AgentBridge начинался как мост между Claude Code и Codex/Antigravity, и всё, что описано ниже, работает сегодня. Он обобщается: теперь любой поддерживаемый CLI может быть оркестратором, а любой другой — исполнителем, с маршрутизацией, которой управляет профиль пользователя, а не жёстко заданные имена моделей.

Описание планов — в docs/architecture.md и docs/roles.md. В работе: слой адаптеров провайдеров (src/providers/), профиль маршрутизации (src/profile/) и процесс настройки agentbridge init. Адаптер Cursor присутствует, но не проверен — его флаги писаны из предварительных знаний, а не вычитаны из установленного CLI, о чём сказано в начале файла.

Пока миграция не закончена, считайте разделы ниже точными для работников Codex и Antigravity, а документацию — точным описанием целевой архитектуры.

Оркестраторы

AgentBridge предоставляет свою поверхность команд /agentbridge … как MCP-промпты, поэтому любой MCP-клиент, который поддерживает prompts/list, получает те же команды прямо от самого сервера — не нужно устанавливать и держать синхронизированными командные файлы для каждого клиента.

Хост

Установка

Команды

Codex CLI

docs/install-codex.md

через MCP-промпты, плюс hosts/codex/AGENTS.md

Claude Code

зарегистрируйте MCP-сервер, затем скопируйте hosts/claude-code/skills/agentbridge в ~/.claude/skills/

через MCP-промпты

Команда

Что делает

agentbridge <goal>

оценить объём, спланировать, делегировать, проверить, отчитаться

agentbridge_setup

обнаружить CLI, доказать, что каждый работает, записать профиль маршрутизации

agentbridge_status

что установлено и как роли маппя; без инференции

agentbridge_doctor

диагностика реальными проверочными задачами и указание, что починить

agentbridge_profile

показать или пересобрать маршрутизацию, опционально — для одной роли

agentbridge_recon

одно ограниченное исследование репозитория

agentbridge_review

независимое рецензирование другой моделью/семейством

agentbridge_resume

продолжить прерванный запуск

Доктрина, лежащая в основе этих команд, живёт в doctrine/ и не называет модели, а маршрутизирует по ролям; .agentbridge/profile.json маппит роли на то, что реально стоит у мая у пользователя.

Небольшой локальный stdio MCP-сервер, который даёт решение Claude Code передавать работу Codex CLI и Antigravity CLI (agy) как внешним исполнителям — используя те CLI-сессии, в которые вы уже залогинены, без API-ключей. Claude остаётся оркестратором. AgentBridge намеренно просто «трубы»: превращает структурированный запрос Claude в промпт исполнителя, запускает CLI и возвращает компактный струк

Метка содержит упорядоченный список идентификаторов-кандидатов для одной и той же модели. Если установленный CLI не предлагает ни одного из них, вызов завершается ошибкой requested_model_unavailable и полным списком доступных моделей. Он никогда молча не переключается на другую модель. Разрешённый идентификатор эхом возвращается в warnings при каждом запуске.

Собранный вызов выглядит так:

agy --print <PROMPT> --model <RESOLVED_ID> --output-format json \
    --mode <plan|accept-edits> --add-dir <PROJECT> \
    --dangerously-skip-permissions --print-timeout <N>s

Флаг --disable-slash-commands добавляется только для режимов implement: CLI игнорирует --mode plan, когда расширение slash-command выключено, поэтому передача обоих флагов молча отбросит единственный режим без записи, который предлагает Antigravity.

bridge_status

Аргументов не принимает. Ни одного вызова инференса модели не выполняет — только пробы --version, agy models, один git rev-parse и чтение кэша моделей CLI Codex.

Возвращает:

  • Версию AgentBridge, каталог проекта (и как он был определён), node/платформу

  • git_verification — будет ли вообще работать здесь построенное на git files_changed / scope_violations. Если не будет, пустые scope_violations — это молчание, а не чистая справка о здоровье, и предупреждения явно об этом сообщают

  • codex.installed / version / path / auth

  • codex.model_status — для каждой модели: available | unavailable | unverified, метки effort, которые принимает AgentBridge, и истинные уровни рассуждений CLI

  • codex.model_source — источник данных о доступности и то, насколько он свеж

  • antigravity.installed / version / path / auth, обнаруженные модели, то, как разрешилась каждая логическая метка и ярус, и model_status в той же самой трёхсостоятельной форме

  • antigravity.unsupported_efforts — метки оркестратора, которые Flash не может принять

  • активные задания и их области записи

  • предупреждения warnings

Доступность никогда не угадывается. Если установленный CLI не предоставляет дешёвого подтверждения, статус — unverified, а не утверждение в ту или иную сторону.

Он никогда не возвращает учётные данные или переменные окружения.


Формат результата

{
  "status": "success",
  "provider": "codex",
  "model": "gpt-5.6-luna",
  "effort": "high",
  "mode": "implement",
  "duration_ms": 12345,
  "exit_code": 0,
  "summary": "...",
  "files_changed": ["src/upload.ts"],
  "scope_violations": [],
  "tests_or_checks_run": ["npm test -- upload"],
  "test_results": "12 passed",
  "concerns_or_blockers": [],
  "stderr_tail": "",
  "warnings": []
}

effort присутствует у обоих провайдеров — это уровень рассуждений Codex или ярус Flash, закодированный в идентификаторе модели. files_changed и scope_violations вычисляются AgentBridge на основе git, а не со слов воркера. Внутренние рассуждения отбрасываются. summary ограничен 16 000 символов — сохраняются начало и конец, а при усечении выставляется summary_truncated: true.

Ошибки

Сбои возвращают ту же форму конверта: status: "failed", категорию ошибки в error, полезный message и, где доступно, exit_code, stderr_tail и объект details.

Категория

Значение

executable_not_found

codex / agy отсутствуют в PATH

authentication_required

CLI сообщил о проблеме входа — войдите снова самостоятельно

requested_model_unavailable

запрошенная модель не предлагается; подмены не было

invalid_effort

метка effort вне пяти поддерживаемых значений

invalid_arguments

например, режим implement без allowed_paths

scope_conflict

другой активный воркер уже занимает пересекающиеся пути записи

scope_violation

переданный путь вышел за корень проекта, или воркер записал вне своей области

timeout

воркер превысил отведённое время; его дерево процессов было завершено

process_failed

ненулевой код выхода или конверт CLI не SUCCESS

output_parse_failed

не далось разобрать машиночитаемый вывод CLI


Примеры вызова воркеров Клодом

Дешёвый быстрый анализ:

{ "tool": "codex_run",
  "goal": "Explain how session refresh works and where it can race.",
  "mode": "analyze", "model": "gpt-5.6-luna", "effort": "light",
  "relevant_files": ["src/auth/session.ts"] }

Сложная реализация, максимум рассуждений, строго ограниченная область:

{ "tool": "codex_run",
  "goal": "Make the uploader retry 502s with exponential backoff.",
  "mode": "implement", "model": "gpt-5.6-sol", "effort": "max",
  "allowed_paths": ["src/upload.ts", "tests/upload.test.ts"],
  "no_touch": ["src/auth"],
  "contract": "export function upload(f: File): Promise<Result>",
  "acceptance_criteria": ["Retries up to 3 times", "Existing callers unchanged"],
  "tests": ["npm test -- upload"] }

Два воркера Codex на непересекающихся областях — они выполняются параллельно:

{ "tool": "codex_run", "mode": "implement", "model": "gpt-5.6-sol",
  "effort": "high", "allowed_paths": ["src/api"], "goal": "..." }
{ "tool": "codex_run", "mode": "implement", "model": "gpt-5.6-luna",
  "effort": "medium", "allowed_paths": ["src/ui"], "goal": "..." }

Antigravity для дешёвой механической работы:

{ "tool": "antigravity_run", "goal": "Summarise every exported symbol in src/lib.",
  "mode": "analyze", "model": "Gemini Flash 3.7", "effort": "light" }

{ "tool": "antigravity_run", "goal": "Build the settings page from design.png.",
  "mode": "implement", "model": "Gemini Flash 3.7", "effort": "high",
  "allowed_paths": ["src/pages/settings"] }

Параллельность и область файлов

  • implement требует allowed_paths. Пути нормализуются относительно корня проекта; всё выходящее за него (.., другие диски, абсолютные пути вне проекта) отвергается ещё до запуска процесса.

  • Активные задания implement держат свои области записи в памяти. Новое задание, области которого пересекаются с активным, получает отказ scope_conflict. Непересекающиеся области выполняются параллельно — несвязанная работа никогда не сериализуется.

  • analyze и review ничего не резервируют: они никогда не блокируют и их никогда не блокируют.

Ограничение V1: обнаружение, а не изоляция

Защита области файлов обнаруживает и сообщает нарушения, но не изолирует каждого воркера в его собственном дереве. Воркер implement у Codex запускается с правами workspace-write по всему проекту, поэтому он может писать вне своих allowed_paths — AgentBridge перечислит все такие файлы в scope_violations, понизит статус с success и прямо скажет вам об этом.

Никогда ничего автоматически не откатывается. Откат файла, который уже был изменён до запуска воркера, уничтожил бы вашу (или Клода) существующую работу. Обнаружение и честный отчёт — это контракт V1; изоляция перенесённых рабочих деревьев (git-worktree) осознанно вне объёма.

Атрибуция аккуратно относится к существующему состоянию: файлы, которые уже были грязными до запуска и после него побайтово идентичны, никогда не приписываются воркеру. Сравнение использует porcelain-статус и хэширование содержимого, а зафиксированные файлы выявляются через diff при перемещении HEAD.


Безопасность

  • Процессы запускаются массивами аргументов и shell: false — никогда не интерполированной строкой команды. Метасимволы оболочки в аргументах остаются литеральными.

  • Лаунчереры Windows .cmd/.ps1 (которые Node отказывается запускать без оболочки) разрешаются в реальный входной скрипт Node и запускаются как node <script> — так что shell: true никогда не требуется.

  • Промпты передаются в Codex через stdin; промпты Antigravity чрезмернейшей величины записываются в расширенный файл и указываются путём. Ни то, ни другое не столкнётся с лимитом длины командной строки Windows в 32 767 символов.

  • tests — это контекст для воркера. AgentBridge никогда его не выполняет, и ни один аргумент MCP не становится командом, которую выполняет AgentBridge.

  • Обartt за пределы корня проекта отклоняется.

  • При тайм-ауте убивается полное дерево процессов: taskkill /T /F на Windows, а на POSIX — SIGTERM в группу процессов с повышением до SIGKILL по истечении трёхсекундного льга_range. Эскалация намеренно переживает собственный выход потом — как раз когда его возможей. процесса может работать. Это best-effort: Node не предоставляет Windows Job Object, так что если сам taskkill не запустится, можно достигнуть только прямого потомка.

  • Буферы вывода ограничены (8 МБ на поток), и UTF-8 декодируется только после пересборки, чтобы многобайтовые символы никогда не делились.

  • Журналlog содержит только метаданные заданий. Никогда токены, никогда окружение, а промпты и вывод — только при AGENTBRIDGE_DEBUG=1.

  • От чего AgentBridge вас не защищает: воркер — это настоящий coding agent, работающий с вашими правами. В режиме implement он может выполнять команды репозитория через свой инструментарий. Настройте allowed_paths с этим психикой.


Верификация

AgentBridge сам после выхода воркера, уже вне песочницы, запускает собственные проверки проекта и возвращает их реальный вывод в verification:

"verification": [
  { "command": "npm run typecheck", "ok": true,  "exit_code": 0, "timed_out": false, "duration_ms": 4120, "output_tail": "..." },
  { "command": "npm run test",      "ok": false, "exit_code": 1, "timed_out": false, "duration_ms": 8830, "output_tail": "..." }
]
  • verify_commands — выполнить именно эти, в любом режиме.

  • Если режим implement, параметр опускается: AgentBridge читает package.json и выполняет скрипты typecheck и test, если запускает тему. Он никогда сам по своей инициативе не запускает build, dev или start; просите их явно.

  • skip_verification: true — ничего не выполнять и полагаться на словесное подтверждение воркера.

Команды выполняются без оболочки, поэтому |, &&, ;, > и обратные кавычки вне кавычек отвергаются, а не исполняются частично. Провал проверки ставит error: "verification_failed" и пониает success до partial — так что воркер, утверждающий, что тесты зелёные, не может переусмотреть сами тесты.

tests_or_checks_run и test_results описывают то, что AgentBridge реально запускал, когда верификация происходила; они только при её отсутствии и возвращаются к самостоятельным утверждениям воркера.

Поскольку команды исходят из репозитория, запись с неправильным запускателем не может заставить AgentBridge его выполнить: репозиторий, где тестовый скрипт — node --import tsx --test, проверяется этими командами, независимо от содержания записки.


Переменные окружения

Variable

Purpose

AGENTBRIDGE_PROJECT_DIR

каталог проекта; независим от хоста, предпочтителен

CLAUDE_PROJECT_DIR

устаревшее имя; по-прежнему работает, задаёт Claude Code

AGENTBRIDGE_DEBUG=1

писать хорошо обезличенные промпты и вывод

AGENTBRIDGE_LOG_DIR

расположение журнала (по умолчанию ~/.agentbridge/logs)

AGENTBRIDGE_CODEX_BIN

явный путь к CLI Codex

AGENTBRIDGE_AGY_BIN

явный путь к CLI agy

AGENTBRIDGE_CODEX_SANDBOX

зафиксировать политику изоляции Codex: read-only, workspace-write, danger-full-access или auto (по умолчанию)

AGENTBRIDGE_CODEX_WINDOWS_SANDBOX

бекенд песочницы Windows (по умолчанию unelevated)

AGENTBRIDGE_CODEX_SANDBOX=auto использует read-only для analyze/review и workspace-write для implement — с одним исключением: на Windows изолированный воркер Codex не может захватить вывод вобособ ( spawn EPERM при передачах piped stdio), а именно это делают скрипты npm, тестовые раннеры и бандлеры — поэтому он может читать и редактировать, но не может запустить тестовый раннер, проверщик типов или сборку. Это ограничение Codex без предоступительной настройки, поэтому jobs на implement считаются с danger-full-access uponce однократный зپسد подтверждает проблему, и сообщают об этом в warnings. analyze и review сохраняют принудительную границу read-only. В зависимости от операционной Windows, если попытка fails with this broken helper (helper_unknown_error: apply deny-read ACLs), AgentBridge повторит такую job один раз с danger-full-access, запомнит вердic для всей сессии и приложит предупреждение к каждому затронутому результату, что граница не соблюдалась. Ничто другое не вызывает это исключение, а перезапуск AgentBridge снова пробует настоящую песочницу — поэтому исправленный релиз Codex автоматически его возвращает. macOS и Linux не проверяют, не повторяют и не идут на исключение.

Логи — это одна строка JSON на задачу: временная метка, id задания, провайдер, модель, effort, режим, проект, длительность, тречный выход, категория ошибки.


Troubleshooting

executable_not_found — утилита CLI не находится в PATH, передаваемой Claude Code своим дочерним процессам. Подтвердите это в той же оболочке: ум codex --version / agy --version или установите AGENTBRIDGE_CODEX_BIN / AGENTBRIDGE_AGY_BIN.

authentication_required — сессия CLI истекла. Исправьте в терминале: для Codex — codex login, для agy — войдите снова. У AgentBridge нет способа сознательно передать это: он не касается учётных данных.

requested_model_unavailable — список моделей изменился, либо в установленном CLI такой модели никогда не было. Запустите bridge_status (или agy models), чтобы увидеть, что реально доступно; поле details в ошибке уже содержит эту информацию. AgentBridge намеренно завершается с ошибкой, а не молча запускает другую модель. Если провайдер переименовал идентификатор модели, добавьте новый идентификатор в список кандидатов для этой метки в src/models/antigravity.ts (или в CODEX_MODELS в src/models/codex.ts), затем пересоберите.

output_parse_failed — CLI изменил формат машиночитаемого вывода. Проверьте details.stdout_head в результате, затем сравните с parseCodexEvents / parseAgyOutput.

После обновления CLI — повторно запустите тесты, затем живую проверку:

SMOKE_LIVE=1 node scripts/smoke.mjs

Она запускает реальную MCP-сессию и выполняет самую дешёвую конфигурацию каждого воркера. Без SMOKE_LIVE=1 выполняется только рукопожатие и bridge_status, ничего не расходуя.

files_changed всегда пуст — каталог проекта не находится внутри git-рабочего дерева. Предупреждение в результате сообщает об этом. Для проверки изменений требуется git.

В /mcp ничего не отображается — проверьте, что зарегистрированный путь указывает на dist/index.js (собранный, а не src/), и перезапустите Claude Code после пересборки.


Структура

src/
  index.ts               stdio entry point
  server.ts              MCP server, tool schemas, dispatch
  config.ts              project-dir resolution, timeout clamping
  logging.ts             JSONL job log (stderr only, never stdout)
  parse.ts               worker-envelope parsing, summary capping
  types.ts
  cli/
    resolve.ts           PATH lookup + Windows shim unwrapping
    detect.ts            version probes, agy model listing, auth heuristics
    codex-catalogue.ts   zero-inference Codex model availability + effort capability
    codex-sandbox.ts     sandbox policy decision and helper-failure detection
  models/
    codex.ts             effort map, argv construction
    antigravity.ts       logical→real model resolution, argv construction
  process/
    runner.ts            shell-free spawn, bounded output, tree kill
  prompts/
    worker-prompt.ts     structured request → worker prompt
  scope/
    paths.ts             normalisation, traversal rejection, overlap
    locks.ts             in-memory write-scope registry
    git-state.ts         snapshot/diff file attribution
  tools/
    codex.ts  antigravity.ts  status.ts  common.ts
tests/                   252 tests, mocked processes, no quota used
scripts/smoke.mjs        real MCP end-to-end check
Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    A local MCP server that lets Claude delegate scoped work to Codex with structured results and guardrails, supporting planning, code review, build, reverse engineering, and long-running background tasks.
    11
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    An MCP server that bridges Claude Code with Antigravity CLI using a Swarm Agent architecture to optimize local development workflows and minimize LLM token costs. Includes a web UI for monitoring agent workflows.
    21
    17
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    An MCP server that bridges CLI coding agents like Claude Code, Codex, opencode, and Antigravity into any MCP client, enabling synchronous and asynchronous task execution, follow-up input, and a structured code review tool.
    3,147
    MIT

View all related MCP servers

Related MCP Connectors

  • Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer

  • Real-time chat hub for AI agents — Claude Code, Cursor, Cline, Codex over MCP or REST.

  • Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/is-bo/agentbridge'

If you have feedback or need assistance with the MCP directory API, please join our Discord server