Skip to main content

What Are Categories?

Categories enable domain-specific model delegation. When Sisyphus delegates work via the task() tool, it selects a category (not a model name directly). This allows:
  • Specialized models for different task types
  • Centralized model configuration
  • Automatic model selection based on task domain
  • Cost optimization (cheap models for simple tasks, powerful models for complex work)

Built-in Categories

oh-my-opencode provides 8 built-in categories:
CategoryDefault ModelVariantPurpose
visual-engineeringgoogle/gemini-3-prohighFrontend, UI/UX, design, animation
ultrabrainopenai/gpt-5.3-codexxhighDeep logical reasoning, complex architecture
deepopenai/gpt-5.3-codexmediumAutonomous problem-solving, thorough research
artistrygoogle/gemini-3-prohighCreative/unconventional approaches
quickanthropic/claude-haiku-4-5Trivial tasks, typo fixes, single-file changes
unspecified-lowanthropic/claude-sonnet-4-6General tasks, low effort
unspecified-highanthropic/claude-opus-4-6maxGeneral tasks, high effort
writingkimi-for-coding/k2p5Documentation, prose, technical writing
Built-in defaults only apply if the category is present in your config. Otherwise the system default model is used.

Basic Configuration

Configure categories under the categories key:
{
  "categories": {
    "quick": { "model": "opencode/gpt-5-nano" },
    "writing": { "model": "kimi-for-coding/k2p5" },
    "visual-engineering": { 
      "model": "google/gemini-3-pro", 
      "variant": "high" 
    }
  }
}

Category Options

All categories support these configuration options:

Model Selection

model
string
Model override in provider/model format.
"quick": { "model": "opencode/gpt-5-nano" }
variant
enum
Model variant for thinking budget. Options: max, xhigh, high, medium, low
"ultrabrain": { 
  "model": "openai/gpt-5.3-codex",
  "variant": "xhigh" 
}
fallback_models
string | string[]
Fallback models on API errors. Used with runtime_fallback.
"deep": {
  "model": "openai/gpt-5.3-codex",
  "fallback_models": ["anthropic/claude-opus-4-6", "google/gemini-3-pro"]
}

Sampling Parameters

temperature
number
default:"0.1"
Sampling temperature (0.0–2.0). Higher = more creative.
"artistry": { "temperature": 0.7 }
top_p
number
Top-p sampling (0.0–1.0). Alternative to temperature.
"writing": { "top_p": 0.95 }

Response Control

maxTokens
number
Maximum tokens for response.
"deep": { "maxTokens": 8000 }
textVerbosity
enum
Text verbosity level: low, medium, high
"quick": { "textVerbosity": "low" }

Thinking Configuration

thinking
object
Anthropic extended thinking configuration.
"ultrabrain": {
  "thinking": { 
    "type": "enabled", 
    "budgetTokens": 300000 
  }
}
Fields:
  • type: "enabled" or "disabled"
  • budgetTokens: Maximum thinking tokens (optional)
reasoningEffort
enum
OpenAI reasoning effort: low, medium, high, xhigh
"ultrabrain": { "reasoningEffort": "xhigh" }

Tool Restrictions

tools
object
Allowed tools for this category.
"quick": {
  "tools": {
    "read": true,
    "edit": true,
    "write": true,
    "bash": false,
    "task": false
  }
}

Prompt Customization

prompt_append
string
Text to append to the category’s system prompt.
"writing": {
  "prompt_append": "Focus on clarity, conciseness, and technical accuracy."
}
description
string
Human-readable description shown in task() tool prompt.
"git": {
  "description": "All git operations and version control tasks"
}

Stability Control

is_unstable_agent
boolean
default:false
Force background mode for monitoring. Auto-enabled for Gemini/MiniMax models.
"visual-engineering": {
  "is_unstable_agent": true
}
disable
boolean
default:false
Disable this category. Disabled categories are excluded from task delegation.
"ultrabrain": { "disable": true }

Custom Categories

Create custom categories for specific domains:
{
  "categories": {
    // Custom category for git operations
    "git": {
      "model": "opencode/gpt-5-nano",
      "description": "All git operations and version control tasks",
      "prompt_append": "Focus on atomic commits, clear messages, and safe operations.",
      "tools": {
        "bash": true,
        "read": true,
        "write": false
      }
    },

    // Custom category for database work
    "database": {
      "model": "openai/gpt-5.2",
      "variant": "medium",
      "description": "Database design, migrations, and query optimization",
      "prompt_append": "Prioritize data integrity, performance, and maintainability."
    },

    // Custom category for security reviews
    "security": {
      "model": "anthropic/claude-opus-4-6",
      "variant": "high",
      "description": "Security audits, vulnerability scanning, and threat modeling",
      "thinking": {
        "type": "enabled",
        "budgetTokens": 200000
      }
    }
  }
}

