What this does: from the OmniRoute dashboard alone, make cu/grok-4.5 appear in Claude Code’s /model list and route Claude’s effort onto Cursor’s real models (-medium / -high / -xhigh).
Why you need three UI steps: Cursor has no bare grok-4.5. A custom model makes the name exist; Expose makes Claude list it; Reasoning routing stops 400 AI Model Not Found by rewriting to a real Cursor id.
Assumes: OmniRoute dashboard open (default http://127.0.0.1:20128), Cursor IDE provider connected and enabled, Claude already pointed at OmniRoute with gateway model discovery on.
Companion: if Expose looks On but Claude still has no mirror, use the sqlite fix in omniroute-cursor-grok-in-claude.md (known UI key mismatch).
- Open Providers → Cursor IDE.
- Under Available Models / playground model picker, confirm you see
grok-4.5-medium,grok-4.5-high,grok-4.5-xhigh— and not a baregrok-4.5yet. - In Claude Code,
/model— nocu/grok-4.5 (OmniRoute).
- Go to Providers → Cursor IDE
(/dashboard/providers/cursor) - Scroll to Custom Models.
- Fill:
- Model ID:
grok-4.5 - Display Name: optional (e.g.
Grok 4.5) - Leave API Format = Chat Completions, Target Format = Default
- Model ID:
- Click Add.
- Confirm the list no longer says “No custom models added yet” and shows
grok-4.5.
Worked if: playground Model dropdown now includes grok-4.5 (catalog may show it as cu/grok-4.5 elsewhere).
Still on Providers → Cursor IDE, scroll to Expose in Claude Code (claude/…).
- Provider default: leave Inherit (or Off). Do not turn the whole provider On unless you want every Cursor model mirrored.
- Find Override for
cu/grok-4.5(or add one):- Model id field → type
cu/grok-4.5(trygrok-4.5if the page only accepts bare ids) - Add override → set the dropdown to On
- Model id field → type
- Leave other grok effort overrides Off unless you want them (effort-suffixed ids usually won’t appear in Claude’s picker anyway).
Worked if: quit and reopen Claude (OmniRoute profile), run /model, and you see cu/grok-4.5 (OmniRoute) under From gateway.
If the override says On but Claude still doesn’t list it: the dashboard sometimes saves the wrong internal key (cursor/… instead of cu/…). Don’t keep clicking — use the fix in the companion doc, then re-check /model.
Without this, picking cu/grok-4.5 in Claude returns API Error: 400 AI Model Not Found.
- Go to Configuration → Global Routing
(/dashboard/settings/routing) - Scroll to Reasoning routing policies.
- For each row below, fill the form and click Add rule:
Same on every rule
| Field | Choose |
|---|---|
| Scope | Model |
| Source model | *cu/grok-4.5 |
| Effort mode | Inherit client |
| Routing target | Other model |
| Thinking budget | Preserve |
| Priority | 10 |
One rule per effort
| Name | Source effort | Target model |
|---|---|---|
cu grok → medium (missing) |
Not specified | cu/grok-4.5-medium |
cu grok → medium |
medium | cu/grok-4.5-medium |
cu grok → medium (low) |
low | cu/grok-4.5-medium |
cu grok → high |
high | cu/grok-4.5-high |
cu grok → xhigh |
xhigh | cu/grok-4.5-xhigh |
cu grok → xhigh (max) |
max | cu/grok-4.5-xhigh |
- On the same card, Simulate rule:
- Model:
cu/grok-4.5 - Effort: high
- Click Simulate without upstream
- Result must route to
cu/grok-4.5-high
- Model:
Worked if: the rule list shows all six enabled, and simulate matches the table.
- Providers → Cursor IDE → Playground
- Model: pick
grok-4.5if listed, or use Claude for the real path below - Prefer the Claude path — that’s what you actually care about
- Restart Claude on the OmniRoute profile
/model→ selectcu/grok-4.5 (OmniRoute)- Send:
Reply with exactly: OK - Open OmniRoute Dashboard → Logs (or Analytics / call logs)
- Latest request should show routed model
grok-4.5-medium(not baregrok-4.5), status 200
- In Claude:
/effort high(or use the effort control if shown) - Send another short prompt
- In Logs, routed model should be
grok-4.5-high
- Global Routing → Reasoning routing policies → Delete each
cu grok → …rule - Providers → Cursor IDE → Expose in Claude Code → set
cu/grok-4.5override to Off or remove it - Custom Models → delete
grok-4.5 - Restart Claude so
/modeldrops the entry
| What you see | Likely cause | What to do in the UI |
|---|---|---|
Custom model added; Claude has no cu/grok-4.5 |
Expose not effective | Re-check Expose override = On; restart Claude; if still missing, companion doc sqlite fix |
| Claude lists it; first message = 400 AI Model Not Found | No remap rules | Finish step 3; re-run Simulate |
| Simulate says no match | Wrong Source model pattern | Use exactly *cu/grok-4.5 (not *grok-4.5) |
| Always medium; effort ignored | Missing high/xhigh rules | Add those Source effort rows |
Logs still show bare grok-4.5 |
Rules disabled or not saved | Confirm toggles On; Add rule again; hard-refresh the routing page |