Skip to main content

Benchmarks

Static code quality benchmarks compare Acolyte with eight current open-source terminal coding agents using source, dependency, test, and type-safety metrics.

For feature and architecture comparisons, see Comparison. Both documents use the same competitor set.

All metrics are extracted with scripts/benchmark.ts.

Methodology

  • Source lines = total lines in included source files, including code, comments, and blanks
  • Code, comment, and blank line counts are reported separately; comment classification is based on leading comment markers
  • Test files, known generated directories, and source files over 10k lines are excluded
  • Metrics normalized per 1k source lines where applicable
  • Dependencies are direct declarations detected in the included project manifests and shown as runtime + development; Go modules do not distinguish development dependencies
  • Each project is measured from a fresh shallow clone of its origin’s default branch
  • Snapshot revisions tie each result to the exact source measured
  • Projects are ordered by language (TypeScript, Rust, Go), with Acolyte first and others alphabetical within each language

These are structural signals, not measures of model quality, runtime correctness, or task success. Repository-wide counts are especially difficult to compare when a project includes multiple clients, products, or bundled applications.

Closed systems

This methodology requires a comparable public source repository. Claude Code, Cursor, and GitHub Copilot are excluded from the source analysis.

Projects compared

ProjectRevisionLanguageSource linesCodeCommentsBlankFilesDependencies
Acolyte83fddd5c2322TypeScript31,06827,3367952,93725710 + 6
Kimchi53a1d48a9521TypeScript115,15087,31415,18712,64959525 + 19
Kodef27c996168d2TypeScript212,170181,8286,82523,5171,42470 + 53
OpenCode4cc022481c18TypeScript414,510368,1609,59436,7562,315222 + 111
Qwen Code067860ad733bTypeScript996,538756,773157,67782,0883,265218 + 137
Codex5a4f5ee64c4eRust896,607762,49759,79874,3122,256327 + 84
Goose36cb569e366fRust200,974164,70513,91322,356428162 + 20
Grok Builda881e6703f46Rust1,232,633935,000206,94190,6921,929306 + 71
Reasonix9eb9511f8b20Go205,633168,75020,88615,99764145 + 0

Dependency surface area

Measures how much of a codebase depends on external packages.

MetricAcolyteKimchiKodeOpenCodeQwen Code
External imports / 1k LOC7.07.421.318.96.9
Runtime dependencies102570222218

TypeScript projects only.

Acolyte has the fewest runtime dependencies and lowest external-import density among the TypeScript projects except Qwen Code’s slightly lower import count.

Input validation density

Counts .parse(), .safeParse(), and .validate() call sites per 1k source lines. This measures validation patterns, not runtime path coverage.

MetricAcolyteKimchiKodeOpenCodeQwen Code
Parse and validation calls / 1k LOC3.11.20.90.50.5
.safeParse() calls / 1k1.30.00.20.00.0

TypeScript projects only.

Acolyte has the highest measured validation-call density in this TypeScript comparison.

TypeScript type safety signals

Per 1k source lines.

MetricAcolyteKimchiKodeOpenCodeQwen Code
as any0.00.40.90.90.2
: any annotations0.00.22.60.60.2
@ts-ignore / @ts-expect-error0.00.00.00.20.0
Lint ignores0.20.80.10.00.2
: unknown usage3.24.84.52.53.0

Acolyte has the lowest measured TypeScript escape-hatch density in this comparison. These counts do not establish correctness.

Language-specific type safety signals

Per 1k source lines.

MetricCodexGooseGrok BuildReasonix
unsafe (Rust)0.80.20.8
.unwrap() (Rust)2.814.515.9
.expect() (Rust)13.72.13.7
any / interface{} (Go)3.5
panic() (Go)0.2
nolint (Go)0.0

Test density

MetricAcolyteKimchiKodeOpenCodeQwen CodeCodexGooseGrok BuildReasonix
Test files2164404927001,83840626345596
Test lines29,636127,96075,079167,8281,019,323253,47614,638132,849180,152
Ratio0.951.110.350.401.020.280.070.110.88

This ratio measures test volume, not executed coverage or test effectiveness.

Test types include:

  • unit (*.test.ts)
  • integration (*.int.test.ts)
  • TUI visual regression (*.tui.test.tsx)
  • performance (*.perf.test.ts)

Module size

MetricAcolyteKimchiKodeOpenCodeQwen CodeCodexGooseGrok BuildReasonix
Avg lines / file121194149179305397470639321
Files > 500 lines3 (1%)46 (8%)53 (4%)194 (8%)469 (14%)502 (22%)128 (30%)694 (36%)101 (16%)
Largest file6194,6642,4537,2209,8187,3494,4289,76810,000
Barrel / index files136737016177501902

Acolyte has the smallest average module size and fewest large files in this snapshot.

Error-handling patterns

Per 1k source lines.

MetricAcolyteKimchiKodeOpenCodeQwen Code
.safeParse() calls1.30.00.20.00.0
try { ... } blocks6.16.86.21.25.6
.catch() calls0.40.90.51.60.9

TypeScript projects only.

Acolyte has the highest .safeParse() call density among the TypeScript projects. The count is a proxy for validation structure, not proof that every runtime path is validated.

Key takeaways

At this snapshot, Acolyte has:

  • The lowest measured TypeScript escape-hatch density
  • The smallest average module size and lowest large-file density
  • The fewest runtime dependencies
  • The highest measured TypeScript validation-call density
  • A 0.95 test-to-source line ratio

These signals describe source structure and engineering patterns. They do not rank model quality or user-visible reliability.

Updated 20 July 2026.