One interface for all your coding agents.
You use 5 different coding agents. Each has strengths:
| Harness | Strength |
|---|---|
| kilo | Fastest cold start, single-file edits |
| opencode2 | Headless, multi-file refactors |
| dsh | Free LLM credits, model sweeps |
| cline | Interactive, UI/frontend work |
| cline-cloud | Cloud, heavy compute |
Switching between them is manual. Model selection is ad-hoc. Credits are scattered.
Harness Router wraps all of them behind one command:
/harness route "fix the login bug" → kilo (single-file-edit)
/harness route "refactor the auth module" → opencode2 (multi-file-refactor)
/harness route "sweep models for best output" → dsh (model-sweep)
/harness run kilo "add error handling to api.py"Only top-10 models are allowed:
- Claude Sonnet 4 (Anthropic)
- GPT-4.1 (OpenAI)
- Gemini 2.5 Pro (Google)
- DeepSeek V4 Flash (DeepSeek)
- Qwen 3.6 Plus (Alibaba)
- GLM 5.3 (Zhipu)
- Llama 4 Maverick (Meta)
- Mistral Large (Mistral)
- Grok 3 (xAI)
- Kimi K3 (Moonshot)
Weak models are rejected. Free LLM credits are consolidated through dsh.
As a Hermes Agent plugin:
cp -r harness-router ~/.hermes/plugins/Or standalone:
python3 harness_router.py # run verifyfrom harness_router import route, route_task, run, status
# Route by capability
harness = route("single-file-edit") # → "kilo"
# Route by task description
result = route_task("fix the login bug in the frontend")
# → {"harness": "kilo", "capability": "ui-frontend", "reason": ...}
# Run a task
result = run("kilo", "add error handling to api.py", model="deepseek-v4-flash")
# → HarnessResult(harness="kilo", ok=True, ...)
# Check status
print(status())python3 verify.py
# ALL CHECKS PASSEDMIT