Skip to main content

What you will set up

One Orcacode session that uses two providers at once:
  • The parent plans on your ChatGPT subscription (openai-codex). It reads, breaks the task up and checks the results.
  • Fast and mid workers run on cheaper models through OpenRouter. They do the edits, the shell work and the reading.
  • The frontier tier stays on the subscription, for work that needs the stronger model.
The models come from three makers: OpenAI, DeepSeek and Qwen. Every transcript and number on this page comes from one setup in a throwaway copy of a small test repo. A real run on 2026-10-15 with orcacode 0.9.0.

1. Install

Run orcacode from the repo you want the tools rooted in.

2. Put the parent on your ChatGPT subscription

Type /provider and pick openai-codex.
If you already use the Codex CLI, Orcacode reads that login where it is, so the row says signed in with ChatGPT and there is nothing to do. Without one, picking the row starts a device login: Orcacode prints a code to enter at https://auth.openai.com/codex/device. No API key either way.
Then pick the parent’s model and reasoning effort with /models. Do this even if the model shown is the one you want: /models saves it, and in this run a provider switch alone did not. The next launch started on gpt-5.4.

3. Put the workers on OpenRouter

Export your OpenRouter key in the shell you start Orcacode from:
The /provider picker above already shows key from $OPENROUTER_API_KEY. Workers read the key themselves, so the parent stays on the subscription. You do not need to switch it to OpenRouter. Open /subagents. Each tier is one row. Pick a row, pick a provider, type to filter its catalog and select a model.
The fast tier is called flash in messages and in config.json. This setup uses one model per tier: Setting a tier’s model is not enough: set default route to preference, or every worker runs on the parent’s model. Open the default route row:
With preference, the parent picks one of your tier models for each worker and cannot name any other. The finished list:
These settings are saved and apply to later sessions.

Optional: a local worker

The local tier talks to an OpenAI-compatible server at http://localhost:11434/v1, which is where Ollama listens. It needs no key. Start the server and pull a model first; the tier’s catalog is whatever the server lists. Then pick local model, then local, then the model. This run left the local tier unset.

4. Start in orchestrate mode

In a running session, /mode orchestrate does the same. The status line shows the parent’s provider, model, effort and mode:
In orchestrate mode the parent cannot run shell commands. It reads, makes small edits and hands the real work to workers. Orchestrate mode lists exactly what it may do.

5. Run one task that fans out

The prompt names the tiers. With preference, the parent would choose by itself; naming them keeps the work on the cheap ones.
Starting a worker needs your approval. a allows it for the rest of the session. The workers’ own tool calls do not ask.
The parent writes a task for each worker and starts all three at once. Each row ends with the model it runs on:
The two fast workers finished in seconds. As each one reports, the parent reads the files it touched to check the result:
The mid worker did not finish. It used all 24 of its model steps writing and compiling test files, and stopped. This is the right-hand pane of the agent panel:
The parent read the file the worker left behind and sent a second mid worker to repair it:
When it finished, the parent summarized:
Check that last line against git status:
The two fixes are right, but the first mid worker also left compiled test binaries and a test file in src/. The parent sees each worker’s final report, not every command it ran, so its summary missed them. Review git status after a delegated run. A worker’s step budget is the model steps row in /subagents.

6. What each model spent

This run

Orcacode counts the parent and each worker separately. There are three places to look. The agent panel, for each worker. While workers run, the status line shows agents N ↓. Press ↓, move to it with → and press enter. Each worker shows its provider, model and tokens in the right-hand pane. in leaves out tokens read from the provider’s cache.
/usage, for the parent. It counts the parent’s own model calls and none of the workers’. The ↑ ↓ figures on each done line are the parent’s too.
--json, for both in one file. The same task, run headless on a fresh copy of the repo, with the prompt above saved in prompt.txt:
The closing summary event carries the parent’s usage. Each tool_result from subagent carries one worker’s usage and the route it ran on. This jq filter prints them side by side:
This time all four workers finished on their first try. The headless run left only the two intended files changed. Orcacode 0.9.0 shows no dollar amounts on screen. The panel shows tokens per worker, and only --json carries cost: OpenRouter’s cost for the parent’s own requests when the parent runs on OpenRouter, never for a worker. So the worker costs below are computed from the token counts at OpenRouter’s prices on 2026-10-15, for the headless run: The parent and the frontier tier ran on the ChatGPT subscription at no extra cost.

When every tier is paid

Because the parent ran on the subscription, this run cannot show what the split costs when every model is billed. A run that was billed per model through OpenRouter on purpose can: the docs review of 2026-09-24, in okikorg/orca-harness PR #32 (the run’s commit is 57ea044).
  • Models: GPT-6 Astra orchestrated through OpenRouter (status bar: openrouter:openai/gpt-6-astra). 100 reviewers ran on GPT-6 Luna, and 25 editors, a summary and the final checks on GPT-6 Sol.
  • Fan-out: that run used the workflow tool, not single subagent calls like this page.
  • Cost: about $5.75 in all.
    • Astra was about $2.94, priced from its usage panel (111 in, 11,566 out, 1,420,720 cache read, 74,880 cache write) at OpenRouter’s list rates.
    • Sol was $2.08 and Luna $0.73. Those two are OpenRouter’s day totals for 2026-09-24, and no other local session used those models that day.

Next

  • Subagents: every routing policy, depth, step and time budgets, background workers and sidekicks.
  • Orchestrate mode: what the parent may still do itself, and approvals in headless runs.
  • Providers & models: every provider, its key and where settings are saved.