Model Variants

Variants control the thinking budget for models:
VariantAnthropic BudgetOpenAI ReasoningUse Case
max~500k tokensMost complex reasoning
xhigh~300k tokensxhighDeep architectural work
high~200k tokenshighComplex problem-solving
medium~100k tokensmediumStandard tasks
low~50k tokenslowSimple, quick tasks
{
  "categories": {
    "ultrabrain": {
      "model": "anthropic/claude-opus-4-6",
      "variant": "max"  // Maximum thinking budget
    },
    "quick": {
      "model": "anthropic/claude-haiku-4-5",
      "variant": "low"  // Minimal thinking budget
    }
  }
}

Thinking Budgets

Control extended thinking for deep reasoning:

Anthropic Extended Thinking

{
  "categories": {
    "ultrabrain": {
      "model": "anthropic/claude-opus-4-6",
      "thinking": {
        "type": "enabled",
        "budgetTokens": 300000
      }
    }
  }
}

OpenAI Reasoning Effort

{
  "categories": {
    "deep": {
      "model": "openai/gpt-5.3-codex",
      "reasoningEffort": "xhigh"
    }
  }
}

Disabling Categories

Two ways to disable categories: Method 1: Per-category disable
{
  "categories": {
    "ultrabrain": { "disable": true }
  }
}
Method 2: Global disabled_categories array
{
  "disabled_categories": ["ultrabrain", "artistry"]
}

Provider Fallback Chains

Each category has a default provider fallback chain:
CategoryProvider Priority
visual-engineeringgoogle → zai-coding-plan → anthropic → kimi-for-coding
ultrabrainopenai → google → anthropic (via github-copilot/opencode)
deepopenai → anthropic → google (via github-copilot/opencode)
artistrygoogle → anthropic → openai (via github-copilot/opencode)
quickanthropic → google → opencode (via github-copilot/opencode)
unspecified-lowanthropic → openai → google (via github-copilot/opencode)
unspecified-highanthropic → openai → google (via github-copilot/opencode)
writingkimi-for-coding → google → anthropic
Check effective resolution:
bunx oh-my-opencode doctor --verbose

Complete Example

A comprehensive category configuration:
{
  "categories": {
    // Quick tasks - cheap model
    "quick": {
      "model": "opencode/gpt-5-nano",
      "textVerbosity": "low",
      "maxTokens": 2000,
      "description": "Trivial tasks and quick fixes"
    },

    // Visual work - Gemini excels
    "visual-engineering": {
      "model": "google/gemini-3-pro",
      "variant": "high",
      "temperature": 0.3,
      "description": "Frontend, UI/UX, design systems",
      "is_unstable_agent": true  // Force background monitoring
    },

    // Deep reasoning - max thinking
    "ultrabrain": {
      "model": "anthropic/claude-opus-4-6",
      "variant": "max",
      "thinking": {
        "type": "enabled",
        "budgetTokens": 500000
      },
      "fallback_models": ["openai/gpt-5.3-codex", "google/gemini-3-pro"],
      "description": "Complex architecture and deep reasoning"
    },

    // Writing - balanced model
    "writing": {
      "model": "kimi-for-coding/k2p5",
      "temperature": 0.5,
      "prompt_append": "Focus on clarity, technical accuracy, and reader engagement.",
      "description": "Documentation and technical writing"
    },

    // Custom: Git operations
    "git": {
      "model": "opencode/gpt-5-nano",
      "description": "Version control and git operations",
      "prompt_append": "Prioritize atomic commits and clear commit messages.",
      "tools": {
        "bash": true,
        "read": true,
        "write": false,
        "edit": false
      }
    },

    // Custom: Database work
    "database": {
      "model": "openai/gpt-5.2",
      "variant": "medium",
      "reasoningEffort": "high",
      "description": "Database design and optimization",
      "thinking": {
        "type": "enabled",
        "budgetTokens": 150000
      }
    }
  },

  // Disable expensive category
  "disabled_categories": ["artistry"]
}

Next Steps

Agent Configuration

Configure individual agents

Background Tasks

Control parallel execution and concurrency

Build docs developers (and LLMs) love