Ir para o conteúdo

🧾 OpenCode Cheat Sheet

Referência rápida dos comandos, configurações e trechos mais usados no OpenCode (V2). Baseado na documentação oficial.


📦 Instalação

curl -fsSL https://opencode.ai/v2/install | bash      # binário nativo
npm install -g @opencode/cli                          # npm
brew install anomalyco/tap/opencode-v2                # Homebrew (macOS/Linux)
mise use -g opencode                                  # mise (>= 2026.10.9)

🖥️ Interfaces

Comando O que faz
opencode TUI full-screen
opencode mini Interface minimalista
opencode run "prompt" Headless (scripts/CI)
opencode serve Servidor de API/web
opencode pair Links de pareamento (browser/app)
opencode acp Servidor ACP (editores)

⌨️ TUI — atalhos essenciais

Ação Atalho
Paleta de comandos Ctrl+P
Trocar modelo Ctrl+X → M
Trocar agente Ctrl+X → A / Shift+Tab
Nova sessão Ctrl+X → N
Listar sessões Ctrl+X → L
Undo / Redo Ctrl+X → U / Ctrl+X → R
Anexar arquivo @arquivo (ex.: @src/auth.ts#20-45)
Modo shell !comando
Editor externo Ctrl+X → E
Tecla leader Ctrl+X (padrão)

🤖 opencode run (headless)

opencode run --model anthropic/claude-sonnet-4-5 "Refatore parseToken"
opencode run --continue "Agora trate o caso expirado"
opencode run --format json "Liste os TODOs" | jq
opencode run --file src/server.ts "Revise buscando bugs"
opencode run --agent build "Corrija o teste que falha"
opencode run --standalone "Revise o diff"          # servidor privado (CI)

🧰 CLI

opencode auth login                       # conecta provedor
opencode auth list                        # credenciais salvas
opencode models                           # modelos disponíveis
opencode mcp add context7 --url https://mcp.context7.com/mcp
opencode mcp list
opencode plugin add opencode-acme-plugin@1.2.0
opencode session list --format json
opencode stats --cost                      # custo e tokens
opencode service status                    # saúde do serviço de fundo
opencode reload                            # recarrega config sem reiniciar
opencode upgrade
opencode debug paths | opencode debug config

⚙️ Configuração (opencode.jsonc)

{
  "$schema": "https://opencode.ai/config.json",
  "model": "anthropic/claude-sonnet-4-5",
  "permissions": [
    { "action": "shell", "resource": "git push *", "effect": "ask" },
    { "action": "read", "resource": ".env*", "effect": "deny" }
  ],
  "policies": [{ "action": "provider.use", "resource": "*", "effect": "deny" }],
  "instructions": ["CONTRIBUTING.md"],
  "formatter": true
}

Locais: /etc/opencode · ~/.config/opencode/opencode.json(c) · <projeto>/opencode.json(c) · <projeto>/.opencode/opencode.json(c) Segredos: {env:VAR} e {file:caminho}. Preferências de terminal ficam em ~/.config/opencode/cli.json (tema, keybinds, abas).

🧑‍💻 Agente customizado (.opencode/agents/<nome>.md)

---
description: Revisa mudanças (somente leitura)
mode: subagent
model: anthropic/claude-sonnet-4-5#high
permissions:
  - action: edit
    resource: "*"
    effect: deny
---

Revise as mudanças. Liste achados por severidade.

⚡ Comandos (.opencode/commands/<nome>.md)

---
description: Revisa o diff
agent: plan
---

Revise $ARGUMENTS. Use o diff:

!`git diff --stat && git diff`

🧠 Skills (.opencode/skills/<id>/SKILL.md)

---
name: Git Release
description: Prepara notas de release e bump de versão
---

1. Leia `references/policy.md`.
2. Resuma as mudanças desde a última tag.

🔌 MCP servers

{ "mcp": { "servers": { "playwright": { "type": "local", "command": ["bunx", "@playwright/mcp"] } } } }

🛡️ Permissões e Policies

  • Permissões decidem allow / ask / deny — a última regra que casa vence (amplo antes, exceções depois)
  • Policies são binárias (allow/deny), nunca perguntam e só restringem (provider, tool, mcp/skill/plugin)
  • Ações comuns: shell, edit, read, glob, grep, subagent, webfetch, websearch, skill, external_directory

🚀 CI (GitHub Actions)

- run: npm install --global @opencode/cli
- run: opencode run --standalone --model anthropic/claude-sonnet-4-5 "Review this PR"
  env:
    ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}

🌐 API

opencode api get /api/info
opencode api session.list --param limit=10
opencode api session.create --data '{"title":"Nova sessão"}'

🔧 Troubleshooting

opencode service status            # serviço saudável?
opencode api get /api/info         # health check
opencode --standalone              # isolar do serviço compartilhado
# logs: ~/.local/share/opencode/log/opencode.log
OPENCODE_LOG_LEVEL=DEBUG opencode run "caso"

📚 Referências: Config · CLI · Agents · Commands · Skills · Plugins · Permissions · Policies