Skip to content
Skip to content

Critique CodeCritique Code

An agentic coding harness.

Critique Code writes the change, runs the checks, and keeps going until the evidence says stop. Same class as Codex and Claude Code, not a comment bot on top of them. It happens to be lethal at review because it is a full coding loop, not a reviewer pretending to code.

npmready · v0.1.3
$ 

Then critique-code or critique-code web in the repo you want to edit. Separate from @critiquedotsh/cli.

  1. t+0repo.boundworking tree, base SHA, limits
  2. t+1edit.loopmodel turns through governed tools
  3. t+ntest.focusedCheckRequest, not a model shell
  4. stopship.when.provenor keep writing

Any model. Your providers or ours.

Point Critique Code at the keys you already pay for. Or route through Critique Inference and skip the provider wrangling. The harness does not care which logo sits on the model.

  • Critique CodeCritique Code
  • OpenAIOpenAI
  • ClaudeAnthropic
  • DeepSeekDeepSeek
  • GoogleGoogle
  • QwenQwen
  • KimiKimi
  • MistralMistral
  • MinimaxMiniMax
  • Z.aiZ.AI
  • NvidiaNVIDIA
  • OpenRouterOpenRouter
  • Critique CodeCritique Code
  • OpenAIOpenAI
  • ClaudeAnthropic
  • DeepSeekDeepSeek
  • GoogleGoogle
  • QwenQwen
  • KimiKimi
  • MistralMistral
  • MinimaxMiniMax
  • Z.aiZ.AI
  • NvidiaNVIDIA
  • OpenRouterOpenRouter

The test spine

A coding harness that skips tests is guessing.

Critique Code is a general coding agent. It implements, refactors, and patches. Cheap checks spend first. Focused tests try to break the change. Review is not a separate product. It is what happens when the same harness refuses to call the job done on vibes.

  1. PASStrust.preflightsecrets, digest, redaction map
  2. PASStypecheckzero agent cost
  3. PASSlintdeterministic delta
  4. PASSsecrets.deltano new credential material
  5. PASScontract.breakpublic surface still holds
  6. RUNtest.focusedCheckRequest, not a model shell
  7. FAILreproducecandidate state still breaks
  8. PASSnearby.testschanged lines executed
  9. KILLadjudicatefresh session, no specialist chat
  10. PROVENfindingor it stays HYPOTHESIS

A coding harness with a controller, not a chat wrapper.

Codex-class loops wrap a model and keep writing. Critique Code still writes. It also owns what may run, which repository state was examined, whether an observation is evidence, and whether the job is actually done. The agent kernel is replaceable. The controller is not.

  1. 01The controller owns the run
  2. 02Requests are not commands
  3. 03Observation is not a finding
  4. 04Write when the evidence says so.
01

The controller owns the run

Critique decides what may be executed, which commit was examined, how tools are provisioned, and which CPU, memory, process, network, and time limits apply. A model turn cannot widen that envelope.

owns
execution, state, provenance, limits
kernel
model turns through provided tools
moat
proof architecture, not the wrapper
02

Requests are not commands

The model names a capability, a target, and a purpose. The harness resolves the binary, arguments, working directory, timeout, network, and write policy. Shell operators, path escapes, and unknown capabilities are rejected.

asks
CheckRequest: capability + target
runs
ResolvedCheck: argv, cwd, budget
never
model-authored shell strings
03

Observation is not a finding

A tool fact is an observation. Evidence is that fact bound to repository state and tool identity. A hypothesis is a falsifiable claim. A finding is promoted only after a fresh adjudicator tries to kill it. Agreement is never proof.

objects
observation, evidence, hypothesis, finding
status
PROVEN, SUPPORTED, HYPOTHESIS, REFUTED, STALE
ladder
E0 assertion through E5 resistant proof
04

Write when the evidence says so.

The loop can inspect, patch, and re-verify. Specialists do not debate the adjudicator. Candidates are selected by evidence. A blind verifier sees the defect, the patch, and the workspace, not the repair chat.

inspect
read-only until you ask to write
patch
explicit intent, evidence-selected
verify
fresh, blind, no repair chat

