Skip to main content

Codex Team

Linux, Python 3.10+, Git, tmux e Codex CLI autenticado. Compatibilidade conferida com Codex CLI 0.163.0 e tmux 3.3a. Usa a autenticação e o modelo configurados no Codex local; não instala SDK nem exige uma chave de API separada.

Instalar pelo pip

python3 -m pip install codex-team

Em um Python gerenciado pelo sistema operacional, use um ambiente virtual ou pipx install codex-team. Git, tmux e Codex CLI são dependências externas que precisam estar no PATH. Nenhuma biblioteca Python adicional é necessária.

codex-team --version
codex-team example-config > config.json
# Edite config.json para informar os repositórios reais.
start-git-codex-team --root /caminho/novo-time --agents config.json

O comando completo equivalente é:

codex-team start --root /caminho/novo-time --agents config.json

Também funciona como módulo: python3 -m codex_team --help. Depois da criação, use ./team dentro da pasta do time para adicionar agentes, enviar tarefas e consultar resultados. Fora dela, use por exemplo codex-team --root /caminho/novo-time status.

Iniciar a partir deste checkout

Copie config.example.json para um config.json e substitua as URLs pelos repositórios reais. Repositórios privados precisam de acesso Git/SSH na máquina. Não inclua tokens ou senhas nas URLs.

./ops/start-git-codex-team.sh --root /caminho/novo-time --agents /caminho/config.json

O diretório passado em --root precisa estar vazio ou já pertencer a este gerenciador. Por padrão a raiz é ./codex-team; sem --agents, carrega ./config.json se existir. Sem JSON, inicia apenas o controlador. Também aceita uma lista JSON diretamente, além do objeto com a chave agents. Cada agente exige name e repo; branch é opcional (branch existente no remoto).

Use --no-attach para iniciar sem anexar o terminal. O layout padrão usa painéis lado a lado; --layout windows cria uma janela por agente. Quando não há espaço para mais divisões, um novo agente ganha uma janela própria. Escolha o layout na primeira inicialização. A sessão tem nome derivado da pasta; --session equipe-x permite escolher o nome na primeira inicialização. Não reutilize o mesmo nome para times diferentes.

A raiz passa a ter:

novo-time/
├── .git/                   # Repositório Git raiz, sem commit automático
├── .gitmodules             # Projetos registrados como submódulos
├── AGENTS.md               # Instruções do controlador
├── README.md
├── team                    # Gerenciador local, executável
├── repos/
│   ├── publicapi/          # Submódulo Git
│   └── parceiros/          # Submódulo Git
└── .codex-team/             # Banco, filas, sessões e resultados locais

git submodule add deixa .gitmodules e os gitlinks no índice. O gerenciador não faz commit nem push na raiz ou nos projetos. A raiz ainda não possui remoto; configure um se quiser compartilhar a composição do time. O runtime é local e ignorado pelo Git; os arquivos versionados sozinhos não reinstalam o gerenciador em outra máquina. Preserve essa pasta para retomar este time.

Conversar com o controlador

O painel Controlador é uma sessão interativa do Codex. Você pode pedir:

Adicione um responsável chamado pagamentos para o repositório git@github.com:empresa/pagamentos.git e aguarde as tarefas.

O AGENTS.md instrui o chefe a executar:

./team add --name pagamentos --repo git@github.com:empresa/pagamentos.git

O novo projeto é cadastrado como submódulo e seu painel é aberto. Um responsável inicialmente fica ocioso; não há chamada ao modelo para apenas aguardar. Ao receber uma tarefa, o executor chama codex exec --json, registra seu thread ID e reutiliza a conversa usando codex exec resume nas tarefas seguintes.

Os painéis dos responsáveis mostram mensagens, comandos e resultados da execução. São consoles do executor, não TUIs interativas do Codex. Envie tarefas pelo controlador ou pelo comando abaixo, sem digitar no painel do responsável.

cd /caminho/novo-time
./team task publicapi --message 'Implemente o endpoint X e valide os testes.'
./team task parceiros --file /caminho/tarefa.txt
./team status
./team wait ID_DA_TAREFA --timeout 50
./team result ID_DA_TAREFA

wait retorna 0 se todas terminaram com sucesso de execução, 1 se alguma falhou ou foi interrompida, e 2 se ainda há pendentes. Leia o relatório para conferir se os critérios de aceitação e os testes passaram; done indica que a chamada Codex terminou normalmente, não substitui revisão. Não há dependências implícitas na fila: o chefe deve esperar a API antes de enviar uma integração dependente. Cada responsável executa uma tarefa por vez; repositórios diferentes trabalham em paralelo. Uma tarefa interrompida é marcada e não é reenviada automaticamente.

