Retired. Model Router is superseded by Prism in Chromeria, which routes delegated work itself (note). The T3 routes this runner calls no longer exist, so it cannot run. The repository is archived; the text below describes the last release, 0.44.1.
The runtime behind Prism in Chromeria (the T3 Code fork). A planner thread
hands an authorized task to the durable runner, and a dispatcher carries it
through worker threads to one open PR. Every turn runs as a T3 child thread
of the planner thread. AgentsMD owns workflow, authority, and proof; Model
Router owns the routes and lanes in runner/policy.py,
while T3 decides which models are enabled, their usage windows, and the
Prism role preferences. Terms are in GLOSSARY.md.
Install the complete plugin from an exact released source. The package is
the runtime: bin/model-router and runner/. It carries no Skill; usage
guidance lives in Chromeria's Prism tool descriptions (prism_submit,
prism_status, prism_questions, prism_answer), which call the newest
installed release.
You need Python 3.11 or newer, Git, and a reachable T3 server (the Chromeria fork) whose providers can run the routes, with a bearer token; RUNNER.md gives the server URL and token lookup order.
Once Toolybara promotes a release into ToolboxMD Marketplace, install it through your host's native plugin path. To compare the latest source release with the promoted Marketplace release:
gh release view -R toolboxmd/model-router --json tagName --jq .tagName
gh api repos/toolboxmd/marketplace/contents/catalog.json \
-H 'Accept: application/vnd.github.raw' \
--jq '.plugins[] | select(.name=="model-router") | .release'When the source release tag is newer than the Marketplace tag, that release is not promoted yet. Install commands:
# Codex
codex plugin marketplace add toolboxmd/marketplace
codex plugin add model-router@toolboxmd
# Claude Code
claude plugin marketplace add toolboxmd/marketplace
claude plugin install model-router@toolboxmd
# Grok Build
# Add the ToolboxMD marketplace first if it is not already configured.
grok plugin marketplace add toolboxmd/marketplace
grok plugin install model-router --trustMarketplace records the exact source tag, commit, and Project Record digest.
Provider publication and fresh-host acceptance remain separate proof.
Set MODEL_ROUTER_ROOT to the installed plugin's root, found per host with
jq:
# Codex: the cache folder is named after the installed version
MODEL_ROUTER_ROOT="$HOME/.codex/plugins/cache/toolboxmd/model-router/$(codex plugin list --json |
jq -r '.installed[] | select(.pluginId=="model-router@toolboxmd") | .version')"
# Claude Code
MODEL_ROUTER_ROOT="$(claude plugin list --json |
jq -r '.[] | select(.id=="model-router@toolboxmd") | .installPath')"
# Grok Build
MODEL_ROUTER_ROOT="$(grok plugin list --json |
jq -r '.[] | select(.name=="model-router") | .path')"Then verify:
"$MODEL_ROUTER_ROOT/bin/model-router" --version
"$MODEL_ROUTER_ROOT/bin/model-router" --helpInstalling the package starts no service or model request and does not grant delivery authority.
A VERSION change merged into main starts the release workflow.
It runs the same complete deterministic proof used for pull requests, then
validates the exact commit with released AgentsMD versionctl before creating an
annotated tag and stable GitHub Release. Tests run offline against T3 fakes;
they require no installed agent plugins, credentials, or T3 server. Pull-request proof has
read-only permissions; only the main-branch publishing job can write releases.
.version-policy.json authorizes this through
githubReleasePolicy: on-version-commit.
Release runs queue instead of replacing waiting runs, up to GitHub's limit of
100 pending runs.
Toolybara already enrolls Model Router and discovers published releases in its hourly Marketplace scan. No additional source-repository credentials are needed. Check the resulting Marketplace version separately; a source release alone does not prove promotion, installation or behavioral verification.
If publication fails, rerun the failed workflow. It can finish a release whose
annotated tag already identifies the same exact commit. Conflicting tags,
draft releases and prereleases stop without replacement. A manual workflow
dispatch on main also supports recovery; other branches cannot publish.
Vision · Mission · Objective. Active work belongs in GitHub Issues.
The bundled bin/model-router accepts prepared work from a planner in a T3
thread, runs a Luna dispatcher and its workers as child threads of that
planner thread, asks the planner in its thread when judgment is needed, and
posts the end state there. Before each step it reads T3's Prism provider
snapshot: models turned off in T3 leave routing, full usage windows rest
their routes until the reset, and Prism role preferences reorder the lanes.
Saved jobs survive planner exit and controller death without starting a
second writer. It is not started automatically. See RUNNER.md.
"$MODEL_ROUTER_ROOT/bin/model-router" --state-dir DIR submit --request-id ID --task-file TASK.json \
--workspace PATH --planner-session SID --planner-t3-thread TID --lane default --start
"$MODEL_ROUTER_ROOT/bin/model-router" --state-dir DIR status --request-id ID
"$MODEL_ROUTER_ROOT/bin/model-router" --state-dir DIR recover --request-id ID