Prático

Agentes de programação na mesma tarefa

Damos ao Claude Code, ao OpenAI Codex e ao Gemini CLI um repositório pequeno idêntico e o mesmo prompt, e então registramos quanto cada um custou e o que saiu. Cada número vem do relatório de uso da própria ferramenta ou do executor de testes. Execuções que ainda não fizemos são indicadas como tal.

Método: Como avaliamos · O protocolo e os arquivos de teste estão publicados no repositório do projeto.

Execuções concluídas: 1Execuções pendentes: 21de 3 execuções
  • Execuções concluídas 1
  • Execuções pendentes 2

Fix a bug, add a feature and a CLI flag in a small Python package

Starting from a 40-line Python package with 5 failing tests: fix CSV date parsing and a trailing blank line, add totals_by_customer(), and add a --top N CLI flag. Standard library only, tests must not be edited.

Prompt inicial, idêntico para todos os agentes
Read README.md and make all tests in tests/ pass. Do not edit the tests. Run the tests yourself before you finish.

O que medimos

  • Tests passed out of 5, read from pytest
  • Wall time from sending the prompt to the agent saying it is done
  • Tokens and USD cost as reported by the tool itself (/cost in Claude Code, session summary in Codex)
  • Extra user turns and questions the agent asked
  • Size of the diff (files, lines) from git

Resultados

Claude Code

5/5testes

Tempo
00:48
Custo
$1.22
Tokens de saída
1,820
Turnos extras
0
OpenAI Codex

—ainda não executado

Gemini CLI

—ainda não executado

Claude Code · custo
$1.22
Claude Code · tempo
00:48
AgenteStatusTestesTempo totalTokens de entrada / saídaCustoTurnos extrasDiferençaModelo · plano
Claude Code Executar Oct 2, 2026 5/5 00:48 162 / 1,820
250,959 em cache
$1.22
informado pela ferramenta
0 2 arquivos, +22 / −8 claude-fable-5-1 · Headless run (claude -p) on the reviewer's account; cost shown at API list price (costBasis: list), subscription plan not applied · v2.1.284
OpenAI Codex Ainda não executado
Gemini CLI Ainda não executado
Claude Code: saída bruta de uso e anotações
{
  "duration_ms": 48154,
  "duration_api_ms": 46010,
  "num_turns": 8,
  "total_cost_usd": 1.2184397500000002,
  "usage": {
    "input_tokens": 162,
    "output_tokens": 1820,
    "cache_read_input_tokens": 250959,
    "cache_creation_input_tokens": 53154
  },
  "modelUsage": {
    "claude-fable-5-1": {
      "inputTokens": 162,
      "outputTokens": 1820,
      "cacheReadInputTokens": 250959,
      "cacheCreationInputTokens": 53154,
      "webSearchRequests": 0,
      "costUSD": 1.2184397500000002,
      "contextWindow": 1000000,
      "maxOutputTokens": 64000,
      "thinkingTokens": 201,
      "canonicalModel": "claude-fable-5-1",
      "provider": "firstParty",
      "costBasis": "list"
    }
  }
}

Opinion: clean argparse implementation, all 5 tests green on the first self-check. Caveats: (1) run via the non-interactive `claude -p` command with a tool allowlist (Read/Edit/Write/Bash for python and git), not the interactive TUI; (2) the reviewer's global Claude Code settings and skills were active, which a fresh install would not have; (3) the agent also removed the old "Total:" output line that no test covered.

Como funciona uma execução

  1. Uma cópia nova do repositório de teste é criada e confirmada, para que a diferença seja mensurável.
  2. O agente recebe o prompt inicial acima, literalmente, com o modelo padrão do plano indicado nos resultados.
  3. Sem dicas. Se o agente perguntar, a única resposta é “Use seu bom senso.” Cada mensagem extra é contada.
  4. A execução termina quando o agente diz que concluiu ou após 20 minutos.
  5. Os testes são executados por nós, o diff é medido com git, e os tokens e o custo são copiados do próprio relatório de uso da ferramenta.

Limites: uma tarefa, uma execução por agente, apenas configurações padrão. É uma verificação pontual reproduzível, não um ranking.