English summary: Global config for opencode (open-source terminal coding agent). It assembles a small "team" of agents with different LLMs to balance quality and cost: Anthropic Claude models (paid per token) handle decision and review roles; MiniMax Coding Plan models (subscription, $0/token) handle volume — implementation, exploration, research. The workflow is two-stage: an
ideador(ideation partner) refines the request into a structured BRIEF, then achefe(orchestrator) executes it through the team. See docs/AI-SETUP.md if you're an AI porting this config to another user.
Esta é a configuração global do opencode (opencode.ai), um agente de código open source para terminal. Ela monta um "time" de agentes, cada um apontando para um modelo diferente, para equilibrar qualidade e custo:
- Os modelos Claude (Anthropic, pagos por token) ficam nos papéis de decisão e revisão: ideação, orquestração, arquitetura e QA.
- Os modelos MiniMax (Coding Plan, assinatura de custo $0 por token) fazem o volume: implementação, exploração read-only e pesquisa externa.
O resultado é um time em que cada chamada cara é justificada e o trabalho repetitivo não consome orçamento.
┌────────────────────────┐ ┌──────────────────────────┐
│ ETAPA 1 — IDEAÇÃO │ │ ETAPA 2 — EXECUÇÃO │
│ │ │ │
│ Você (humano) │ │ chefe (orquestrador) │
│ ↕ conversa │ │ │ │
│ ideador │ ─── BRIEF ───▶ │ ├─ @senior (plano) │
│ │ │ (aprovado) │ │ └─ @pleno │
│ ├─ @pesquisador │ │ ├─ @qa (revisão) │
│ └─ @explore │ │ ├─ @junior │
│ │ │ └─ @pesquisador │
└────────────────────────┘ └──────────────────────────┘
Etapa 1 — Ideação. O agente que abre por padrão é o ideador. Ele entende o pedido, aciona @pesquisador (e @explore quando precisa ler código existente), devolve alternativas com trade-offs, faz perguntas numeradas ao usuário e, somente após aprovação explícita, entrega um BRIEF com:
- Objetivo — em uma linha.
- Contexto — por que estamos fazendo isso.
- Escopo — o que entra.
- Fora do escopo — o que deliberadamente não entra.
- Decisões tomadas — pontos em que o usuário já escolheu.
- Ferramentas aprovadas para instalar — cada uma marcada como "requer revisão de segurança do @senior antes de instalar".
- Critérios de aceite — checklist verificável.
- Complexidade estimada — simples / média / complexa.
- Riscos — principais pontos de falha.
Etapa 2 — Execução. Você troca para o chefe (pressione Tab no opencode) e manda executar o BRIEF. O chefe despacha para @senior (plano), @pleno (implementação), @qa (revisão), @junior (tarefas mecânicas), @pesquisador (pesquisa) e/ou @explore (leitura read-only no codebase). Tarefas triviais ou correções pontuais podem pular a etapa 1.
Valores lidos diretamente de opencode.jsonc e agents/*.md.
| Agente | Modo | Modelo | Papel (resumo) | Permissões principais |
|---|---|---|---|---|
ideador |
primary | anthropic/claude-sonnet-5-5 |
Ideação estratégica (default ao abrir). Não implementa. | edit: deny, bash: deny, webfetch: allow, task: { "*": deny, pesquisador: allow, explore: allow } |
chefe |
primary | anthropic/claude-sonnet-5-5 |
Orquestrador a partir do BRIEF. Não lê arquivos grandes. | edit: deny, bash: { "*": deny, "git status*": allow, "git log*": allow, "git diff*": allow }, webfetch: deny, task: allow |
senior |
subagent | anthropic/claude-opus-5-5 |
Arquitetura, bugs difíceis, planos, revisão de segurança de ferramentas de terceiros. | edit: allow, bash: allow, task: { "*": deny, explore: allow } |
qa |
subagent | anthropic/claude-sonnet-5-5 |
Revisão contra critérios de aceite. Não corrige produção. | edit apenas em **/test_*, **/*_test.*, **/*.test.*, **/*.spec.*, **/tests/**, **/test/**, **/__tests__/**; bash: allow; task: deny |
pleno |
subagent | minimax-coding-plan/MiniMax-M3 (variant: thinking) |
Features médias, refatorações e implementação dos planos do senior. Padrão para código. | edit: allow, bash: allow, task: { "*": deny, explore: allow, senior: allow } |
junior |
subagent | minimax-coding-plan/MiniMax-M2.7-highspeed |
Tarefas simples e bem definidas. Sem expansão de escopo. | edit: allow, bash: allow, task: { "*": deny, senior: allow } |
pesquisador |
subagent | minimax-coding-plan/MiniMax-M3 |
Pesquisa externa (GitHub via gh, Reddit, HN, docs). Não instala nada. |
edit: deny, webfetch: allow, bash: { "*": deny, "gh search *": allow, "gh repo view *": allow, "gh release list *": allow, "gh release view *": allow, "gh api *": ask }, task: deny |
explore (built-in) |
subagent | minimax-coding-plan/MiniMax-M2.7-highspeed |
Busca/exploração read-only no codebase. | read-only (built-in do opencode) |
Cada agente também tem um limite de steps no frontmatter — junior: 60, pleno: 100 — para travar loops longos e forçar reporte em vez de improviso.
@juniore@plenopodem consultar o@seniorsozinhos, até 2 vezes por tarefa. Na terceira dificuldade, PARE e reporte ao chefe. Formato do pedido: Objetivo · O que já fiz · O que tentei · Erro exato · Hipótese · Pergunta (≤ ~30 linhas).- Gatilhos: mesmo erro após 2 tentativas; comando que trava/estoura timeout; ~15 passos sem progresso; dúvida de arquitetura/onde mexer; escopo maior do que o esperado.
- Checkpoints: para tarefas longas ou arriscadas, o chefe pede "com checkpoints" no prompt; o executor então envia ao
@seniorum resumo curto no fim de cada etapa e segue a direção dada. O@seniorresponde em modo mentor (~15 linhas: Diagnóstico · Próximos passos · Não faça · Critério de pronto), sem implementar. - Regras anti-trava (junior/pleno): nunca rodar em primeiro plano comandos que não terminam (
npm run dev,vite,tauri dev, watchers, apps GUI); usar timeouts eInvoke-CimMethod Win32_Process Createno Windows. Prefira comandos que terminam (build,test,typecheck,lint).
opencode.jsonc libera acesso à pasta C:\projetos\_memoria\ (permission.external_directory: { "C:/projetos/_memoria/**": "allow" }). No início de um trabalho o ideador ou o chefe lê (se existirem) C:\projetos\_memoria\INDEX.md e C:\projetos\_memoria\<nome-da-pasta-do-projeto>.md, mais o AGENTS.md da raiz do projeto — contexto rápido antes de propor ou delegar. O chefe pede ao @junior para atualizar a memória local no fim de entregas relevantes (estado, próximos passos, decisões e armadilhas, com data); se algo técnico mudou, também atualizar o AGENTS.md público. A pasta _memoria nunca vai para o repositório público do projeto. O caminho é adaptável — se você mover a pasta, ajuste a permissão no opencode.jsonc.
- Escada de escalonamento
junior → pleno → senior. Sobe um nível só quando o anterior não dá conta. seniorplaneja,plenoimplementa. Modelo caro raramente escreve código — escreve um plano curto que o pleno executa.chefenão lê arquivos grandes sozinho. Para investigar código existente, chama@explore.- Subagentes devolvem respostas curtas. Todo prompt termina pedindo saída concisa: "o que mudou / como testou / bloqueios" (junior/pleno) ou "conclusão / ações / riscos" (senior).
- Pesquisa feita em modelo de custo $0. O
@pesquisadorroda em MiniMax, então webfetch egh searchnão custam. - QA focado no diff. Recebe só os arquivos alterados e os critérios de aceite — não lê o projeto inteiro.
- Nenhuma ferramenta de terceiros é instalada sem aprovação do usuário e revisão do
senior. Mesmo quando opesquisadorrecomenda, quem instala de fato é ojunioroupleno, e só depois do@seniordar veredito claro (APROVAR/REPROVAR/APROVAR COM RESSALVAS). - Permissões restritas por agente. Cada agente tem só as ferramentas que precisa (ver tabela acima). Por exemplo,
chefeeideadornão editam arquivos;pesquisadornão escreve nem delega;qasó mexe em arquivos de teste. - Nenhuma credencial no repositório. O opencode guarda credenciais em
%USERPROFILE%\.local\share\opencode\auth.json(Windows) ou~/.local/share/opencode/auth.json(Linux/macOS). O.gitignoredesta config já bloqueiaauth.json,.env,*.keye*.pem. - Plugin isolado.
plugins/hud-launcher.jsé todo em try/catch, não-await,detached+unref, e só age no Windows quando o executável do opencode HUD existe. Se algo der errado, o opencode inicia normalmente.
.
├── README.md # este arquivo
├── LICENSE # MIT (2026, diacovrapha)
├── .gitignore # ignora node_modules/, auth.json, .env, *.key, *.pem…
├── opencode.jsonc # config global (default_agent, model, small_model, agent.*)
├── package.json # única dep: @opencode-ai/plugin 1.19.3
├── package-lock.json # lockfile do npm
├── agents/
│ ├── chefe.md # orquestrador (primary, Sonnet)
│ ├── ideador.md # parceiro de ideação (primary, Sonnet)
│ ├── junior.md # tarefas simples (subagent, M2.7-highspeed)
│ ├── pesquisador.md # pesquisa externa (subagent, M3)
│ ├── pleno.md # implementação (subagent, M3, variant: thinking)
│ ├── qa.md # revisão/testes (subagent, Sonnet)
│ └── senior.md # arquitetura/revisão (subagent, Opus)
├── plugins/
│ └── hud-launcher.js # garante o opencode HUD aberto no Windows (opcional)
└── docs/
└── AI-SETUP.md # guia para uma IA portar esta config para outro usuário
- opencode instalado (testado com a versão 1.19.3, a mesma fixada em
package.json). - Providers autenticados via
opencode auth login:- Anthropic (provê os modelos
claude-sonnet-5-5eclaude-opus-5-5). - MiniMax Coding Plan — id do provider:
minimax-coding-plan(provêMiniMax-M3eMiniMax-M2.7-highspeed).
- Anthropic (provê os modelos
- GitHub CLI (
gh) autenticado — usado pelo@pesquisadorparagh search repos,gh repo view,gh release list/view,gh api. - Opcional: o opencode HUD instalado (app desktop de gastos/uso do opencode, Windows). O plugin
hud-launcher.jsprocura o executável em%LOCALAPPDATA%\opencode HUD\(instalador .exe),%ProgramFiles%\opencode HUD\(.msi) ou na build local, e o abre com--background(se já estiver aberto, nada acontece). Se não encontrar, não faz nada.
# 1. backup da config existente (se houver)
ts=$(date +%Y%m%d-%H%M%S)
[ -d ~/.config/opencode ] && mv ~/.config/opencode ~/.config/opencode.bak.$ts
mkdir -p ~/.config/opencode
# 2. copiar arquivos para ~/.config/opencode/
git clone https://github.com/diacovrapha/opencode-config.git ~/.config/opencode
# 3. instalar a dep do plugin (o opencode autoload exige o módulo)
cd ~/.config/opencode && npm install
# 4. (opcional) ajustar os modelos no opencode.jsonc e nos agents/*.md
# conforme os providers que VOCÊ autenticou
# 5. validar
opencode debug config
opencode agent list
# 6. reiniciar o opencode# 1. backup
ts = Get-Date -Format "yyyyMMdd-HHmmss"
if (Test-Path "$env:USERPROFILE\.config\opencode") {
Move-Item "$env:USERPROFILE\.config\opencode" "$env:USERPROFILE\.config\opencode.bak.$ts"
}
New-Item -ItemType Directory -Path "$env:USERPROFILE\.config\opencode" | Out-Null
# 2. clonar
git clone https://github.com/diacovrapha/opencode-config.git "$env:USERPROFILE\.config\opencode"
# 3. instalar a dep do plugin
cd "$env:USERPROFILE\.config\opencode"; npm install
# 4. (opcional) editar opencode.jsonc e agents/*.md com os modelos disponíveis
notepad "$env:USERPROFILE\.config\opencode\opencode.jsonc"
# 5. validar
opencode debug config
opencode agent list
# 6. reiniciar o opencodeAtenção: o opencode recusa iniciar com config inválida. Se
opencode debug configreclamar, confiravariant: thinking(remova se o modelo escolhido não tiver essa variante) e o prefixoprovider/em todos osmodel:. O schema de referência fica em https://opencode.ai/config.json.
Cada "slot" da tabela abaixo tem um papel claro. Antes de trocar, confirme que o usuário autenticou o provider (opencode auth list) e que o modelo existe (opencode models).
| Slot | Requisito | Sugestão |
|---|---|---|
Orquestração/ideação (ideador, chefe) |
Modelo forte e de custo moderado | Claude Sonnet atual, GPT classe média, etc. |
senior |
O modelo mais forte disponível (pode ser caro) | Claude Opus, GPT classe alta. Uso raro, então custo importa menos. |
qa |
Forte em revisão/diff | Claude Sonnet ou similar. |
pleno, pesquisador |
Bom em código e tool calling; idealmente barato ou de assinatura; contexto grande | Anthropic, MiniMax Coding Plan, GPT com cache, Gemini com contexto grande, etc. |
junior, explore (built-in) |
Rápido e barato | Variante "highspeed" do Coding Plan, Haiku, Flash, Mini, etc. |
Limite de steps (frontmatter do agents/*.md): schema aceita steps: N (N inteiro > 0) — máximo de iterações agentic antes de forçar resposta só em texto. Use para impedir loops em agentes de implementação: junior: 60, pleno: 100. Não há valor padrão para o senior (o limite é raramente atingido com o uso esperado — plano curto).
Onde trocar:
agents/*.md→ campomodel:no frontmatter de cada arquivo. Trocar o modelo aqui sobrescreve o que está noopencode.jsoncsó para aquele agente.opencode.jsonc→model→ modelo principal para agentes que não definem o próprio.small_model→ modelo "leve" usado em tarefas pequenas (subagentes built-in, summarization).agent.general.model→ override do subagentgeneral(caso ele seja chamado).agent.explore.model→ override do subagentexplore.default_agent→ qual agente abre ao iniciar o opencode (precisa serprimarye nãohidden).
Formato: sempre provider/model-id (ex.: anthropic/claude-sonnet-5-5, minimax-coding-plan/MiniMax-M3).
Descobrir os disponíveis:
opencode models # lista provider/model-id suportados pelo seu opencodeSe você é uma IA adaptando esta config para outro usuário, o guia completo está em docs/AI-SETUP.md.
- Abra o opencode. Por padrão cai no
ideador(roxo). - Descreva o que você quer. O
ideadorvai pesquisar, propor alternativas e fazer perguntas. - Aprove o BRIEF ou itere até aprovar.
- Pressione
Tabpara alternar para ochefe(vermelho). Mande executar o BRIEF. - O
chefedespacha para o time. Acompanhe nos logs. - Para tarefas triviais, pode pular o
ideadore ir direto aochefe.
Exemplos de prompts:
ideador: "Quero adicionar autenticação OAuth2 no meu app FastAPI de C:\projetos\meuapp. Me ajuda a desenhar a abordagem antes de implementar."chefe(após BRIEF aprovado): "Execute o brief acima: definir escopo do MVP, plano do senior, implementação do pleno, QA no final. Faça commit e push só quando eu pedir."
MIT — veja LICENSE. Copyright (c) 2026 diacovrapha.