Harnesses and models
The agent is the durable noun; the harness and model are adjectives you pick at launch time. tally continue vision --claude-code --fable-5 today, tally continue vision --codex --gpt-5.5 tomorrow: same identity, same memory, same history, different equipment. This page explains the harness and model axes and how Tally validates the combination you asked for.
The three v1 harnesses
Section titled “The three v1 harnesses”Launch supports three harnesses, compiled in and verified:
claude-code: runs Anthropic models.pi: multi-provider, so the model axis is widest here.codex: runs OpenAI models.
All three adapters are built-in Rust. Other harnesses can be added with a declarative adapter (a TOML manifest describing the harness’s session store), managed via tally adapter.
Two flag surfaces, one meaning
Section titled “Two flag surfaces, one meaning”Every launch verb accepts the harness and model in a canonical form and a sugar form. They are equivalent; use whichever reads better to you:
# canonicaltally continue vision --harness pi --model gpt-5.5
# sugar: harness shortcut + model aliastally continue vision --pi --gpt-5.5tally continue vision --claude-code --fable-5tally continue vision --codex --gpt-5.5The sugar flags are shortcuts, not a separate system; --claude-code means --harness claude-code and nothing more.
How combos are validated
Section titled “How combos are validated”Three tiers, from strongest to weakest guarantee:
- Marketed, known model shortcuts are guaranteed to launch. They are validated against the installed harness;
--fable-5resolves toclaude-fable-5, for example. These are the combos shown in these docs, and only these. - Other model tokens are family-validated. Tally checks the token belongs to a plausible family for the harness, and the harness itself makes the final model check at launch.
- Clearly invalid pairs are rejected before anything is written. An OpenAI model on claude-code fails immediately: no context is materialized, no session store is touched, nothing to clean up.
Seeing the command without running it
Section titled “Seeing the command without running it”Every launch verb takes --print-cmd, which prints the composed harness command instead of launching it. Use it to check what Tally is about to run, or to wire the command into something else:
tally continue vision --pi --gpt-5.5 --print-cmdThe honest caveat: continuity is not capability
Section titled “The honest caveat: continuity is not capability”The swap preserves who the agent is: identity, memory, history, character. It does not make capabilities uniform. A log built under a strong model, continued under a weaker one, degrades; harnesses differ in the tools they expose. Portability is of the agent, not its powers, and a harness or model swap is never free. We say this here so no launch flag has to imply otherwise.
Where next
Section titled “Where next”- Continue, start, and run : the three verbs these flags attach to
- Building adapters : add a harness at the session layer
- tally continue : the full flag reference