Same org. Two binaries.

Critique Code is @critiquedotsh/harness, binary critique-code. Critique CLI is @critiquedotsh/cli, binary critique. The CLI will not become Code. Other agents can call the sidecar, or you can run critique-code yourself.

From your agent

Critique CLI as a teammate

Wire Critique CLI into Codex, Claude Code, Cursor, or OpenCode. The managed runtime other agents already know. Local working tree, optional cloud, finish.v1.

cliteammate · v0.1.3
$ critique integrate --agent all

critique finish --intent "add retries and cover them"

As the agent

Use it like Claude Code or Codex

critique-code is the first-class agent command. Same kernel in the TTY or in a local browser via critique-code web. It writes, tests, repairs, and reviews inside the same harness.

cliagent · v0.1.3
$ critique-code

critique-code web

Bring your own API providers, or use Critique Inference.

Local browser

Leave the TTY. Keep the kernel on the machine.

critique-code web serves the same author session in a browser on 127.0.0.1. Composer, transcript, Review, Repair, Ship. The process still owns CAS writes, user-gated runs, and the /review gate. The tab can close. The kernel cannot move to Critique Cloud or to someone else's web app.

Recorded on critique-code web: write src/health.ts, approve git status, then Review. Loopback only. Author output is not Evidence.
webloopback · v0.1.3
$ critique-code web

Binds 127.0.0.1. Same /review gate as the TTY.

Interactive commands

Type / . The model never sees it.

In a critique-code session, type / or /help for a selectable picker. critique-code web exposes the same lines as buttons. Lines that start with / never go to the model. Spoken review, repair, ship, and exit match the typed commands when voice is on. An empty clip after /voice on returns to the keyboard.

critique-codeslash never reaches the model

Session

Voice

Proof

Config

End

↑↓ move↵ copy/help

Same class as Codex and Claude Code.

A general coding harness. The split is who owns the shell, what counts as done, and whether a test log is evidence. Snapshot numbers are the supplied DeepSeek V4 Flash slice, not a Critique evaluation.

Critique CodeCritique Code

Controller-owned harness

Job
Write, repair, and ship. Review is part of the same loop.
Who runs tests
Named capability. Harness resolves argv, cwd, timeout, network.
Stop condition
A finding status bound to evidence
What counts as proof
PROVEN or SUPPORTED, else it stays a hypothesis
30-task snapshot
20 passed
Cost per success
$0.028
Median time
132.2s, mid-pack, not a speed claim

Claude Code

Coding agent harness

Job
Long autonomous implementation
Who runs tests
The agent types a command and reads the log
Stop condition
Session goal reached
What counts as proof
Files written and checks the agent chose to run
30-task snapshot
16 passed
Cost per success
$0.195
Median time
122.7s, slightly quicker on this slice

Codex

Coding agent harness

Job
Create a diff and keep going unattended
Who runs tests
Sandbox plus whatever the model authored
Stop condition
Task complete, usable diff
What counts as proof
A diff you can accept
30-task snapshot
16 passed
Cost per success
$0.081
Median time
245.0s

Trial the harness on Verify.

Hosted Critique Code, free to measure. Fair-use and abuse safeguards still apply. Model availability can change as the beta evolves.

UnlimitedDeepSeek V4 Flash on Verify for the CritiqueCode beta.

100B+DeepSeek V4 Pro tokens to test the latest Pro route on real jobs.

Same model. Different harness. Different bill.

On the supplied DeepSeek V4 Flash snapshot, CritiqueCode passed 20 of 30 tasks. Claude Code and Codex passed 16. Cost per success was $0.028 against $0.195 for Claude Code and $0.081 for Codex. Median time was 132.2s, between Claude Code at 122.7s and Codex at 245.0s. Latency is mid-pack, not a wall-clock miracle.

Pass rate

DeepSeek V4 Flash, 30-task slice

  1. CritiqueCode66.7%
  2. Claude Code53.3%
  3. Codex53.3%
  4. OpenCode46.7%

Tasks passed

DeepSeek V4 Flash, 30-task slice

  1. CritiqueCode20 / 30
  2. Claude Code16 / 30
  3. Codex16 / 30
  4. OpenCode14 / 30

