Category configuration provides reusable model and parameter presets that agents inherit during task delegation. Categories define model selection, reasoning effort, temperature, and tool permissions for common task patterns like visual engineering, deep reasoning, or quick tasks.
For agent-specific configuration including model overrides and permissions, see 6.1 Agent Configuration. For skill-based agent customization, see 4.3 Skills System.
Categories serve as configuration templates that:
category field. docs/reference/configuration.md99-108Categories differ from agent configurations in that they are passive templates rather than active entities. An agent references a category to inherit its settings, but categories themselves do not execute tasks.
Sources:
The system defines several built-in categories optimized for specific task patterns. These are resolved via the internal category resolution logic. docs/reference/features.md32
| Category | Primary Model Requirement | Typical Use Case |
|---|---|---|
visual-engineering | google/gemini-3.1-pro | Frontend UI/UX, design system analysis, visual changes. |
ultrabrain | openai/gpt-5.5 | Complex architecture, deep logical reasoning, strategic advice. |
deep | openai/gpt-5.5 | Goal-oriented autonomous work, deep code manipulation. |
quick | openai/gpt-5.4-nano | Fast responses, simple code fixes, or metadata updates. |
artistry | google/gemini-3.1-pro | Creative coding, UI polish, and aesthetic improvements. |
writing | kimi-for-coding/k2p5 | Documentation, prose, and clear communication. |
Diagram: Category to Code Mapping
Sources:
Categories are configured using the CategoryConfigSchema. This allows overriding sampling parameters and model selection for specific task types. packages/omo-opencode/src/config/schema.test.ts9
| Field | Type | Description |
|---|---|---|
model | string | Model identifier in provider/model-id format. docs/reference/configuration.md101 |
variant | string | Reasoning variant (e.g., low, medium, high, max, xhigh). docs/reference/configuration.md107 |
temperature | number | Sampling temperature (0.0 - 2.0). docs/reference/configuration.md178 |
reasoningEffort | string | OpenAI reasoning effort level (low, medium, high). docs/reference/configuration.md186 |
thinking | object | Thinking configuration for supported models (Anthropic). docs/examples/planning-focused.jsonc24 |
fallback_models | array | List of models to try if the primary model fails. docs/reference/configuration.md177 |
prompt_append | string | Append specific instructions for the category. docs/reference/configuration.md122 |
Sources:
When a task is delegated using the task() or delegate_task tool, the system resolves the execution model based on the provided category. docs/guide/orchestration.md98
category string matches a defined entry in the configuration. docs/reference/configuration.md99-124google/gemini-3.1-pro) is resolved against the available models reported by opencode models. docs/guide/agent-model-matching.md97-99fallback_models defined for that category. docs/reference/configuration.md177Diagram: Category Configuration Data Flow
Sources:
Users can define or override categories in their configuration file. These settings allow for project-specific task routing. docs/reference/configuration.md99-124
In this example, the user overrides the default model for visual-engineering and defines a new category git. When an agent calls task(category="git"), the spawned Sisyphus-Junior will use gpt-5-nano with the specific prompt_append guidance. docs/reference/configuration.md113-124
Sources: