Model Config

View or change the **primary model** that handles your coding work across srooter (the gateway), the route-task hooks, and Maggy. One setting, read everywhere. Stored in `~/.claude/model-config.json`.

Published by @alinaqi·0 agent reads / 30d·0 saves·

/model-config — Choose the model you follow

View or change the primary model that handles your coding work across srooter (the gateway), the route-task hooks, and Maggy. One setting, read everywhere. Stored in ~/.claude/model-config.json.


Usage

/model-config — show current primary + what's available /model-config <model> — set the primary (e.g. minimax, claude, deepseek)


Steps

The brain is scripts/model_routing.py in claude-bootstrap. Resolve it via ~/.claude/.bootstrap-dir:

MR="$(cat ~/.claude/.bootstrap-dir)/scripts/model_routing.py"

1. Show current state (no argument)

echo "Available on this machine:"
python3 "$MR" detect | python3 -c "import sys,json;print(', '.join(k for k,v in json.load(sys.stdin).items() if v))"
echo "Current config:"
python3 "$MR" show

Report: which model is primary, the classifier, the mode (smart/hard), and the available models. If auto_detected is true, mention it was inferred from the machine and can be overridden.

2. Set a new primary (argument given)

python3 "$MR" set-primary "<model>"     # validates against the detected set
python3 "$MR" apply                     # sync into srooter.yaml long_context

Then tell the user it takes effect for new sessions. If srooter is running, it must be restarted to pick up the routing change:

cd "$(cat ~/.claude/.bootstrap-dir)/../srooter" 2>/dev/null && \
  echo "Restart srooter to apply: kill \$(cat .srooter.pid); and relaunch"

Notes

  • Smart mode (default): the primary handles real coding; trivial/cheap asks still route to the local classifier (qwen) and explicit per-prompt overrides ("use claude") always win.
  • No hardcoding — if the config is missing it is auto-created from what's installed/keyed on the machine.

Pre-analysis (MiniMax on every prompt)

When "analyze": true (default), the route-task hook sends each prompt to MiniMax first for a terse INTENT / SCOPE / RISKS / APPROACH brief and injects it into context, so Claude executes with that read of the task. Adds ~3-5s per prompt. Toggle:

python3 "$MR" set-analyze false   # turn off (prompts go straight through)
python3 "$MR" set-analyze true    # turn back on

The hook fails open — if MiniMax is slow/unreachable, routing proceeds without the analysis (capped at MINIMAX_TIMEOUT=20s).

Related

  • scripts/onboard.sh — sets this during onboarding
  • /maggy-init — Maggy setup

More on the bench

SKILL0

Tanstack Start

TanStack Start full-stack React framework using server functions, API routes, SSR, streaming with defer(), and multi-platform deployment via Vinxi/Nitro

software-engineering+1
0
SKILL0

Tanstack Query

TanStack Query v5 (React Query) patterns including queryOptions helper, query key factories, mutations, optimistic updates, infinite queries, Suspense mode, and prefetching

software-engineering+1
0
SKILL0

React Tanstack Router Query

React SPA with TanStack Router v1 + TanStack Query v5 — the definitive pattern for zero-loading-spinner routing, type-safe URLs, and cache-first data

software-engineering+1
0