New OpenRouter · OpenHost · Local

Open coding agent. Your models. Anywhere.

Tools, permissions, routing, and recovery — then the model. Use OpenRouter for every model, host your own on OpenHost, or run fully local. Same Harnes runtime for all three.

Full name OpenHarnes (one s). Call it Harnes. CLI: harnes.

npm install -g @openharnes/harnes

Requires: Node 20+ · then pick OpenRouter, OpenHost, or local

$ npm install -g @openharnes/harnes
installed harnes 0.1.7
 
$ harnes
Welcome to Harnes · Qwen3 Coder 30B · auto
> fix the failing test in api/routes.ts
Running…
> read api/routes.ts
> bash npm test
done. 1 file changed.

Three ways to bring a model

Harnes is the agent. You choose where inference runs — we support all three.

1 · OpenRouter
Use their catalog — all models, one key. Best default for trying Qwen, DeepSeek, Claude, GPT, Gemini, and more without hosting anything.
OPENROUTER_API_KEY
2 · OpenHost
Host your own model on openhost.sh. Point Harnes at the OpenHost OpenAI-compatible endpoint when you want private / self-hosted weights in the cloud.
HARNES_MODEL_BASE_URL
3 · Local
Run fully on your machine with Ollama (or any OpenAI-compatible local server). No cloud key required.
http://127.0.0.1:11434/v1

How it works

Same agent loop everywhere. Swap the model endpoint, not the harness.

Model docs →

Runtime first, model second

Quality comes from tools, permissions, routing, and recovery — then whatever model you plug in. No seat license. MIT end to end. OpenHost stays a separate product for hosting; Harnes is the agent that talks to it.