Skip to main content
Assign different models to different tasks. Haiku searches your codebase, Sonnet writes the code, Flash compacts context.

Open the router

/router
Or edit ~/.soulforge/config.json:
{
  "taskRouter": {
    "spark":      "anthropic/claude-haiku-4",
    "ember":      "anthropic/claude-sonnet-4-6",
    "webSearch":  "anthropic/claude-haiku-4",
    "desloppify": "anthropic/claude-haiku-4",
    "verify":     "anthropic/claude-haiku-4",
    "compact":    "google/gemini-2.5-flash",
    "semantic":   "anthropic/claude-haiku-4",
    "default":    null
  }
}

What each slot does

SlotRuns whenGood choice
sparkRead-only agents explore your codeFast/cheap (Haiku, Flash)
emberAgents that edit filesStrong coding model (Sonnet, Opus)
webSearchWeb search agentsFast/cheap
desloppifyCleanup pass after code editsFast/cheap
verifyAdversarial review after code editsMedium strength
compactContext compactionFast/cheap (Flash is ideal)
semanticRepo map one-line symbol summariesFast/cheap
defaultFallback when no slot matches
Strong code, cheap everything else.
"spark": "anthropic/claude-haiku-4",
"ember": "anthropic/claude-sonnet-4-6",
"compact": "google/gemini-2.5-flash"

Why this saves money

Agents spend ~70% of their tokens on exploration (reading files, running greps, navigating the repo map). That work doesn’t need an expensive model. Reserve your strong model for the ~30% that’s actually writing code.