Benchmarks

May 31, 2026 ยท View on GitHub

Ferrum includes a local benchmark harness under bench/.

The harness is intended for reproducible local comparisons and regression testing. It is not a formal leaderboard.

Reproduce

Ferrum:

bench/run.sh ferrum-codex 014-large-context-navigation

Pi:

bench/run.sh pi-codex 014-large-context-navigation

OpenCode:

OPENCODE_MODEL=openai/gpt-5.5 bench/run.sh opencode 014-large-context-navigation

Summarize:

bench/report.sh

Runs default to:

/tmp/ferrum-bench-runs

Override with BENCH_RUN_ROOT or pass a run root to bench/report.sh.

Fairness controls

The current same-model comparison uses GPT-5.5 access for all agents:

  • Ferrum: openai-codex/gpt-5.5
  • Pi: openai-codex/gpt-5.5
  • OpenCode: openai/gpt-5.5

The harness also controls tool surface where practical:

  • Ferrum uses --no-mcp.
  • Pi uses --tools read,bash,edit,write,grep,find,ls.
  • Workspaces are outside the Ferrum repository by default to avoid parent context contamination.

OpenCode has its own native tool surface and prompt scaffolding, so comparisons are product-level rather than byte-identical request comparisons.

Snapshot: 2026-05-31

Environment: local Linux workstation. One run per task. Same GPT-5.5 family access. Run root: /tmp/ferrum-bench-runs.

Tasks:

  • 011-multi-file-refactor
  • 012-broken-cli-diagnosis
  • 014-large-context-navigation
  • 016-independent-file-synthesis
  • 020-flaky-test-discipline

All agents passed all five tasks in this snapshot.

agenttaskscoremax RSS KBelapsed
Ferrum0110327800:29.17
Ferrum0120326400:25.31
Ferrum0140329600:28.63
Ferrum0160162960:06.78
Ferrum0200325040:10.29
Pi01101786320:38.19
Pi01201796080:23.21
Pi01401833280:22.75
Pi01601813520:13.05
Pi02001783640:22.08
OpenCode01104444521:40.18
OpenCode01204398201:33.76
OpenCode01404417641:04.84
OpenCode01603695040:19.33
OpenCode02004075721:03.35

Aggregate:

agentpassmean timemedian timemean RSS
Ferrum5/520.04s25.31s29.4 MB
Pi5/523.86s22.75s180.3 MB
OpenCode5/568.29s64.84s420.6 MB

Caveats

  • Single-run timings are noisy. Prefer at least three runs per task and compare medians.
  • Network/provider latency can dominate wall time.
  • Tool traces differ by agent; some scoring checks are Ferrum-only where Pi/OpenCode text mode lacks comparable traces.
  • The harness evaluates complete product behavior: prompt scaffolding, tool implementation, context handling, and runtime overhead all matter.