A fila usa SQLite e a espera ociosa dos responsáveis usa FIFO. Resultados ficam em .codex-team/results/ID.md, logs em .codex-team/logs/ID.jsonl. Esses arquivos podem conter conteúdo do projeto; não os publique inadvertidamente.

O chefe deve chamar wait/result enquanto acompanha um pedido. O gerenciador não reativa espontaneamente um controlador que já encerrou sua resposta. Ele pode distribuir várias tarefas e aguardar resultados na mesma conversa.

Permissões e escopo

O controlador usa workspace-write com aprovação on-request. Git remoto, tmux ou ações fora do sandbox podem exigir aprovação conforme sua instalação. Os responsáveis usam workspace-write e aprovação never: se uma ação não for permitida, devem relatar o impedimento ao chefe. O gerenciador não usa bypass de sandbox nem executa comandos recebidos por interpolação de shell.

A tarefa instrui cada responsável a alterar apenas seu submódulo. Isso é uma regra de coordenação, não um isolamento de leitura ou segurança entre processos que compartilham o mesmo usuário Linux. Instruções locais do repositório e configurações do Codex continuam aplicáveis.

Sair, parar e retomar

  • Desconectar mantendo o trabalho: Ctrl+B, depois D.
  • Voltar: ./team attach na raiz do time.
  • Parar os responsáveis com segurança, em outro terminal:
cd /caminho/novo-time
./team stop --timeout 50

stop fecha a entrada de tarefas. A tarefa atual de cada responsável pode terminar, mas as pendentes ficam preservadas. Se o prazo expirar, retorna 2 e não força a interrupção. Execute stop novamente depois. O controlador e a sessão tmux permanecem abertos. Quando ele estiver ocioso e os responsáveis parados, encerre a sessão usando o nome mostrado em ./team status:

tmux kill-session -t NOME_DA_SESSAO

Para reabrir o time, reaproveite a mesma raiz:

./ops/start-git-codex-team.sh --root /caminho/novo-time

Isso restaura os painéis ausentes, as filas e os IDs das conversas dos responsáveis. Tarefas pendentes voltam a ser executadas. Se um controlador foi fechado, abre uma conversa nova que consulta o estado persistido; a conversa interativa anterior pode ser retomada manualmente pelo Codex. Nenhum arquivo modificado ou commit dos submódulos é descartado.

Validação

python3 -m unittest discover -s ops/codex-team -p 'test_*.py' -v

Os testes usam repositórios Git locais, servidor tmux isolado e um executável Codex simulado. Não fazem chamadas ao modelo, não clonam projetos reais e não alteram o servidor tmux do usuário.

Referência: execução não interativa do Codex.

Desenvolvimento e build

cd ops/codex-team
python3 -m pip install -e .
python3 -m pip install build twine
python3 -m build
python3 -m twine check dist/*

A distribuição inclui somente o gerenciador, a documentação e os exemplos; nenhum repositório de trabalho, fila, credencial ou configuração de usuário é incluído nos artefatos. A versão inicial é 0.1.0 (alpha). A implementação usa tmux; GNU screen não é um backend suportado por este pacote.

Metadata

Release files for codex-team 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for codex-team 0.1.0
File Size Uploaded Provenance Actions
codex_team-0.1.0.tar.gz 20.6 kB Without provenance Details for codex_team-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for codex-team 0.1.0
File Interpreter ABI Platform Actions
codex_team-0.1.0-py3-none-any.whl Python 3 none any Details for codex_team-0.1.0-py3-none-any.whl

Total release size: 34.9 kB

Release files / codex_team-0.1.0.tar.gz

Download URL codex_team-0.1.0.tar.gz
Size 20.6 kB
Tags Source
SHA-256 checksum
How to use checksums
7388cc8e85aa6afae09fd334c3f4a2b5fa4ed17c508bcce47d6406e3468a89eb
BLAKE2b-256 checksum
How to use checksums
1eae7c544b056522073a7ee797eded6a5756e976a4c4c6c23a8ece5b681a82c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.2

Release files / codex_team-0.1.0-py3-none-any.whl

Download URL codex_team-0.1.0-py3-none-any.whl
Size 14.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b43428cb4b01f56f88b90a3ea0c476d9dbfeb7237bed86e3a0343fc1acde3ef8
BLAKE2b-256 checksum
How to use checksums
a2474214eaed724a98c087115f1c3ba10c1938460ab68b60d638c470090fcab9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.2

Security for codex-team 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page