Skip to content
Automation
Command

/model-config

Configure AI provider models for Claude Octopus workflows

From plugin
octo
4.1k53 skills49 agents53 commands18 hooks
Install
> /plugin marketplace add nyldn/claude-octopus

How it fires

How this command gets triggered: by you, by Claude, or both.

  • Fires itselfClaude auto-loads it when your prompt matches the work.
  • You can call itInvoke it directly when you want it.
  • Slash command/model-config

Context preview

What this command does when you run it.

Configure AI provider models for Claude Octopus workflows

Command definition

model-config.md
command: model-config
disable-model-invocation: true
description: Configure AI provider models for Claude Octopus workflows
version: 4.0.1
category: configuration
tags: [config, models, providers, codex, antigravity, kimi, spark, routing, trace, interactive]
created: 2025-01-21
updated: 2026-04-21

Model Configuration

**Your first output line MUST be:** `๐Ÿ™ Octopus Model Config`

STEP 0: Emit Banner (MANDATORY โ€” run before AskUserQuestion or any other step)

echo "๐Ÿ™ Octopus Model Config"
echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”"
echo "provider | model | config | routing | cost"

**Preflight โ€” Ensure plugin root is resolvable (run via Bash tool):**

OCTO_ROOT="${HOME}/.claude-octopus/plugin"
if [[ ! -x "$OCTO_ROOT/scripts/orchestrate.sh" ]]; then
  helper="$OCTO_ROOT/scripts/helpers/ensure-plugin-root.sh"
  if [[ ! -x "$helper" ]]; then
    helper="$(find "${HOME}/.claude/plugins/cache" "${HOME}/Library/Application Support/Claude" "${LOCALAPPDATA:-/dev/null}/Claude" "${XDG_DATA_HOME:-${HOME}/.local/share}/Claude" -maxdepth 8 -path "*/nyldn-plugins/octo/*/scripts/helpers/ensure-plugin-root.sh" -print -quit 2>/dev/null)"
  fi
  [[ -x "$helper" ]] && bash "$helper" >/dev/null 2>&1 || true
fi
test -x "$OCTO_ROOT/scripts/orchestrate.sh" && echo "plugin-root:ok" || echo "plugin-root:missing"

If the output is `plugin-root:missing`, stop and ask the user to run `/octo:setup`.

Run this unconditionally โ€” even when arguments are provided or when going to interactive wizard. The explicit bash block ensures the banner emits even when the command routes straight to `AskUserQuestion` (which historically skipped the inline-prose instruction and broke E2E pattern matching โ€” see #301).

Interactive model configuration wizard. Detects installed providers, shows current settings, and guides users through configuration with AskUserQuestion.

STEP 1: Detect & Display

Run a SINGLE comprehensive detection command:

echo "=== Provider Detection ==="
printf "codex:%s\n" "$(command -v codex >/dev/null 2>&1 && echo installed || echo missing)"
printf "perplexity:%s\n" "$([ -n "${PERPLEXITY_API_KEY:-}" ] && echo configured || echo missing)"
printf "openrouter:%s\n" "$([ -n "${OPENROUTER_API_KEY:-}" ] && echo configured || echo missing)"
printf "copilot:%s\n" "$(command -v copilot >/dev/null 2>&1 && echo installed || echo missing)"
printf "qwen:%s\n" "$(command -v qwen >/dev/null 2>&1 && echo installed || echo missing)"
printf "kimi:%s\n" "$(command -v kimi >/dev/null 2>&1 && echo installed || echo missing)"
printf "ollama:%s\n" "$(command -v ollama >/dev/null 2>&1 && curl -sf --connect-timeout 1 --max-time 3 http://localhost:11434/api/tags >/dev/null 2>&1 && echo running || command -v ollama >/dev/null 2>&1 && echo installed || echo missing)"
printf "opencode:%s\n" "$(command -v opencode >/dev/null 2>&1 && echo installed || echo missing)"
echo "=== Config ==="
if [[ -f ~/.claude-octopus/config/providers.json ]]; then
  cat ~/.claude-octopus/config/providers.json
else
  echo "NO_CONFIG"
fi
echo "=== Env ==="
env | grep -E '^OCTOPUS_|^CLAUDE_MODEL=' 2>/dev/null || echo "none"

Then display a compact dashboard:

๐Ÿ™ Octopus Model Config
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”

Providers                          Status
  ๐Ÿ”ต Claude (Sonnet/Opus)          Built-in โœ“
  ๐Ÿ”ด Codex (GPT-5.6 Sol)          [Installed โœ“ / Missing โœ—]  โ†’ current: <model>
  ๐Ÿงญ Antigravity (`agy`)           [Installed โœ“ / Missing โœ—]  โ†’ current: <model>
  ๐ŸŒ™ Kimi Code                     [Installed โœ“ / Missing โœ—]  โ†’ current: <model alias>
  ๐ŸŸฃ Perplexity                    [Configured โœ“ / Not set]
  ๐ŸŸ  OpenRouter                    [Configured โœ“ / Not set]
  ...other installed providers...

Phase Routing
  discover โ†’ <model>    define  โ†’ <model>
  develop  โ†’ <model>    deliver โ†’ <model>
  review   โ†’ <model>    security โ†’ <model>
  debate   โ†’ <model>    research โ†’ <model>

Cost Mode: <standard/budget/premium>

Only show providers that are installed or configured. Don't show rows for providers the user doesn't have.

STEP 2: Route by Arguments

**If arguments were provided** (e.g., `/octo:model-config codex gpt-5.6-sol`), skip the interactive flow and execute the CLI-style command directly per the EXECUTION CONTRACT at the bottom.

**If no arguments**, proceed to the interactive wizard:

STEP 3: Interactive Menu

AskUserQuestion({
  questions: [{
    question: "What would you like to configure?",
    header: "Model Config",
    multiSelect: false,
    options: [
      {label: "Provider defaults", description: "Set default models for Codex, Antigravity, OpenRouter, etc."},
      {label: "Phase routing", description: "Choose which model handles each workflow phase (discover, develop, review, etc.)"},
      {label: "Role routing overrides", description: "Route specific roles/personas such as researcher, logic-reviewer, or qa-reviewer"},
      {label: "Debate & multi-LLM", description: "Configure which providers participate in debates, parallel execution, and reviews"},
      {label: "Session provider availability", description: "Temporarily enable or disable providers for this Claude Code session"},
      {label: "Cost mode", description: "Switch between budget, standard, and premium model tiers"},
      {label: "Reset to defaults", description: "Reset all or specific provider configuration"}
    ]
  }]
})

Route: Provider Defaults

Build options dynamically from detected providers. Only show providers that are installed/configured:

AskUserQuestion({
  questions: [{
    question: "Which provider do you want to configure?",
    header: "Provider",
    multiSelect: false,
    options: [
      // Always show:
      {label: "๐Ÿ”ต Claude", description: "Current: claude-sonnet-5 / claude-opus-5 (legacy fallbacks available) โ€” built-in, no config needed"},
      // Only if codex installed:
      {label: "๐Ÿ”ด Codex (OpenAI)", description: "Current: <current_model> โ€” handl
Read more
Ships withocto

Every AI model has blind spots. Claude Octopus supports twelve external provider integrations โ€” Codex, Antigravity CLI, Copilot, Qwen, Ollama, Perplexity, OpenRouter, OrcaRouter, OpenCode, Cursor CLI, Grok, and Kimi Code โ€” alongside the built-in Claude Code

Get the whole plugin

Other commands on octo.