Configuration Reference
Oh My OpenAgent is highly opinionated but adjustable to taste. Most users don't need to configure anything — run bunx oh-my-opencode install and go.
Quick Start
{
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json",
"agents": {
"oracle": { "model": "openai/gpt-5.4", "variant": "high" },
"explore": { "model": "github-copilot/grok-code-fast-1" }
},
"categories": {
"quick": { "model": "opencode/gpt-5-nano" },
"visual-engineering": { "model": "google/gemini-3.1-pro" }
}
}Config File Locations
.opencode/oh-my-opencode.json(Project level)~/.config/opencode/oh-my-opencode.json(User level)
JSONC is supported, allowing comments and trailing commas.
Agents
Configure specific behaviors for the built-in agents: Sisyphus, Hephaestus, Oracle, Librarian, Explore, Multimodal Looker, Prometheus, Metis, Momus, Atlas, and Frontend Engineer.
Override Options
| Option | Type | Default | Description |
|---|---|---|---|
| model | string | - | Model identifier (e.g., openai/gpt-4o) |
| variant | string | - | Model variant (max, high, medium, low) |
| category | string | - | Inherit configuration from a category |
| temperature | number | - | Sampling temperature (0-2) |
| top_p | number | - | Top-p sampling (0-1) |
| prompt | string | - | Override the system prompt completely |
| prompt_append | string | - | Append text to the system prompt |
| tools | Record | - | Enable or disable specific tools |
| disable | boolean | false | Disable this agent |
| maxTokens | number | - | Maximum tokens for response |
| thinking | object | - | Extended thinking configuration |
| reasoningEffort | string | - | Reasoning effort: low, medium, high, xhigh |
Permissions
| Permission | Values | Description |
|---|---|---|
| edit | ask / allow / deny | File editing capabilities |
| bash | ask / allow / deny | Bash command execution |
| webfetch | ask / allow / deny | Web request capabilities |
| doom_loop | ask / allow / deny | Infinite loop override |
| external_directory | ask / allow / deny | Access files outside project |
Categories
Categories allow you to define shared configurations that agents can inherit from.
| Category | Default Model | Description |
|---|---|---|
| visual-engineering | gemini-3.1-pro (high) | Frontend, UI/UX, design tasks |
| ultrabrain | gpt-5.3-codex (xhigh) | Deep logical reasoning |
| deep | gpt-5.3-codex (medium) | Autonomous problem-solving, thorough research |
| artistry | gemini-3.1-pro (high) | Creative tasks |
| quick | claude-haiku-4-5 | Trivial, fast tasks |
| unspecified-low | claude-sonnet-4-6 | Low effort general tasks |
| unspecified-high | gpt-5.4 (high) | High effort general tasks |
| writing | gemini-3-flash | Documentation and prose |
Available options for categories: model, variant, temperature, top_p, maxTokens, thinking, reasoningEffort, textVerbosity, tools, prompt_append, is_unstable_agent.
Skills
Built-in skills include playwright, agent-browser, and git-master. You can also define custom skills.
"skills": {
"my-custom-skill": {
"description": "A custom skill for specific tasks",
"instructions": "Always use this skill when..."
}
}Background Tasks
| Option | Type | Default | Description |
|---|---|---|---|
| defaultConcurrency | number | - | Default max concurrent tasks |
| staleTimeoutMs | number | - | Timeout for stale tasks in ms |
| providerConcurrency | number | - | Concurrency limit per provider |
| modelConcurrency | number | - | Concurrency limit per model |
Hooks
Hooks allow you to extend functionality at various lifecycle points.
MCPs
Powered by Exa for high-quality search results.
Documentation retrieval and context management.
GitHub code search integration.
Browser Automation
| Tool | Description | Use Case |
|---|---|---|
| playwright | Full browser automation (default) | Testing, complex interactions |
| agent-browser | Lightweight browser agent | Quick lookups, simple scraping |
Tmux Integration
| Option | Type | Default | Description |
|---|---|---|---|
| enabled | boolean | - | Enable Tmux integration |
| layout | string | - | Tmux window layout |
| main_pane_size | string | - | Size of the main pane |
Git Master
| Option | Type | Default | Description |
|---|---|---|---|
| commit_footer | string | - | Text to append to commit messages |
| include_co_authored_by | boolean | - | Add Co-authored-by trailer |
Experimental Features
| Option | Type | Default | Description |
|---|---|---|---|
| aggressive_truncation | boolean | - | Aggressively truncate outputs |
| auto_resume | boolean | - | Automatically resume interrupted tasks |
| preemptive_compaction | boolean | - | Compact context before limits |
| truncate_all_tool_outputs | boolean | - | Truncate all tool outputs |
LSP Configuration
| Option | Type | Default | Description |
|---|---|---|---|
| command | string | - | LSP server command |
| extensions | array | - | File extensions to match |
| priority | number | - | Server priority |
| env | object | - | Environment variables |
| initialization | object | - | Initialization options |
| disabled | boolean | - | Disable this LSP |
Environment Variables
OPENCODE_CONFIG_DIR
Override the default configuration directory path.
Comment Checker
Validates comments in your code. Use the {{comments}} placeholder in your custom prompt.