Autonomous code repair
with a red-first gate.
Naoru drives personal test software, judges the result, and has an LLM propose a fix in an isolated worktree. It then checks every autonomous commit with a deterministic red-first oracle designed to reduce false greens and silent regressions.
$ naoru run --mission test-and-fix-bugs ● drive running system-under-test… ✗ judge RED AssertionError · checkout total mismatch ✎ fix worker patch in worktree wt-3f9a (fixer-blind) ✓ gate RED→GREEN · 3-of-3 · gate accepted ✓ commit a1b2c3d fix: correct checkout rounding
Drive → judge → fix → gate.
A bounded, deterministic loop. The engine core imports zero host code. Binds to your environment through three seams, so it runs on arbitrary-language repos.
Drive
Launch the system-under-test and stream its output until it terminates.
Judge
Score the run RED or GREEN with machine-checkable predicates: exit code, traceback, contract, output.
Fix
A bounded LLM worker proposes a patch in an isolated git worktree. Your model, inherited from host config.
Gate
The oracle re-runs the check blind to the fix. Only a candidate that clears the gate is allowed to commit.
A red-first oracle checks a candidate before it reaches your main checkout.
- RED→GREENRed-first. The check must fail before the fix, then pass after. A patch can't take credit for code that was already green.
- N-of-MRepeated. The post-fix pass is checked across multiple runs, reducing the chance that a flaky green clears the gate.
- blindFixer-blind. The oracle that checks the candidate never sees the patch's reasoning — it judges behavior, not narrative.
- boxedSandboxed by default. Bounded worker, isolated worktree, gate-required commits.
--unsafeis an explicit opt-in.
Point it at a goal, declare your checks, let it run.
Author checks as declarative leaves — a command plus a pass-predicate.
naoru leaves generate proposes a starter set from personal test repo tooling.
test-and-fix-bugsRed-first oracle. Finds a failing check, proposes a repair, and commits only a gate-accepted candidate.
improve-performanceMetric gate. Keeps a change only when it measurably moves the number you defined.
improve-uxProposes a patch for human review. Never commits autonomously.
general-improvementOpen-ended propose-a-patch for review. The engine suggests; you decide.
Install naoru and its host.
Naoru is the repair engine; a host binds it to your environment: LLM access, runtime paths, and tooling discovery. The turnkey extra installs both:
$ uv tool install naoru[obra-host] # installs naoru + the default host $ naoru config --accept-license "I ACCEPT" # choose your provider and model $ naoru run --mission test-and-fix-bugs
Naoru is host-agnostic by design. To use a different host, install bare
uv tool install naoru and bind your own environment through
fix_engine.host.configure_host(...).
Research preview — use at your own risk. Naoru is licensed only for personal, non-commercial U.S. technical evaluation. It can execute commands, call third-party LLM providers, write code, and commit autonomously. It is provided “as is,” without warranties or guarantees of any kind. Review its output, run it only on version-controlled personal test code you can revert, and keep a human in the loop. Naoru stores a local license-acceptance receipt on your machine and does not send product telemetry to Unpossible Creations.