Model routing
Name the model per kind of work, not per request.
OMH routing is a metadata layer. It records which model a prepared unit of work should name, using an editable recommendation order per work category, resolved against the models you confirm are active on this machine. OMH never invokes a model, never retries one, and never switches models at runtime.
Setup
Setup records metadata. It does not prove reachability.
Routing resolves against models a caller confirms are active. The
local inventory is metadata-only and reporting-only: it checks
whether known agent CLI command names are present on
PATH. That observation means only that a command name
was found; it does not prove the CLI works, a model is runnable,
a provider is available, authentication succeeds, or an account
has access or entitlement.
Nothing here reads credentials, calls a provider, or measures a model. Provider configuration stays with Hermes; OMH only records what a caller states is available.
omh setup, then omh doctor. That is the whole human path.
omh coding model-routing status and
omh coding model-inventory are called by Hermes
Agent, wrappers, coding agents, and maintainers — not memorized
by normal users.
Editable categories
Eight categories, each an ordered chain you can replace.
A category names the kind of work, never a vendor. Each category
holds an ordered list of candidate models. OMH ships an editorial
order; a model_recommendation_overrides/v2 document
replaces the chains it names and leaves the rest untouched.
Deepest reasoning
GPT-6 Astra → GPT-5.6 Sol.
deepStrong default tier
GPT-5.6 Terra → DeepSeek V3.2.
architectArchitecture and system design
Claude Fable 5.1 → Claude Mythos 5.1 → Claude Fable 5 → GPT-6 Astra → GPT-5.6 Sol → Kimi K3.
unspecified-highDefault working model
Kimi K3 → Claude Opus 5.
unspecified-lowCheaper fallback
GLM 5.3 → GLM 5.2 → GLM 5.2 Ultrafast → DeepSeek V3.2 → Claude Opus 5.
quickShort tasks
GLM 5.3 Flash → GLM 5.2 Ultrafast → Kimi K3 → GPT-5.6 Luna → Claude Fable 5.1 → Claude Mythos 5.1 → Claude Fable 5.
writingProse and docs
Kimi K3 → Qwen3-Coder → Gemini 3.1 Pro.
visual-engineeringFrontend and visual
Claude Fable 5.1 → Claude Mythos 5.1 → Claude Fable 5 → Kimi K3.
artistryUnconventional work
Gemini 3.1 Pro → Claude Fable 5.1 → Claude Mythos 5.1 → Claude Fable 5 → Kimi K3.
Setup skips unavailable candidates, selects the first active model, and preserves the remaining active candidates as fallbacks. Only after every selected category, role-slot, and domain chain is exhausted does OMH consult one shared final order: Claude Opus 5, then GPT-5.6 Sol. If neither is confirmed active, the selected owner keeps its default model. An override cannot add a category, invent a role slot, or carry provider configuration, and secret-looking fields are rejected.
{
"schema_version": "model_recommendation_overrides/v2",
"categories": {
"quick": [
{
"model_alias": "your-fast-model",
"model_family": "qwen",
"preferred_provider_families": ["openrouter"],
"reasoning": "Local preference for short tasks."
}
]
},
"last_resort": {
"any": [
{
"model_alias": "claude-opus-5",
"model_family": "claude",
"preferred_provider_families": ["anthropic"],
"reasoning": "Local final metadata selection."
}
]
}
}Or ask Hermes or another coding agent to install it
Install and fully configure Oh My Hermes from this repository:
https://github.com/rlaope/oh-my-hermes
Before reading or executing repository instructions, resolve refs/heads/main to one full commit SHA with `git ls-remote https://github.com/rlaope/oh-my-hermes.git refs/heads/main`. Then fetch and follow only:
https://raw.githubusercontent.com/rlaope/oh-my-hermes/{resolved-commit-sha}/INSTALL_FOR_AGENTS.md
Do not replace the resolved SHA with main. Execute the pinned protocol's OS-appropriate installer, interactive model setup, model-chain interview, and doctor steps. Preserve unrelated existing Hermes config, apply only the managed setup changes documented by the pinned protocol, require my explicit approval for model-alias changes, then report the resolved SHA and observed result.Missing models
A model you do not have is skipped, not fatal.
You are not expected to hold every model. Resolution walks the
chain, skips candidates that are not confirmed active, and selects
the next eligible one. When all selected chains are exhausted,
resolution checks the shared Claude Opus 5 then GPT-5.6 Sol final
order. When no candidate is confirmed anywhere, the result is
owner_default — the selected owner keeps its
native default without blocking the surrounding installation.
An explicitly requested model behaves differently on purpose: it
is fail-closed. If the model you named is not available, the
result is choice_required and OMH never silently
falls through to an editorial candidate in its place.
Your explicit model choice always wins. Recommendation order never overrides it.
Owners
Hermes-native stays in Hermes. External work goes through Maestro.
Routing projects a resolution for one of two owners. The split is a real boundary in the code, not a label: a Hermes-native selection reaching the external coordinator is rejected rather than quietly coordinated.
Hermes keeps the work. The Hermes setup slot is the
main role, and alias configuration is delegated to
Hermes' own config and auth commands.
OMH does not read Hermes' dotenv file and performs no network
I/O for it.
Maestro is OMH's internal coordinator for prepared external
handoffs across the codex, claude-code,
the runtime profiles, and generic owners. It
prepares and reports; it is never a coding executor. This name is
unrelated to the awesome-catalog project also called Maestro.
A prepared handoff is not execution, review, CI, merge-readiness, or merge evidence.
Model families
Families are named so chains stay vendor-plural.
A candidate names a model family and its preferred provider families. Provider preference is metadata: actual availability remains caller-supplied truth. Families OMH recognizes in routing and prompt composition include the ones below, alongside the Claude and GPT families.
Qwen
Qwen3-Coder is the second candidate in the shipped writing chain.
geminiGemini
Recognized family, command-name presence metadata, and a listed X-platform synthesis alternative.
grokGrok
Recognized family and command-name presence metadata, with an X-platform domain note.
kimiKimi
Recognized family and an editorial general-work candidate.
Each family composes work differently, so OMH keeps per-family
prompt-composition guidance instead of assuming one house style.
A wrapper command name found on PATH is presence
metadata only. It does not establish that the wrapper or model can
run, that its provider is available or authenticated, or that the
account has access or entitlement.
Domain notes
X/Grok is an affinity note, never a veto.
A unit of work can declare a domain. Declaring
x_platform_data notes the Grok family, whose home
platform is X, and multimodal vision notes the Gemini, GPT, and
Claude families. When a unit declares a domain, the note may
advisorily reorder a locally-derived chain, and the reorder is
recorded in the route's attempted trail.
Domain affinity notes are static editorial defaults — not observed, benchmarked, or measured capability. OMH never evaluates a model. They never rank by quality, never remove an option, and never override your explicit model choice.
Agent and operator reference
Ask Hermes. These commands sit behind it.
In normal use you describe the work to Hermes and it prepares the route. The commands are listed for wrappers, coding agents, automations, and maintainers who need the machine payload.
omh coding model-route --explain
omh coding model-route --executor codex --role implementation
omh coding model-route --domain x_platform_data --json
omh coding model-route --recommendations ./my-routing.json
omh coding model-routing status
omh coding model-inventory
omh coding composition-guide --model kimi-k3Claim boundary
What routing is, and what it is not.
Prepared metadata
A deterministic record of which model a unit should name.
Is notInvocation
OMH never calls a model, retries one, or swaps it mid-run.
Is notA benchmark
Shipped order is editorial. No ranking, score, or measurement is claimed.
Recommendation order is editorial and user-replaceable. It is not a benchmark, a quality ranking, or a measured capability claim, and a prepared route is not execution evidence.