The Categories System provides task-type-based delegation with optimized model selection and specialized prompts. Categories enable users to spawn background tasks with semantically meaningful labels (e.g., visual-engineering, ultrabrain, deep) instead of manually selecting models and writing prompts from scratch. Each category maps to a sisyphus-junior agent instance with category-specific model configuration and prompt modifications docs/guide/overview.md68-71
The categories system serves three primary functions:
When a user invokes the delegate_task tool with a category parameter, the system resolves the category configuration, selects a model from the fallback chain based on provider availability, and spawns a sisyphus-junior agent docs/reference/features.md32 docs/guide/orchestration.md98
Sources: docs/guide/overview.md68-71 docs/reference/configuration.md99-124 docs/reference/features.md32
The system includes 8 built-in categories, each optimized for specific task types and mapped to specialized model requirements.
| Category | Primary Model Target | Default Variant | Description |
|---|---|---|---|
visual-engineering | google/gemini-3.1-pro | high | Frontend, UI/UX, and visual design docs/reference/features.md52 docs/examples/default.jsonc55 |
ultrabrain | openai/gpt-5.5 | xhigh | Maximum reasoning effort for strategic decisions docs/examples/default.jsonc57 docs/examples/planning-focused.jsonc86 |
deep | openai/gpt-5.5 | - | Goal-oriented autonomous problem-solving docs/examples/default.jsonc56 docs/examples/coding-focused.jsonc67 |
artistry | google/gemini-3.1-pro | high | Creative approaches and unconventional visual solutions docs/examples/planning-focused.jsonc89 |
quick | opencode/gpt-5-nano | - | Trivial tasks and simple modifications docs/reference/configuration.md101 docs/examples/default.jsonc51 |
unspecified-low | anthropic/claude-sonnet-4-6 | - | Moderate effort, general tasks docs/reference/configuration.md104 docs/examples/default.jsonc52 |
unspecified-high | anthropic/claude-opus-4-7 | max | High effort, complex unclassifiable work docs/reference/configuration.md107 docs/examples/default.jsonc53 |
writing | kimi-for-coding/k2p5 | - | Documentation, prose, and technical writing docs/reference/configuration.md110 docs/examples/default.jsonc54 |
Sources: docs/reference/configuration.md99-124 docs/examples/default.jsonc50-58 docs/examples/planning-focused.jsonc65-90 docs/examples/coding-focused.jsonc53-71
Each category supports configuration fields that allow users to override system defaults docs/reference/configuration.md119-123 The schema is defined in OhMyOpenCodeConfigSchema packages/omo-opencode/src/config/schema.test.ts14-15
Category model resolution follows a priority system where project-specific configs override global user configs docs/reference/configuration.md44-46:
.opencode/oh-my-openagent.json[c] docs/reference/configuration.md48~/.config/opencode/oh-my-openagent.json[c] docs/reference/configuration.md53Sources: docs/reference/configuration.md42-58 packages/omo-opencode/src/config/schema.test.ts182-246
Each category has a fallback chain defining model preferences across multiple providers. If the primary model is unavailable (e.g., due to subscription limits or API errors), the system iterates through the chain docs/reference/features.md32
The resolution process checks available models against requirements defined in the configuration docs/reference/configuration.md173-179
Sources: docs/reference/features.md32 docs/reference/configuration.md32-33 docs/guide/agent-model-matching.md91-99
Categories inject specialized instructions into the agent's system prompt via the prompt_append field docs/reference/configuration.md122
The system combines built-in agent instructions with category-specific guidance docs/reference/configuration.md93-96
Sources: docs/reference/configuration.md93-96 docs/reference/configuration.md119-123 docs/examples/coding-focused.jsonc12-13
This diagram maps the natural language category request to the specific code entities responsible for fulfilling it within the OhMyOpenCode architecture.
task() tool docs/reference/features.md32Prometheus or Atlas use isGptModel() to switch between mechanics-driven (Claude) and principle-driven (GPT) prompts docs/guide/agent-model-matching.md87-88visual-engineering loading frontend skills) docs/guide/orchestration.md69Claude Sonnet 4.6 → Kimi K2.6 → GPT-5.5 Medium docs/reference/features.md32Sources: docs/reference/features.md32 docs/guide/agent-model-matching.md80-88 docs/guide/orchestration.md65-70 packages/omo-opencode/src/config/schema.test.ts1-15
Refresh this wiki