Async Parallel Antigravity for Codex & Claude Code

Execute sessões CLI Antigravity paralelas, retomáveis e operáveis por humanos a partir do Codex, Claude Code ou qualquer agente compatível com MCP.

Documentação

codex-agy-bridge

CI License: MIT

Execute o Antigravity a partir de um harness de agente como sessões agy duráveis, paralelas e operáveis por humanos via MCP.

codex-agy-bridge envolve a CLI oficial do Antigravity com um plano de controle MCP retomável. Harnesses de agente como Codex, Claude Desktop ou seu próprio cliente MCP baseado em GPT/Claude podem iniciar execuções agy, aguardar eventos esparsos, anexar um terminal real, enviar entrada protegida, cancelar com segurança, continuar conversas exatas e coletar resultados finais posteriormente por run_id.

Instalação Rápida

Pré-requisitos:

  • Codex CLI para o comando abaixo, ou outro harness local compatível com MCP via stdio
  • A CLI oficial do Antigravity (agy), já autenticada localmente
  • uv / uvx
  • tmux no macOS:
brew install tmux

Verifique os comandos necessários:

codex --version
agy --version
agy models
uvx --version
tmux -V

Autenticação do Dia 0

agy --version apenas prova que o binário existe. Antes de adicionar o servidor MCP, execute agy models; se o Antigravity pedir que você faça login ou informar que você não está autenticado, inicie uma sessão visível e conclua o fluxo de navegador/login:

agy --prompt-interactive "Authenticate Antigravity and then exit."
agy models

Após agy models ser bem-sucedido, instale ou reinicie o servidor MCP. Se uma execução da ponte ainda encontrar problemas de autenticação, agy_run_start retorna status="auth_required" e abre uma sessão de autenticação agy visível por padrão. Conclua o login lá e inicie uma nova execução. Você também pode usar agy_run_observe(view="terminal") ou agy_admin(action="doctor") para inspecionar o status de autenticação necessária.

Instale a partir do PyPI com a CLI do Codex:

codex mcp add codex-agy-bridge \
  --env AGY_CMD="$(command -v agy)" \
  -- "$(command -v uvx)" codex-agy-bridge@latest

Reinicie o harness e verifique no Codex se você usou o comando acima:

codex mcp get codex-agy-bridge
codex mcp list

Remova com:

codex mcp remove codex-agy-bridge

Para Claude Desktop ou um cliente MCP personalizado, use o mesmo formato de comando stdio: uvx codex-agy-bridge@latest com AGY_CMD definido como o executável agy autenticado.

O Que Torna Diferente

  • Sessões Antigravity paralelas: inicie múltiplas execuções agy independentes, cada uma com seu próprio estado durável, logs, projeção de transcrição e resultado.
  • Terminais operáveis por humanos: execuções em primeiro plano vivem em sessões tmux persistentes, para que o Terminal.app possa anexar sem matar o agente.
  • Controle MCP retomável: chamadas MCP podem expirar, o harness pode reiniciar, e a execução ainda pode ser observada posteriormente por run_id.
  • Orquestração de metas: crie uma meta, inicie alvos nomeados com paralelismo limitado e inspecione todo o lote como um esforço coordenado.
  • Eventos de ativação esparsos: agy_run_wait faz polling curto de eventos de ciclo de vida, atenção, progresso e terminal sem spam de polling de transcrição.
  • Entrada protegida: agy_run_input pode rejeitar gravações obsoletas quando cursores de evento ou transcrição mudaram após o chamador observar a execução.
  • Observabilidade ciente de trajetória: resumos limitados de transcrição e evidências de terminal são expostos sem raciocínio privado do modelo.
  • Higiene operacional: inícios ativos duplicados são deduplicados, grupos de processos são cancelados com segurança e artefatos de resultado concluídos são preservados.

Detalhes de Instalação

Se Você É Um Agente Lendo Isto

Ajude o usuário a instalá-lo; não altere a máquina dele silenciosamente.

  1. Verifique os pré-requisitos primeiro:
command -v codex
command -v agy
command -v uvx
command -v tmux
agy --version
agy models
  1. Se algo estiver faltando, pergunte antes de instalar.
  2. Se agy models relatar um erro de autenticação, ajude o usuário a concluir o fluxo de autenticação do Dia 0 acima antes de adicionar o servidor MCP.
  3. Em seguida, execute:
codex mcp add codex-agy-bridge \
  --env AGY_CMD="$(command -v agy)" \
  -- "$(command -v uvx)" codex-agy-bridge@latest
  1. Verifique:
codex mcp get codex-agy-bridge
codex mcp list
  1. Diga ao usuário para reiniciar o harness de agente para que as novas ferramentas MCP sejam carregadas.

PyPI

O comando de Instalação Rápida armazena uma definição de servidor MCP via stdio. Quando o harness de agente inicia o servidor, uvx resolve codex-agy-bridge@latest do PyPI, instala-o em um ambiente em cache isolado e executa o script de console codex-agy-bridge. AGY_CMD fixa a ponte ao executável agy já instalado e autenticado do usuário.

Não substitua $ ou $(...) manualmente no comando. Em shells POSIX, $(command -v agy) e $(command -v uvx) expandem para caminhos absolutos de executáveis.

GitHub

Use isto quando quiser a versão do repositório diretamente:

codex mcp add codex-agy-bridge \
  --env AGY_CMD="$(command -v agy)" \
  -- uvx --from git+https://github.com/varadfromeast/codex-agy-bridge \
  codex-agy-bridge

