A lightweight router analyzes your diff first and picks the most relevant experts — Security, Performance, Architecture, Correctness, Testing — each powered by a different model family. Never run a security agent on a CSS change again.
npm install -g review-harness
Agent = Model + Harness. The harness handles routing, skills, state, and output. The models do the thinking.
Each expert is a .md file with YAML frontmatter + system prompt. Drop one in ~/.crh/agents/ — no compilation, no restart.
The router sees a compact DiffSummary (file list, languages, key tokens), not the raw diff — so routing stays fast and accurate on large PRs.
Agents see the full skill catalog as metadata and call request_skill mid-review to pull in checklists. They can also synthesize new ones on-the-fly.
Run one agent across multiple model families — independent review, peer critique, then synthesis with agreement scores. Disagreement is real signal.
Every review is persisted to SQLite with FTS5. Full-text search across all past findings: crh history --search "sql injection"
Run crh serve --mcp and wire it into Claude Code. Call crh_review, crh_history, and more directly as tools.
quick |
standard |
deep |
|
|---|---|---|---|
| Target latency | < 30s | 30s – 2min | 2 – 10min |
| Max agents | 2 | 5 | all relevant |
| Ephemeral agents | ✗ | ✗ | ✓ |
| Fail threshold | critical | high | medium |
Exit code 0 = no findings above threshold. 1 = findings found. 2 = error. Override with --fail-on.
Each agent's model can be overridden per-agent in ~/.crh/config.json.
.md file in ~/.crh/agents/ — zero compilation neededOPENROUTER_API_KEYclaude process — no API key needed if you're already logged incodex process for OpenAI modelsnpm install -g review-harnesscrh initcrh reviewon:
pull_request:
types: [opened, synchronize]
# Add OPENROUTER_API_KEY to repo secrets
# A ready-to-use workflow is in .github/workflows/Open source, MIT licensed. Works with any git repo.
npm install -g review-harness