Cost per successful task

Lower bar is the spend. Longer fill is cheaper.

  1. CritiqueCode$0.028
  2. OpenCode$0.073
  3. Codex$0.081
  4. Claude Code$0.195

Median time per task

DeepSeek V4 Flash. CritiqueCode is not the fastest.

  1. Claude Code122.7s
  2. OpenCode129.7s
  3. CritiqueCode132.2s
  4. Codex245.0s

This is an externally supplied snapshot, recreated from the introducing-CritiqueCode post. Pass rates for Claude Code, Codex, and OpenCode are the 16/30, 16/30, and 14/30 task counts from that slice. It is useful context for why harness design changes cost and pass rate. It is not a Critique evaluation, and it is not a guarantee on your repository. CritiqueCode will be promoted on our own corpus: same task, same model, same plan, same verifier.

Questions

What is Critique Code?

An agentic coding harness. Same class as Codex and Claude Code: it writes code, runs tools, tests the change, and patches until the evidence says stop. It is also unusually good at review, because review is the same loop, not a sidecar. It is not a model, not a comment bot, and not Critique CLI.

How is Critique Code different from Critique CLI?

Critique CLI is @critiquedotsh/cli, binary critique. Critique Code is @critiquedotsh/harness, binary critique-code. Other agents can call the CLI, or you can run critique-code yourself. The CLI will not become Code.

How do I run it locally?

npm install --global @critiquedotsh/harness, then run critique-code or critique-code web in the repository you want to edit. The web UI binds 127.0.0.1 only. Run critique-code login and approve on the website to use Critique Inference with no pasted key. Interactive sessions keep stdout quiet; pass --json for the machine envelope. Keep @critiquedotsh/cli if other agents should call critique integrate --agent all or critique finish. OpenRouter Activity attributes Critique Code to critique.sh.

What is critique-code web?

A local browser client of the CritiqueCode author process. Run critique-code web in the repo you mean to edit. It binds 127.0.0.1 only. Same /review, /repair, and /ship as the TTY. It is not OpenCode's web UI, not the Critique CLI sidecar, and not a hosted session.

Which models can I use?

Default is Critique Inference (critique/auto) after website approval. You can still paste OpenAI, OpenRouter, Anthropic, Google, Qwen, and other keys. The harness is not locked to one lab.

How does Critique Code compare to Claude Code and Codex?

Same category: coding agent harnesses. On the supplied DeepSeek V4 Flash 30-task snapshot, CritiqueCode passed 20 of 30. Claude Code and Codex passed 16 of 30. Cost per success was $0.028 against $0.195 for Claude Code and $0.081 for Codex. Median time was 132.2s, between Claude Code at 122.7s and Codex at 245.0s. That snapshot is not a Critique evaluation. Critique Code is a general coding loop that also happens to be lethal at review.

Is Critique Code a replacement for Codex, Claude Code, or OpenCode?

You can run it instead of those loops. You can also keep them and have them call Critique CLI. Those are the two local options. Critique Code itself is not a PR comment bot sitting on top of someone else's agent.

How do I try it without installing?

Open Verify, pick CritiqueCode (Beta), and run a real job. For the beta, DeepSeek V4 Flash is free and unlimited. We are also offering over 100 billion DeepSeek V4 Pro tokens. Fair-use and abuse safeguards still apply.

Does Critique Code have voice mode?

Yes. In a critique-code session, /voice records one prompt and transcribes it with Qwen3 ASR 0.6B. /voice on keeps listening after each reply. Spoken review, repair, ship, and exit still run as commands. critique-code --voice starts already listening. Transcription bills $0.000003 per second of audio on the Inference API. The recorder is bundled ffmpeg; you do not need a system sox install.

What slash commands work in a session?

Type / or /help for a picker. Slash lines never go to the model. /login connects Critique Inference. /voice, /voice on, and /voice off handle speech. /review, /review all, /repair, and /ship run the evidence loop. /settings, /models, /keys, and /skills configure the session. /done ends after a review. /exit leaves. Unknown /foo is rejected, not forwarded as chat.