β‘ OMP Model Quickswitch
Current: nemotron (Nemotron-3-Ultra + Omni-Vision, Owl-Alpha fallback on all roles)
Updated: 2026-06-23 | SSOT: ops/omp-model-quickswitch.md
π― Config at a Glance
# ~/.omp/agent/config.yml β modelRoles (validated selectors from `omp models`)
modelRoles:
default: nvidia/nemotron-3-ultra-550b-a55b:free
smol: nvidia/nemotron-3-ultra-550b-a55b:free
plan: nvidia/nemotron-3-ultra-550b-a55b:free
advisor: nvidia/nemotron-3-ultra-550b-a55b:free
task: nvidia/nemotron-3-ultra-550b-a55b:free
commit: nvidia/nemotron-3-ultra-550b-a55b:free
vision: nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free
designer: nvidia/nemotron-3-ultra-550b-a55b:free
slow: nvidia/nemotron-3-ultra-550b-a55b:free# ~/.omp/agent/models.yml β OpenRouter provider override (8 lines, zero redundancy)
providers:
openrouter:
compat:
extraBody:
models: [openrouter/owl-alpha] # server-side fallback: rate-limit, downtime, moderation, contextπ Swap Profiles Instantly
swompswap # show current + available
swompswap nemotron # π nemotron-ultra (text) + omni (vision) + owl fallback
swompswap claude # π original claude-sonnet-4-6 / opus-4-8
swompswap free # π owl-alpha everywhere (text-only, 1M ctx)
~/bin/swompswapβ PyYAML, timestamps backup before write, zero deps beyond python3+pyyaml.
π§ Model Specs (Free Tier)
| Model | Ctx | Max Out | Modalities | Tools | Thinking |
|---|---|---|---|---|---|
nvidia/nemotron-3-ultra-550b-a55b:free | 1M | 65K | text | β | β (auto) |
nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free | 256K | 65K | text+img+vid+aud | β | β (auto) |
openrouter/owl-alpha | 1.05M | 262K | text only | β (no tool_choice) | β |
βοΈ Fallback Mechanism Comparison
| Mechanism | Layer | Triggers On | Config | Current |
|---|---|---|---|---|
compat.extraBody.models | OpenRouter server | any primary failure | models.yml provider compat | β active |
retry.fallbackChains | OMP client | 429/5xx/network only (β context) | config.yml retry: block | β unused |
contextPromotionTarget | model-level | context_length_exceeded ONLY (larger ctx sibling) | models.yml modelOverrides | β wrong tool |
Pick one.
extraBodywins: covers more errors, zero per-role verbosity, transparent.
β Pre-Flight Validated
| Check | Status |
|---|---|
models.yml schema | β clean β no registry errors in log |
| OpenRouter API key | β
stored in agent.db (cred id=3, api_key) |
| Selectors match registry | β
verified via omp models |
swompswap round-trip | β nemotronβclaudeβfree, detects correctly |
Auth on getAvailable() | β OpenRouter models are available |
π Go Live
# Restart OMP session (config loaded at init, not hot-reloaded)
# First turn will exercise: auth + selector + extraBody end-to-end
omp --allow-homeπ Notes
- Vision fallback to
owl-alphasilently drops image/video/audio β documented, accepted per user intent. :freeis an OpenRouter route suffix, NOT a thinking level β OMP handles it correctly.- Selectors are flat (e.g.
nvidia/nemotron-3-ultra-550b-a55b:free, NOTopenrouter/nvidia/...). - OMP flattens OpenRouter namespaces as provider prefix.
- Zero redundancy, zero hand-defined models β all three IDs exist in OMPβs bundled OpenRouter catalog.
Generated from live config. Single source of truth for OMP model topology.