The model is a swappable backend.

A model-agnostic agent harness. The agent loop, tool calling, MCP, subagents, context compaction, hooks and permissions live in one layer — so switching provider mid-session costs nothing.

or install the CLI
npm install -g oharness
The browser frontend, driving the same engine as the terminal.
The browser frontend, driving the same engine as the terminal.
Speaks natively to
AnthropicOpenAIGoogle GeminiOllamaLM StudiovLLMAny OpenAI-compatible endpoint
3
Runtime dependencies
0
Vendor SDKs
485
Tests passing
4
Frontends, one engine
What the harness owns

Everything around the model, so the model stays replaceable.

Providers

Anthropic, OpenAI and every OpenAI-compatible endpoint, Google Gemini. Native fetch and SSE against each vendor's HTTP API — no vendor SDKs, no adapters to update.

Tool calling

Define a tool with zod. JSON Schema is generated and arguments validated for you, and whether calls run in parallel or in sequence comes from the tool's own declaration.

MCP

A JSON-RPC client built in — stdio and Streamable HTTP, no MCP SDK. Servers are discovered and their tools namespaced automatically.

Context

Compaction that cuts at a safe point rather than mid-exchange, sessions persisted and resumable, and recall across transcripts already archived.

Permissions

Deny beats allow, and even bypass. Four modes, rules that fail at parse time instead of at 3am, and a prompt that is injected — so a scheduled run never waits on a human.

Subagents

Delegate to isolated contexts, run them in parallel, and keep the conclusion instead of the transcript that produced it.

One session, every provider

Switch model mid-session. Nothing is converted.

Connect a vendor with a key, or point at Ollama, LM Studio or your own vLLM server. Models are discovered from each vendor's own endpoint, so the list is never a stale copy shipped inside the package.

Read the docs
The model panel: local runtimes and hosted vendors in one list.
The model panel: local runtimes and hosted vendors in one list.

Download

Desktop builds for every platform.

Download desktop
npm install -g oharness
  • macOS
  • Windows
  • MIT licensed