Switch between OpenCode agent personalities β with dedicated agents, MCP servers, and permissions β using a single command.
$ op --list
agents Criador de Agentes & Skills
build Engenheiro de Software
cowork Assistente Colaborativo (All Skills)
debug Diagnosticador de Sistemas
design Designer Visual & Criativo
development Desenvolvedor Full-Stack
fixbug CaΓ§ador de Bugs
full Full Stack (All Skills + All MCPs)
looping Executor de Loops & AutomaΓ§Γ£o
media Produtor de ConteΓΊdo & MΓdia
monster Modo MΓ‘ximo (All Skills + All MCPs)
openfilm Produtor Audiovisual
plan Estrategista de Produto & Marketing
sales Executivo de Vendas
socialmedia Social Media Strategist
strategy Estrategista de NegΓ³cios & Growth
workflow Arquiteto de Workflows
Your OpenCode agent is only as good as its configuration. Without profiles, you use the same personality for debugging, code reviews, architecture design, and content creation β even though each task demands a different focus.
OpenCode Profiles lets you:
- π― Switch instantly between 17 specialized personalities
- π§ Load the right agents and MCP servers for each task
- π§ Change permissions and tool access per profile
- π° Save tokens β smaller profiles use up to 93% fewer tokens than a full setup
- π€ Share profiles with your team via git
# Clone the repository
git clone https://github.com/gtmdev-br/opencode-profiles.git ~/.config/opencode/opencode-profiles
# Run the installer
cd ~/.config/opencode/opencode-profiles
./install.sh
# Reload your shell
source ~/.zshrc
# Try it
opRequirements: macOS or Linux, zsh, OpenCode installed.
ββββββββββββββββββββββββββββββββββββ
β op <profile> β
ββββββββββββ¬ββββββββββββββββββββββββ
β
ββββββββββββΌββββββββββββββββββββββββ
β op.sh β
β ββββββββββββββββββββββββββββ β
β 1. Writes .active_profile β
β 2. Symlinks opencode.json β
β 3. Symlinks agents/ β
β 4. Opens opencode β
ββββββββββββ¬ββββββββββββββββββββββββ
β
ββββββββββββΌββββββββββββββββββββββββ
β opencode β
β ββββββββββββββββββββββββββββ β
β Reads .active_profile from β
β CLAUDE.md PROFILE:BEGIN block β
β Loads profile.<name>.md β
β β Personality active β
β β Relevant skills available β
β β Specific MCPs connected β
βββββββββββββββββββββββββββββββββββββ
Each profile has three layers:
| Layer | File | What it defines |
|---|---|---|
| Personality | profile.<name>.md |
Behavior rules, priorities, skill recommendations |
| Config | opencode.<name>.json |
MCP servers, permissions, token limits |
| Agents | agents-by-profile/<name>/ |
Sub-agents available for delegation |
| Profile | Description | Best for |
|---|---|---|
build |
Software Engineer | TDD coding, PR reviews, debugging |
design |
Visual Designer & Creative | UI, CSS, visual prototyping |
full |
Full Stack (All Skills + All MCPs) | Multi-disciplinary projects |
monster |
Max Power (All Skills + All MCPs) | Everything at once |
agents |
Agent & Skill Builder | Skills, MCPs, tools |
sales |
Sales Executive | Outreach, CRM, proposals |
cowork |
Collaborative Assistant (All Skills) | Pair programming |
minimalista |
Maximum focus | Simple tasks, no distractions |
| Profile | Description | Best for |
|---|---|---|
debug |
System Diagnostician | Bug hunting, root cause analysis |
development |
Full-Stack Developer | Feature development |
fixbug |
Bug Hunter | Quick fixes, patches |
looping |
Loop & Automation Executor | Repetitive tasks |
media |
Content & Media Producer | Social media, copywriting |
openfilm |
Audiovisual Producer | Video, editing, animation |
plan |
Product & Marketing Strategist | Roadmaps, strategy |
socialmedia |
Social Media Strategist | Content calendars, engagement |
strategy |
Business & Growth Strategist | Business strategy, growth |
workflow |
Workflow Architect | Process design, automation |
π‘ Create your own profile from the template at
profiles/profile.example.md.
op # List available profiles with descriptions
op <profile> # Activate profile and launch opencode
op <profile> <path> # Activate profile and open a specific project
op --list # List profiles (without launching opencode)
op --help # Show full help
op --version # Show version# 1. Personality template
cp profiles/profile.example.md ~/.config/opencode/profile.my-profile.md
# Edit with your favorite editor
# 2. MCP config template
cp templates/opencode.example.json ~/.config/opencode/opencode.my-profile.json
# Add your API keys, paths, etc.
# 3. (Optional) Profile-specific agents
mkdir -p ~/.config/opencode/agents-by-profile/my-profile
# Add .md agent files
# 4. Activate
op my-profile~/.config/opencode/
βββ opencode.my-profile.json β MCP servers, permissions
βββ profile.my-profile.md β Personality, rules, skills
βββ agents-by-profile/
βββ my-profile/ β Sub-agents (optional)
βββ agent1.md
βββ agent2.md
Add this block to ~/.claude/CLAUDE.md so OpenCode automatically loads the right personality:
<!-- PROFILE:BEGIN β managed by install.sh, do not edit this block -->
## Ative Profile Personality
This session runs under a specific **profile** that defines your persona,
priorities, and available skills.
1. **Read the active profile name**:
`~/.config/opencode/.active_profile`
2. **Load the personality instructions** for that profile:
`~/.config/opencode/profile.<name>.md`
Replace `<name>` with the content of `.active_profile`.
3. **Follow the profile's behavior rules** as your primary operating
instructions for this session.
4. **Skills listed in the profile are recommendations** β you must still
call `skill("name")` to load them. The profile tells you *which* skills
to prioritize, not *when* to load them.
If `.active_profile` doesn't exist or the profile file is missing, fall
back to the `full` profile:
`~/.config/opencode/profile.full.md`
<!-- PROFILE:END -->| Variable | Default | Description |
|---|---|---|
OP_CONF_DIR |
~/.config/opencode |
Configuration directory |
OP_PROFILES_DIR |
$OP_CONF_DIR |
Profile personality directory |
OP_DEFAULT_PROFILE |
build |
Default profile |
| Profile | Tokens/req | DeepSeek V3 | Claude Fable 5 |
|---|---|---|---|
full |
797K | $130 | $4,836 |
monster |
574K | $94 | $3,499 |
build |
54K | $10 | $380 |
design |
36K | $9 | $342 |
Smaller profiles like
build(54K) save ~93% in tokens compared tofull.
The script:
- Writes the profile name to
.active_profile - Symlinks
opencode.jsonβopencode.build.json(swaps MCP servers) - Symlinks
agents/βagents-by-profile/build/(swaps sub-agents) - Launches opencode, which reads
.active_profilevia CLAUDE.md - The
profile.build.mdpersonality is loaded
Yes! The repo is public by design. Only avoid committing files with API keys (opencode.*.json, .env). The .gitignore already handles this.
# Remove symlinks and restore originals
rm ~/.config/opencode/opencode.json
mv ~/.config/opencode/.opencode.json.backup ~/.config/opencode/opencode.json
rm ~/.config/opencode/agents
mv ~/.config/opencode/.agents.backup ~/.config/opencode/agents
# Remove the alias
sed -i '' '/alias op=/d' ~/.zshrc
source ~/.zshrcNo. The installer uses cp -n (no overwrite), preserving existing files. To force update a specific profile, manually copy:
cp profiles/profile.build.md ~/.config/opencode/
The personality files (profile.*.md) use the standard AGENTS.md format, so they work with any tool that supports it. The op.sh activator is OpenCode-specific.
- agent-ci β CLI tool for validating, testing, and benchmarking OpenCode profiles.
Run
agent-ci validateafter installing profiles to verify everything is configured correctly, oragent-ci benchmark build designto compare two profiles on the same task.
Contributions are welcome! See CONTRIBUTING.md for guidelines.
MIT β see LICENSE.
