skills/third774/dotfiles/customizing-opencode

customizing-opencode

SKILL.md

Customizing OpenCode

Configure OpenCode behavior through config files, agents, commands, and extensions.

Config File Locations

Location Path Purpose
Global ~/.config/opencode/opencode.json User-wide preferences
Project ./opencode.json Project-specific settings
Custom $OPENCODE_CONFIG env var Override path

Precedence (later overrides earlier): Remote .well-known/opencode < Global < Custom < Project

Quick Reference

Task Where Reference
Set theme, model, autoupdate opencode.json config-schema.md
Define specialized agents .opencode/agents/*.md or config agents.md
Create slash commands .opencode/commands/*.md or config commands.md
Add external tools via MCP opencode.json mcp section mcp-servers.md
Write custom tool functions .opencode/tools/*.ts custom-tools.md
Extend with plugins/hooks .opencode/plugins/*.ts or npm plugins.md
Control tool access opencode.json permission section permissions.md
Customize keyboard shortcuts opencode.json keybinds section keybinds.md
Change colors/appearance opencode.json theme or custom JSON themes.md

Directory Structure

~/.config/opencode/           # Global config
├── opencode.json
├── AGENTS.md                 # Global rules
├── agents/                   # Global agents
├── commands/                 # Global commands
├── plugins/                  # Global plugins
├── skills/                   # Global skills
├── tools/                    # Global custom tools
└── themes/                   # Global custom themes

.opencode/                    # Project config (same structure)
├── agents/
├── commands/
├── plugins/
├── skills/
├── tools/
└── themes/

When to Use What

Need Solution
Change model/theme for all projects Global opencode.json
Project-specific agent behavior Project .opencode/agents/
Reusable prompt templates Commands (.opencode/commands/)
External service integration MCP servers
Custom logic the LLM can call Custom tools
React to OpenCode events Plugins
Restrict dangerous operations Permissions

Variable Substitution

Use in any config value:

{
  "model": "{env:OPENCODE_MODEL}",           // Environment variable
  "instructions": ["{file:./rules.md}"]      // File contents
}

Rules (AGENTS.md)

Project instructions loaded into LLM context:

File Scope
./AGENTS.md Project (traverses up to git root)
~/.config/opencode/AGENTS.md Global
instructions array in config Additional files/globs
{
  "instructions": ["CONTRIBUTING.md", "docs/*.md"]
}

Docs

Full documentation: https://opencode.ai/docs/config/

Weekly Installs
18
GitHub Stars
3
First Seen
Jan 24, 2026
Installed on
opencode17
codex17
claude-code16
gemini-cli16
github-copilot15
antigravity14