Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Choose between the local Codex CLI and Gemini CLI from Claude Code. Use for automatic model selection when the user wants the best local delegate for code review, repo-wide analysis, planning, or implementation.
.claude/skills/sonichi-claude-router/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 105% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -30% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -38% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -22% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 2% | 0% |
Route a task from Claude Code to either local codex or local gemini using simple, explicit rules. This skill assumes the dedicated claude-codex and claude-gemini skills are installed from this repo.
Usage: /claude-router [prompt]
ARGUMENTS: $ARGUMENTS
codex for:gemini for:If the request explicitly names codex or gemini, honor that directly.
/codex:* plugin commands directly (/codex:review, /codex:adversarial-review, /codex:rescue, /codex:status). The router is for programmatic delegation from scripts, cron, and bridges — it goes through the claude-codex skill's bash wrapper, not the plugin.If you don't see /codex:* slash-commands, install the plugin via the 4 commands documented in skills/claude-codex/SKILL.md ("When NOT to Use" section).
plan approval mode.bashbash "$SKILL_DIR/scripts/route-ai.sh" --check
bash# Auto-route based on prompt bash "$SKILL_DIR/scripts/route-ai.sh" -- "Review the current diff for regressions" # Force Codex bash "$SKILL_DIR/scripts/route-ai.sh" --engine codex -- "Inspect src/task-bridge.ts for races" # Force Gemini bash "$SKILL_DIR/scripts/route-ai.sh" --engine gemini -- "Trace task flow across the entire repo" # Dry-run the route decision without executing bash "$SKILL_DIR/scripts/route-ai.sh" --dry-run -- "Summarize architecture risks in this repo"
bashbash "$SKILL_DIR/scripts/route-ai.sh" -- "$ARGUMENTS"
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 9,633 | 14,114 | +47% | 1 | 1 | 0% | 1,460 | 1,036 | -29% | 0 | 0 | — |
case-02 | fail→fail | 5,526 | 6,536 | +18% | 1 | 1 | 0% | 888 | 960 | +8% | 0 | 0 | — |
case-03 | fail→fail | 10,785 | 7,045 | -35% | 1 | 1 | 0% | 2,126 | 884 | -58% | 0 | 0 | — |
case-13 | fail→fail | 8,501 | 7,670 | -10% | 1 | 1 | 0% | 1,600 | 1,148 | -28% | 0 | 0 | — |
case-04 | fail→pass | 3,589 | 3,022 | -16% | 1 | 1 | 0% | 549 | 1,123 | +105% | 0 | 0 | — |
case-05 | fail→pass | 13,388 | 5,222 | -61% | 1 | 1 | 0% | 2,115 | 1,472 | -30% | 0 | 0 | — |
case-06 | fail→pass | 10,459 | 2,919 | -72% | 1 | 1 | 0% | 1,778 | 1,105 | -38% | 0 | 0 | — |
case-07 | fail→pass | 10,892 | 3,743 | -66% | 1 | 1 | 0% | 1,593 | 1,235 | -22% | 0 | 0 | — |
case-08 | fail→pass | 7,966 | 3,644 | -54% | 1 | 1 | 0% | 1,187 | 1,208 | +2% | 0 | 0 | — |
case-09 | fail→pass | 13,197 | 2,318 | -82% | 1 | 1 | 0% | 2,065 | 1,000 | -52% | 0 | 0 | — |
case-10 | pass→pass | 13,189 | 2,996 | -77% | 1 | 1 | 0% | 2,383 | 1,118 | -53% | 0 | 0 | — |
case-11 | fail→pass | 7,316 | 2,182 | -70% | 1 | 1 | 0% | 1,188 | 939 | -21% | 0 | 0 | — |
case-12 | pass→fail | 8,604 | 5,338 | -38% | 1 | 1 | 0% | 1,454 | 879 | -40% | 0 | 0 | — |
case-14 | fail→pass | 10,565 | 3,509 | -67% | 1 | 1 | 0% | 1,597 | 1,197 | -25% | 0 | 0 | — |
case-15 | pass→pass | 13,180 | 5,341 | -59% | 1 | 1 | 0% | 2,090 | 1,466 | -30% | 0 | 0 | — |
case-16 | fail→fail | 16,585 | 4,197 | -75% | 1 | 1 | 0% | 2,424 | 1,245 | -49% | 0 | 0 | — |
case-17 | fail→pass | 7,621 | 1,762 | -77% | 1 | 1 | 0% | 1,218 | 864 | -29% | 0 | 0 | — |
case-18 | fail→pass | 11,408 | 2,914 | -74% | 1 | 1 | 0% | 1,836 | 1,134 | -38% | 0 | 0 | — |
case-19 | fail→fail | 17,625 | 7,148 | -59% | 1 | 1 | 0% | 2,802 | 828 | -70% | 0 | 0 | — |
case-20 | fail→pass | 3,290 | 3,144 | -4% | 1 | 1 | 0% | 462 | 1,175 | +154% | 0 | 0 | — |
case-21 | fail→pass | 11,468 | 3,067 | -73% | 1 | 1 | 0% | 1,757 | 1,056 | -40% | 0 | 0 | — |
case-22 | fail→pass | 11,118 | 3,247 | -71% | 1 | 1 | 0% | 1,837 | 1,081 | -41% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 16 counted toward the lift figure. The other 6 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +55 percentage points is the difference between those two pass rates over the 16 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.