Skip to main content
Ori Harness runs the agent CLI you already use on OpenRouter. You run one command, and your agent starts with OpenRouter credentials, models, and settings in place. You don’t change how you work. Ori Harness is part of Ori, the OpenRouter family of tools for putting agents to work. For a tour of what it does, see the Ori Harness page. Every ori command launches your agent with OpenRouter credentials and organization settings applied to that session, so keep launching through Ori. If you’d rather work inside Claude Desktop, it also connects to OpenRouter natively via gateway mode with an API key — see the Claude Desktop integration guide.

Install Ori

That’s the only install command you need. If you run an agent that isn’t on your machine, Ori asks to install it, then starts it. Every ori command on this page works the same on all three platforms.

Let your coding agent set it up

You don’t need to run the setup yourself. Give this instruction to the coding agent you already use:
That command fetches the install-ori-harness skill, and the skill gives the agent each step. The agent installs Ori, checks that the ori command works, signs you in with OAuth, and then starts your agent CLI through Ori. If your agent is connected to the OpenRouter MCP server, you can run /install-ori-harness in the agent instead of pasting the command above.

Update Ori

To update Ori, run:

Bring your own agent

Run Antigravity CLI, Claude Code, Cline, Codex, Crush, Factory Droid, fx, Grok Build, Hermes, Kilo Code, Muse Code, omp, OpenCode, OpenWork, Pi, Prime Agent, Unreal Agent, ZCode, or DeepSeek Harness with commands you already know:
Run ori --help to see the full list for the version you have installed. Each command starts the real agent CLI on your machine. Ori uses the CLI on your PATH, and asks to install it if it’s missing. ori dsh is the one exception: it sets up DeepSeek Harness instead of starting it. See DeepSeek Harness.

DeepSeek Harness

DeepSeek Harness (dsh) doesn’t start and stop like the other CLIs, so Ori sets it up instead of starting it:
This points your global DeepSeek Harness config at OpenRouter. After that, run dsh the way you always do.

Set up a harness with ori harness

An ori <agent> command puts one session on OpenRouter. ori harness setup makes it the default instead: it writes the OpenRouter settings into the agent’s own config, so the agent’s desktop app and its plain command both run on OpenRouter. ori harness reset puts back what you had.
ori harness setup works only for the harnesses in this list. It doesn’t configure any other app or IDE: Each setup needs a saved login from ori login. A key that’s set only in your shell doesn’t work, because the agent’s app reads its settings later, outside your shell. Setup covers the harnesses in the table above and no other app or IDE. If your organization manages Claude settings, setup stops and names the file; use ori claude instead.

Move a Claude Code setup to Codex

ori harness migrate reads your Claude Code setup and writes the Codex equivalent. Without --apply, it only reports what it would write:
  • CLAUDE.md becomes AGENTS.md, with each @-imported file appended after it.
  • Skills are copied with their files.
  • MCP servers are appended to Codex’s config.toml. MCP env and header values aren’t copied; each becomes a variable that Codex forwards by name, so export it before you start Codex.
  • Hooks, plugins, permissions, slash commands, subagents, and output styles are reported as unsupported.
By default, the command reads and writes the current project. Add --scope user to migrate ~/.claude and ~/.claude.json into your user-level Codex setup instead. --apply never replaces an existing Codex file or MCP server, and it backs up any file it appends to.

Sign in instead of managing keys

Run an agent and Ori opens a browser so you can sign in with your OpenRouter account. It uses OAuth PKCE, so there’s no new account and no key to create or paste. You can also sign in first:
Your models, credits, and organization settings come with your OpenRouter login. You don’t need a separate provider key for each agent.

Any agent, any model

Pass --model and any OpenRouter model ID:
For ori dsh, --model sets the default model in your dsh settings and starts nothing. For ori grok, --model is Grok Build’s own flag; it already takes OpenRouter model IDs, and Ori passes it straight through. Kilo Code and omp expect provider-scoped IDs, so Ori prefixes the model with openrouter/ for you. Without --model, ori kilo defaults to openrouter/auto and ori omp selects the OpenRouter provider and keeps omp’s own default model. You set the model with a single flag, and Ori sends anything after its own flags to the agent unchanged:
You keep your usual agent flags, and you can pick a model from any provider in the OpenRouter catalog.
Put your agent’s normal flags after Ori’s flags. Ori passes them to the agent unchanged.

Live model catalog and routing toggles

Every agent you launch through Ori uses your OpenRouter model catalog. There are two levels, depending on what the agent’s own app exposes:

In-session catalog and toggles

For Pi (ori pi), Prime Agent (ori prime-agent), and DeepSeek Harness (ori dsh), Ori hooks the agent up to your own OpenRouter model catalog at launch:
  • The /model list comes from your catalog, so it stays current and leaves out models your organization’s policies block.
  • You turn on fast routing with /fast: Anthropic fast mode for Claude models, the Fast service tier for OpenAI models, and throughput-sorted (:nitro) routing for the rest. On Prime Agent, use /speed instead, because Prime Agent has its own /fast command.
  • You turn on ZDR-only mode with /zdr, so your requests go only to providers that keep no data.
Grok Build (ori grok) loads the same catalog into its own model picker, so you don’t need to run grok login, and its model IDs are OpenRouter model IDs. It doesn’t have the /fast and /zdr toggles. Muse Code (ori muse) also gets your catalog: Ori seeds Muse Code’s model cache from OpenRouter before it starts, so its in-session model picker lists OpenRouter model IDs. Muse Code has no /fast or /zdr toggles either.

Model lists served by OpenRouter

For Claude Code (ori claude) and Codex (ori codex), OpenRouter serves the model list that the agent’s own picker shows. If your organization sets a model list for the agent, the picker shows only the listed models you can use, in list order, and OpenRouter refuses any other model, including one you name with --model or /model. Without a list, the picker shows every model your key can use. See Claude Code and Codex for the settings.

Launch-time catalog validation

The other agents don’t have the in-session toggles, because they don’t expose an extension surface Ori can write into. You pick a model with --model instead, and Ori validates the model ID against your catalog at launch: near-miss slugs are corrected (with a notice), and unknown IDs pass through untouched.
All OpenRouter organization guardrails, workspace budgets, routing, and billing apply identically at both levels.

Guardrails, on every agent

Set guardrails, allowlists, and per-workspace permissions on your OpenRouter organization, and set workspace budgets there too. OpenRouter applies them to every request, no matter which client sends it, including an agent running through Ori.

One bill across agents

You pay for Ori traffic through OpenRouter’s normal billing and activity reporting. You see it next to your other traffic in Usage Accounting and Activity Export. There’s no separate Ori bill.

Frequently asked questions

Do I need an OpenRouter API key?

No. Ori signs you in with OAuth PKCE through your OpenRouter login. There’s no key to copy or paste.

Do I need to change my agent workflow?

No. Keep the same agent, commands, and flags.

Which agents are supported?

Antigravity CLI (ori antigravity), Claude Code (ori claude), Cline (ori cline), Codex (ori codex), Crush (ori crush), Factory Droid (ori droid), fx (ori fx), Grok Build (ori grok), Hermes (ori hermes), Kilo Code (ori kilo), Muse Code (ori muse), omp (ori omp), OpenCode (ori opencode), OpenWork (ori openwork), Pi (ori pi), Prime Agent (ori prime-agent), Unreal Agent (ori unreal), ZCode (ori zcode), and DeepSeek Harness (ori dsh) work today. Run ori --help for the list in your installed version.