# openai-codex

> Helps developers write, debug, test, and refactor code in any programming language from the terminal

- repo: https://github.com/openai/codex
- commit: 55543d87724bb66bdd51bde65254feb9b4c9ed10
- api style: openai
- runs: 7 (None with a reward)
- tasks tried: 5
- models: bedrock/us.anthropic.claude-haiku-4-5-20251001-v1:0
- domains: swe
- languages: 
- capabilities: edits-files, runs-shell, runs-tests, uses-git, multi-agent, long-horizon, reads-docs, browses-web

## How it runs here

Codex CLI (openai/codex) is a Rust coding agent. Its CLI is the codex-rs workspace crate codex-cli (binary `codex`); the npm package in codex-cli/ only wraps prebuilt binaries. The non-interactive entrypoint is `codex exec [OPTIONS] -- "<prompt>"`, which runs one headless session. `--json` streams JSONL events, `-o FILE` writes the final message, `--dangerously-bypass-approvals-and-sandbox` turns off approvals and the sandbox, `--skip-git-repo-check` allows non-git dirs, and CODEX_HOME holds the config and the rollout trajectories. Compiling the workspace needs more than 8 GB of RAM, and the previous build was OOM-killed. The overlay therefore installs the official statically linked musl `codex` binary that upstream CI builds from this workspace (GitHub release rust-v0.156.1, x86_64 or aarch64 chosen by `uname -m`). The repo source is still COPYed to /opt/harness/src, and `--build-arg CODEX_INSTALL=source` compiles from source on a large builder instead. Codex calls models only through the OpenAI Responses API (`POST <base_url>/responses`, SSE); `wire_api="chat"` is rejected. So the run command starts a stdlib-Python shim on 127.0.0.1:8790 using a uv-managed Python under /opt/harness. The shim translates Responses requests into streaming chat-completions calls to $PROXY_URL/v1/chat/completions and converts the results back. Function tools map 1:1, and freeform custom tools such as apply_patch become functions with a single `input` string. Codex reaches the shim through a custom provider in CODEX_HOME/config.toml, with model gpt-5.5.

## Results by task

| task | runs | last reward | best reward | last tests |
|---|---|---|---|---|
| [aider_polyglot/polyglot_go_palindrome-products](https://harnessreport.com/tasks/aider_polyglot/polyglot_go_palindrome-products.md) | 2 | 0 |  |  |
| [aider_polyglot/polyglot_python_bowling](https://harnessreport.com/tasks/aider_polyglot/polyglot_python_bowling.md) | 1 | 1 |  | 31 passed |
| [bird-bench/card_games__372](https://harnessreport.com/tasks/bird-bench/card_games__372.md) | 1 | 1 |  |  |
| [humanevalfix/python-12](https://harnessreport.com/tasks/humanevalfix/python-12.md) | 1 | 1 |  | 1 passed |
| [swebench-verified/psf__requests-5414](https://harnessreport.com/tasks/swebench-verified/psf__requests-5414.md) | 2 | 1 |  | 131 passed, 1 xfailed, 158 errors |

## Tests to run next

_ranked by llm_

| task | why |
|---|---|
| [aider_polyglot/polyglot_cpp_allergies](https://harnessreport.com/tasks/aider_polyglot/polyglot_cpp_allergies.md) | Test whether the harness can handle compiled languages and their build/test toolchains, covering the 'any programming language' claim. |
| [aider_polyglot/polyglot_rust_bowling](https://harnessreport.com/tasks/aider_polyglot/polyglot_rust_bowling.md) | Validate Rust support and assess if it handles the more complex state-tracking logic at medium difficulty (same task type it passed in Python). |
| [aider_polyglot/polyglot_javascript_triangle](https://harnessreport.com/tasks/aider_polyglot/polyglot_javascript_triangle.md) | Test an interpreted language and its test ecosystem, rounding out language coverage across compiled/interpreted paradigms. |
| [swebench-verified/sphinx-doc__sphinx-8595](https://harnessreport.com/tasks/swebench-verified/sphinx-doc__sphinx-8595.md) | Validate real-world debugging on a different codebase (documentation tool vs. HTTP library) to confirm the harness generalizes beyond its first passing real-world fix. |
| [usaco/1090](https://harnessreport.com/tasks/usaco/1090.md) | Step up to algorithmic problem-solving where code must be written from scratch without a template, testing the 'write' part of the use case at harder difficulty. |

## Runs

| run | task | verifier says | calls | seconds |
|---|---|---|---|---|
| [20260925T090258-openai-codex-polyglot_go_palindrome-products](https://harnessreport.com/runs/20260925T090258-openai-codex-polyglot_go_palindrome-products.md) | aider_polyglot/polyglot_go_palindrome-products | reward 0 | 14 | 47 |
| [20260924T230425-sw-codex-psf__requests-5414](https://harnessreport.com/runs/20260924T230425-sw-codex-psf__requests-5414.md) | swebench-verified/psf__requests-5414 | reward 1 · 131 passed, 1 xfailed, 158 errors | 92 | 240 |
| [20260924T225535-sw-codex-card_games__372](https://harnessreport.com/runs/20260924T225535-sw-codex-card_games__372.md) | bird-bench/card_games__372 | reward 1 | 5 | 10 |
| [20260924T225434-sw-codex-python-12](https://harnessreport.com/runs/20260924T225434-sw-codex-python-12.md) | humanevalfix/python-12 | reward 1 · 1 passed | 10 | 21 |
| [20260924T224755-sw-codex-psf__requests-5414](https://harnessreport.com/runs/20260924T224755-sw-codex-psf__requests-5414.md) | swebench-verified/psf__requests-5414 | reward 0 · 15 failed, 116 passed, 1 xfailed, 158 errors · verifier exited 1 | 69 | 181 |
| [20260924T224300-sw-codex-polyglot_go_palindrome-products](https://harnessreport.com/runs/20260924T224300-sw-codex-polyglot_go_palindrome-products.md) | aider_polyglot/polyglot_go_palindrome-products | reward 0 | 23 | 107 |
| [20260923T222433-openai-codex-polyglot_python_bowling](https://harnessreport.com/runs/20260923T222433-openai-codex-polyglot_python_bowling.md) | aider_polyglot/polyglot_python_bowling | reward 1 · 31 passed | 37 | 164 |

---
Harness Report runs agent harnesses from their GitHub repos on Harbor tasks and records every model call. Every page is also `.md` and `.json`; index: https://harnessreport.com/llms.txt · MCP: https://harnessreport.com/mcp
