Samurai-inspired multi-agent system for Claude Code. Orchestrate parallel AI tasks via tmux with shogun → karo → ashigaru hierarchy.
Install
npx skillscat add yohey-w/multi-agent-shogun/skills-shogun-model-switch Install via the SkillsCat registry.
SKILL.md
/model-switch - Agent CLI Live Switcher
Overview
稼働中のエージェントのCLI種別・モデル・Thinking設定をライブで切り替える。settings.yaml → build_cli_command() → /exit → 新CLI起動 → pane metadata更新 を一貫実行。
When to Use
- 「ashigaru3をOpusにして」「足軽全員Sonnetに切替」
- 「モデル切替」「モデル変えて」「CLI変えて」
- 「Thinking切って」「Thinking有効にして」
- 「CodexからClaudeに戻して」「Sparkにして」
- タスクの性質に応じてモデルを切り替えたいとき
Architecture
settings.yaml (source of truth)
│
├─ cli.agents.{id}.type → claude | codex | copilot | kimi
├─ cli.agents.{id}.model → claude-sonnet-4-6 | claude-opus-4-6 | ...
└─ cli.agents.{id}.thinking → true | false
│
├── build_cli_command()
│ └─ thinking: false → "MAX_THINKING_TOKENS=0 claude --model ..."
│ └─ thinking: true → "claude --model ..."
│
└── get_model_display_name()
└─ thinking: true → "Sonnet+T" / "Opus+T"
└─ thinking: false → "Sonnet" / "Opus"Display Name Mapping
| model (settings.yaml) | 表示名 | +Thinking |
|---|---|---|
| claude-sonnet-4-6 | Sonnet | Sonnet+T |
| claude-opus-4-6 | Opus | Opus+T |
| claude-haiku-4-5-20251001 | Haiku | Haiku+T |
| gpt-5.3-codex | Codex | — |
| gpt-5.3-codex-spark | Spark | — |
Instructions
単体切替
# settings.yaml の現在値で再起動(CLIリセットしたいだけのとき)
bash scripts/switch_cli.sh ashigaru3
# モデル変更(settings.yaml も自動更新)
bash scripts/switch_cli.sh ashigaru3 --model claude-opus-4-6
# CLI種別ごと変更(Codex → Claude)
bash scripts/switch_cli.sh ashigaru3 --type claude --model claude-sonnet-4-6
# Claude → Codex Spark
bash scripts/switch_cli.sh ashigaru5 --type codex --model gpt-5.3-codex-spark一括切替
# 全足軽をSonnetに
for i in $(seq 1 7); do
bash scripts/switch_cli.sh ashigaru$i --type claude --model claude-sonnet-4-6
done
# 全足軽をSparkに
for i in $(seq 1 7); do
bash scripts/switch_cli.sh ashigaru$i --type codex --model gpt-5.3-codex-spark
done
# 全エージェント(家老・軍師含む)を再起動
for agent in karo ashigaru1 ashigaru2 ashigaru3 ashigaru4 ashigaru5 ashigaru6 ashigaru7 gunshi; do
bash scripts/switch_cli.sh "$agent"
doneThinking 制御
settings.yaml の thinking フィールドを編集してから switch_cli.sh を実行:
# config/settings.yaml
cli:
agents:
ashigaru3:
type: claude
model: claude-opus-4-6
thinking: false # ← MAX_THINKING_TOKENS=0 で起動# settings.yaml 編集後に再起動
bash scripts/switch_cli.sh ashigaru3Thinking ON/OFF の切替手順:
config/settings.yamlの対象エージェントのthinking:をtrue/falseに変更bash scripts/switch_cli.sh <agent_id>で再起動- pane border に
+Tの有無が反映される
inbox 経由(家老からの切替)
# 家老が足軽のCLIを切り替える場合
bash scripts/inbox_write.sh ashigaru3 "--type claude --model claude-opus-4-6" cli_restart karoinbox_watcher が cli_restart type を検知し、switch_cli.sh を自動実行する。
What switch_cli.sh Does (internal)
- settings.yaml 更新(
--type/--model指定時のみ) - 現在のCLI種別を検出(tmux pane metadata
@agent_cli) - CLI別の exit コマンドを送信
- Claude:
/exit+ Enter - Codex: Escape → Ctrl-C →
/exit+ Enter - Copilot/Kimi: Ctrl-C →
/exit+ Enter
- Claude:
- シェルプロンプト復帰を待機(最大15秒、1秒ごとにキャプチャ)
build_cli_command()で新コマンド構築- thinking: false →
MAX_THINKING_TOKENS=0prefix 付与
- thinking: false →
- tmux send-keys で新CLI起動(テキストとEnterを分離送信)
- pane metadata 更新:
@agent_cli,@model_name
Files
| ファイル | 役割 |
|---|---|
scripts/switch_cli.sh |
メインスクリプト |
lib/cli_adapter.sh |
build_cli_command(), get_model_display_name() |
config/settings.yaml |
エージェント設定(type, model, thinking) |
scripts/inbox_watcher.sh |
cli_restart type ハンドリング |
logs/switch_cli.log |
実行ログ |
Constraints
- 将軍(shogun)ペインには送信しない: switch_cli.sh は multiagent セッションのペインのみ対象
- 実行中のエージェントに注意: タスク実行中に切り替えるとデータ消失の可能性あり。idle確認してから実行
- Codex → Claude 切替時: Codex の /exit が不安定な場合がある。Escape + Ctrl-C で確実に終了させる
- inbox_watcher との連携: cli_restart 後、inbox_watcher の CLI_TYPE 変数も自動更新される