Desenvolvimento Local

git clone https://github.com/varadfromeast/codex-agy-bridge.git
cd codex-agy-bridge
uv sync --extra dev

codex mcp add codex-agy-bridge \
  --env AGY_CMD="$(command -v agy)" \
  -- uv --directory "$PWD" run codex-agy-bridge

Como Funciona

flowchart LR
  H["Agent harness<br/>(Codex, Claude, custom MCP client)"]
  M["codex-agy-bridge<br/>MCP stdio server"]
  S["Durable control plane<br/>runs, goals, events, results"]
  W["Detached run supervisor"]
  A["Antigravity CLI<br/>agy"]
  T["Persistent tmux session<br/>human attach/input"]
  L["Local Antigravity<br/>trajectory files"]

  H <-->|"MCP tools"| M
  M <--> S
  S --> W
  W --> A
  W <--> T
  A --> L
  W -->|"bounded transcript projection"| S
  T -->|"terminal logs and attention prompts"| S

A ponte mantém o servidor MCP responsivo enquanto supervisores destacados controlam os processos agy de longa duração. Estado e eventos são persistidos localmente, para que uma execução possa continuar após a chamada MCP original retornar. Para o modelo de processo mais profundo, veja docs/ARCHITECTURE.md. Para a visão do loop de controle MCP, veja docs/MCP_VISION.md.

Ferramentas MCP

FerramentaFinalidade
agy_run_startIniciar, continuar ou abrir uma execução interativa em primeiro plano
agy_run_waitFazer polling curto até que execuções selecionadas emitam eventos de ativação esparsos
agy_run_observeLer visualizações completas, de status, transcrição ou terminal bruto
agy_run_inputEnviar entrada com pré-condições opcionais de evento/transcrição
agy_run_cancelCancelar uma execução ativa
agy_run_resultLer metadados de resultado final ou blocos de resultado limitados
agy_goalCriar metas, iniciar alvos e ler status agregado
agy_adminLer diagnósticos, modelos, plugins, validação e changelog

Fluxo típico:

agy_run_start -> agy_run_wait -> agy_run_observe -> agy_run_result

No Codex MCP, as ferramentas podem ser expostas com o prefixo do servidor, por exemplo codex_agy_bridge_agy_run_wait. As respostas de execução incluem argumentos exatos de wait_call; observe que agy_run_wait sempre aceita run_ids: ["..."], mesmo para uma única execução. As condições de espera suportadas são any_attention, any_terminal, all_terminal, any_event e os aliases attention, terminal, finished, finish, complete, completed, result, all_finished, all_complete e all_completed.

Use agy_goal quando o harness deve dividir o trabalho em alvos nomeados com um objetivo compartilhado e paralelismo limitado.

Configuração

VariávelPadrãoFinalidade
AGY_CMDagy em PATHExecutável exato do Antigravity
AGY_BRIDGE_STATE_DIR~/.local/state/codex-agy-bridgeEstado durável de execuções e metas
AGY_BRIDGE_AGY_ROOT~/.gemini/antigravity-cliConversas e trajetórias do Antigravity
AGY_BRIDGE_MAX_PARALLEL50Limite global de execuções concorrentes
AGY_BRIDGE_COMPLETION_STABILITY_SECONDS150Tempo que um marcador final deve permanecer estável
AGY_BRIDGE_MCP_WAIT_SLICE_SECONDS120Máximo de segundos que uma única chamada MCP agy_run_wait bloqueia antes de retornar um snapshot para que gateways não expirem

O estado da execução sobrevive a reinicializações do servidor MCP em ~/.local/state/codex-agy-bridge/.

Status e Riscos

Este projeto é experimental. Atualmente tem como alvo Python 3.11+, macOS, tmux e comandos e arquivos de trajetória compatíveis com a CLI 1.0.8 do Antigravity.

Antigravity é uma CLI agêntica. Ela pode ler e escrever arquivos, executar comandos e acessar a rede com os privilégios do usuário atual. Esta ponte não é uma sandbox ou limite de segurança.

A ponte sempre ativa a política perigosa de pular permissões do Antigravity para que execuções não supervisionadas não travem em prompts de aprovação da CLI. Qualquer entrada dangerously_skip_permissions=false é rejeitada; o único valor permitido é true. sandbox=true e additional_directories são dicas de política da CLI, não contenção de sistema de arquivos.

A ponte não lê nem copia credenciais OAuth do Antigravity. Ela invoca o binário agy instalado e lê metadados comuns de conversas locais e arquivos de trajetória.

Desenvolvimento

git clone https://github.com/varadfromeast/codex-agy-bridge.git
cd codex-agy-bridge
uv sync --extra dev
uv run pytest
uv run ruff check .
uv build

Execute o servidor diretamente:

uv run codex-agy-bridge

O servidor usa transporte stdio. Não imprima texto de diagnóstico no stdout; isso corromperia o enquadramento MCP.

Publicação

Uma tag de versão enviada executa .github/workflows/publish.yml, que verifica versões, executa verificações, compila distribuições, publica no PyPI via GitHub OIDC, cria um release no GitHub e publica server.json no Registro MCP.

Compatibilidade

O leitor atual espera JSONL de trajetória do Antigravity em:

~/.gemini/antigravity-cli/brain/<conversation-id>/
  .system_generated/logs/transcript.jsonl

Se o Antigravity migrar para SQLite ou uma API de daemon local, um novo adaptador pode substituir este leitor sem alterar o contrato das ferramentas MCP.

Licença

MIT