# Dispatch — Model & Key Configuration # Keys reference env var names in .env.dispatch # ─── Fallback Order (highest priority first) ──────────────────── # Exhaust claude-max first, then opencode-1, then opencode-2, then copilot. # When all keys are exhausted the agent enters wait-for-refresh. # Must be declared BEFORE any [[keys]] / [[models]] blocks. fallback = ["claude-max", "opencode-1", "opencode-2", "copilot"] # ─── API Keys ─────────────────────────────────────────────────── [[keys]] id = "claude-max" provider = "anthropic" base_url = "https://api.anthropic.com/v1" # No env needed — credentials read from ~/.claude/.credentials.json # Optional: specify a specific credentials file for multi-account: # credentials_file = "/home/tradam/.claude/.credentials-2.json" [[keys]] id = "opencode-1" provider = "opencode-go" env = "OPENCODE_KEY_1" base_url = "https://opencode.ai/zen/go/v1" [[keys]] id = "opencode-2" provider = "opencode-go" env = "OPENCODE_KEY_2" base_url = "https://opencode.ai/zen/go/v1" [[keys]] id = "copilot" provider = "github-copilot" env = "COPILOT_TOKEN" base_url = "https://api.githubcopilot.com" # ─── Models ───────────────────────────────────────────────────── [[models]] id = "claude-sonnet-4-20250514" provider = "anthropic" tags = ["heavy", "coding", "review"] [[models]] id = "claude-opus-4-20250514" provider = "anthropic" tags = ["heavy", "coding", "review"] [[models]] id = "deepseek-v4-pro" provider = "opencode-go" tags = ["heavy", "coding"] [[models]] id = "deepseek-v4-flash" provider = "opencode-go" tags = ["light", "quick"] [[models]] id = "gpt-4o" provider = "github-copilot" tags = ["heavy", "coding"] [[models]] id = "claude-3.5-sonnet" provider = "github-copilot" tags = ["heavy", "coding", "review"] # ─── Agent Templates ───────────────────────────────────────────── [agents.default] name = "Dispatch" description = "Default coding assistant" system_prompt = "You are a helpful AI coding assistant." tools = ["read_file", "write_file", "list_files", "run_shell", "task_list"] model_tag = "heavy" # ─── Permissions ───────────────────────────────────────────────── [permissions] read = "allow" [permissions.edit] "*" = "ask" "src/**" = "allow" [permissions.bash] "npm test" = "allow" "npm run *" = "allow" "git status" = "allow" "git diff" = "allow" "git log *" = "allow" "git branch *" = "allow" "git add *" = "allow" "git commit *" = "allow" "git push *" = "allow" "ls *" = "allow" "*" = "ask" [permissions.external_directory] "~/*" = "ask" "/tmp/*" = "allow"