Transforma o teu terminal num verdadeiro engenheiro de software. O OpenCode é um agente de IA open-source que lê, escreve e refatora código: tudo sem sair da linha de comandos. E o melhor: és tu que controlas tudo.
Já imaginaste ter um par de programação sénior disponível 24/7, diretamente no teu terminal? Um que conhece a tua base de código, respeita o teu estilo de programação, e nunca se cansa de fazer code reviews?
O OpenCode é isso mesmo. Um fork open-source do Claude Code da Anthropic, construído em Go, que corre nativamente no teu Mac e se integra com os modelos de linguagem que preferires: Claude, GPT, Gemini, e dezenas de outros.
Vou mostrar-te tudo:
- Instalação no macOS Apple Silicon (e Intel)
- Configuração de providers e API keys
- Workflow diário: como interagir com o OpenCode
- Agentes personalizados: o sistema que torna o OpenCode único
- Plugins, Skills e MCP: a arquitetura extensível
- Dicas e boas práticas para tirares o máximo partido
⬆ O ecossistema OpenCode: CLI central com conexão a providers, agents, skills e servidores MCP
O que é o opencode?
O OpenCode é um agente de IA open-source para programadores. Pensa nele como um pair programmer que vive no teu terminal. Foi originalmente baseado no Claude Code da Anthropic, mas evoluiu como projeto independente sob a alçada da Anomaly, disponível em opencode.ai.
Ao contrário de ferramentas como o Cline (extensão do VS Code) ou o GitHub Copilot (autocomplete), o OpenCode é agentic: não se limita a sugerir código. Ele analisa a tua base de código, planeia alterações, executa comandos, lê ficheiros, escreve código, faz commits e até abre PRs.
| Característica | OpenCode | Copilot | Cline |
|---|---|---|---|
| Open-source | Sim (Apache 2) | Proprietário | Sim |
| Corre no terminal | TUI nativa | IDE only | VS Code |
| Múltiplos providers | 10+ providers | Apenas GitHub | Vários |
| Agentes especializados | Agent system | Limitado | |
| Skills e Plugins | Extensível | Parcial | |
| LSP integrado | Nativo | ||
| Gestão de sessões | SQLite persistente |
O OpenCode é escrito em Go e usa a Bubble Tea (da Charm) para a interface TUI. Isto significa que é rápido, leve e funciona em qualquer terminal moderno: Terminal.app, iTerm2, WezTerm, Alacritty, Kitty, Ghostty, etc.
Instalação no macOS
Antes de começares, precisas de:
- macOS 14+ (Sonoma/Sequoia): funciona em Apple Silicon e Intel
- Homebrew recomendado: brew instalado e atualizado
- Terminal moderno: WezTerm, Ghostty, iTerm2 ou Terminal.app
- API keys: pelo menos uma conta num provider de LLM (Anthropic, OpenAI, etc.)
Método 1: Homebrew (recomendado)
Usa o tap oficial do OpenCode:
Existe também a fórmula oficial mantida pela equipa do Homebrew, mas é atualizada com menos frequência:
Método 2: Script de instalação (curl)
Se preferires o binário mais recente diretamente do GitHub:
Método 3: NPM / Bun / pnpm
Verificar a instalação
Deves ver algo como opencode v0.1.48 (a versão atual depende de quando lês isto).
Configurar API Keys
O OpenCode precisa de pelo menos uma API key para funcionar. A forma mais direta é usar variáveis de ambiente no teu ~/.zshrc:
Para recarregar sem reiniciar o terminal:
Dica: Se és novo nisto, usa o comando /connect dentro do OpenCode ou opencode auth login para configurares os providers de forma interativa. O OpenCode também lê um ficheiro .env se existir no diretório do projeto.
⬆ Sessão OpenCode ao vivo: interação com o agente a implementar autenticação
Primeiros passos: o workflow
Abrir o OpenCode
Navega até ao teu projeto e corre:
O OpenCode arranca automaticamente. Na primeira vez, recomendo correr /init para ele analisar o projeto e criar um ficheiro AGENTS.md na raiz. Este ficheiro ajuda o OpenCode a perceber a estrutura do projeto, as convenções de código e os padrões que usas.
Dica: Faz commit do AGENTS.md para o repositório: a equipa toda beneficia do contexto partilhado.
Como interagir
O OpenCode funciona como um chat no terminal. Escreves uma mensagem, ele processa e responde com texto, código, ou ações. As ferramentas que ele pode usar incluem:
| Ferramenta | Descrição | Exemplo |
|---|---|---|
| glob | Encontrar ficheiros por padrão | procurar ficheiros *.ts |
| grep | Pesquisar conteúdo em ficheiros | encontrar "useEffect" no código |
| view | Ler ficheiros (com paginação) | mostrar src/index.ts |
| edit | Editar ficheiros | atualizar a função de login |
| write | Escrever novos ficheiros | criar componente Header |
| bash | Executar comandos no terminal | npm run build |
| fetch | Buscar conteúdo de URLs | buscar documentação da API |
| agent | Invocar sub-agentes | @general analisar performance |
| task | Executar sub-tarefas | /task "refatorar módulo X" |
Uma das funcionalidades mais úteis é o modo Plan. Carrega na tecla Tab para alternar entre o modo Build (faz alterações) e Plan (só analisa). Isto é excelente para pedires uma análise antes de autorizares qualquer modificação.
Abreviatura @ para ficheiros
Usa o símbolo @ para pesquisar ficheiros no projeto com fuzzy search. Isto é especialmente útil para dares contexto preciso ao modelo:
⬆ Ciclo de desenvolvimento com OpenCode: discutir, implementar, rever, commitar
Configuração avançada: opencode.json
O OpenCode é altamente configurável através de ficheiros JSON (ou JSONC). Podes ter configuração global em ~/.config/opencode/opencode.json e configurações por projeto num opencode.json na raiz do projeto.
Os ficheiros são fundidos (merged), não substituídos. Isto significa que podes ter definições globais (como API keys) e refiná-las por projeto (como modelo ou agentes).
Ordem de precedência (do menos prioritário ao mais):
- Config remota (via .well-known/opencode)
- Config global (~/.config/opencode/opencode.json)
- Custom path (OPENCODE_CONFIG env var)
- Config do projeto (opencode.json na raiz)
- Config inline (OPENCODE_CONFIG_CONTENT env var)
- Definições geridas por MDM (macOS managed preferences)
Exemplo de ficheiro opencode.json
Providers personalizados
Além dos providers oficiais (Anthropic, OpenAI, Google, Groq, OpenRouter, AWS Bedrock, Azure), podes adicionar qualquer API compatível com OpenAI:
Sabias? Podes usar opencode models para listar todos os modelos disponíveis nos teus providers configurados. Usa opencode models --refresh para atualizar a cache.
Agentes OpenCode: o pilar do sistema
Os agentes são o que torna o OpenCode verdadeiramente poderoso. Em vez de um único assistente genérico, tens um ecossistema de assistentes especializados, cada um com o seu propósito, modelo e permissões.
Agentes Built-in
| Agente | Tipo | Descrição |
|---|---|---|
| Build | Primary | Agente padrão com todas as ferramentas ativas. É o que usas para o trabalho do dia-a-dia: escrever código, executar comandos, fazer commits. |
| Plan | Primary | Modo de planeamento e análise. Não faz alterações: só lê e sugere. Ideal para code review e discussão de arquitetura. |
| General | Subagent | Pesquisa questões complexas e executa tarefas multi-passo. Pode ser invocado com @general. |
| Explore | Subagent | Modo só-leitura para explorar a codebase. Rápido, sem risco de alterações. Invoca-se com @explore. |
| Scout | Subagent | Pesquisa documentação externa e dependências. Útil para investigar bibliotecas, APIs, ou repositórios upstream. |
Para alternar entre agentes primary, carrega na tecla Tab durante uma sessão. Para invocar subagents, usa a menção @ na tua mensagem:
⬆ Hierarquia de agentes no OpenCode: primary agents, subagents built-in, e agentes personalizados
Criar Agentes Personalizados
Podes criar os teus próprios agentes de duas formas:
Via JSON (no opencode.json):
Via Markdown (ficheiro .md):
Cria um ficheiro em ~/.config/opencode/agents/ ou .opencode/agents/. O nome do ficheiro (sem extensão) torna-se o nome do agente:
Skills e plugins
As skills são bundles de instruções + scripts que estendem as capacidades do OpenCode. Podes instalar skills pré-definidas ou criar as tuas.
Skills disponíveis
| Skill | Descrição | Instalação |
|---|---|---|
| simplify | Simplifica código para melhor legibilidade, sem alterar comportamento | opencode skill install simplify |
| codemap | Gera mapas hierárquicos da codebase para documentação | opencode skill install codemap |
| agent-browser | Automação de browser: navegar, clicar, preencher formulários, screenshots | opencode skill install agent-browser |
| clonedeps | Clona dependências para inspeção local do código fonte | opencode skill install clonedeps |
Criar uma Skill personalizada
A estrutura de uma skill é simples. Cria uma pasta em .opencode/skills/<nome-da-skill>/ com um ficheiro SKILL.md:
As skills instaladas ficam em .opencode/skills/ no diretório do projeto. Podes ver o conteúdo de qualquer skill instalada nessa pasta.
Dica: A skill agent-browser é especialmente útil: permite ao OpenCode interagir com páginas web, preencher formulários, e fazer screenshots. Ideal para testar aplicações web ou extrair dados de sites.
Comandos essenciais do dia-a-dia
O OpenCode tem comandos de terminal (CLI) e comandos internos (TUI). Aqui estão os que uso todos os dias:
Comandos CLI
| Comando | Descrição |
|---|---|
| opencode | Abre a TUI no diretório atual |
| opencode run "prompt" | Executa uma query em modo non-interactive (útil para scripts) |
| opencode -m anthropic/claude-sonnet-4 | Abre com um modelo específico |
| opencode -c | --continue: continua a última sessão |
| opencode -s <sessionID> | Continua uma sessão específica |
| opencode --agent bookwriter | Abre diretamente com um agente específico |
| opencode serve | Inicia servidor headless (API HTTP) |
| opencode web | Inicia servidor com interface web |
| opencode session list | Lista todas as sessões guardadas |
| opencode stats | Mostra estatísticas de uso e custos |
| opencode upgrade | Atualiza para a versão mais recente |
| opencode auth login | Configura providers interativamente |
| opencode models | Lista todos os modelos disponíveis |
Comandos Internos (TUI) e Atalhos
| Comando / Atalho | Descrição |
|---|---|
| /init | Inicializa o contexto do projeto (cria AGENTS.md) |
| /task "faz X" | Executa tarefa autonomamente |
| /plan "fazer Y" | Planeia sem executar |
| /undo / /redo | Desfaz/refaz alterações (múltiplos níveis) |
| /share | Cria link partilhável da conversa |
| /connect | Configura providers na TUI |
| @general / @explore | Invoca subagentes |
| Ctrl+K | Abre diálogo de comandos |
| Ctrl+O | Abre seletor de modelos |
| Ctrl+S | Envia mensagem |
| Ctrl+N | Nova sessão |
| Tab | Alterna entre agentes primary (Build ↔ Plan) |
| @ | Pesquisa fuzzy de ficheiros para contexto |
Importante: O comando /undo pode ser usado múltiplas vezes para reverter várias alterações. É uma rede de segurança excelente quando o modelo faz algo inesperado.
Dicas e boas práticas
1. Regras Persistentes com .opencode/rules
Cria um ficheiro .opencode/rules no teu projeto. O conteúdo é injetado no system prompt de todas as sessões desse projeto. É o sítio ideal para:
- Convenções de código específicas do projeto
- Preferências de estilo (ex: "usa tabs, não spaces")
- Informação sobre a arquitetura
- Lista de comandos de build/test frequentemente usados
2. Controlo de Custos
O OpenCode pode gastar muitos tokens se não tiveres cuidado. Algumas dicas:
- Usa modelos mais pequenos para tarefas simples: claude-haiku ou gpt-4o-mini para refactoring rápido
- Define maxTokens por request: limita a resposta do modelo
- Usa opencode stats para veres o consumo de tokens e custos por sessão
- Modo Plan primeiro antes de Build: evita gastar tokens em alterações erradas
- Auto-compact ativado por defeito: o OpenCode resume automaticamente conversas longas
3. auto_continue para Tarefas Longas
Para tarefas complexas que exigem múltiplas iterações do modelo, ativa a continuação automática:
O OpenCode continua automaticamente até completar a tarefa. Se atingir o limite de tokens, faz auto-compact e continua.
4. Git Integrado
O OpenCode tem integração nativa com git. Podes pedir-lhe para:
- Fazer commits com mensagens descritivas (e no formato que preferires)
- Criar PRs no GitHub (precisa de gh CLI configurado)
- Rever alterações antes de fazer stage
- Gerir branches: criar, merge, rebase
5. Sessões e Contexto
- Mantém sessões focadas: uma tarefa de cada vez. O auto-compact ajuda, mas mudar de contexto é mais eficiente.
- Usa Ctrl+N para criar uma nova sessão quando mudas de tarefa.
- Partilha sessões com /share para pedires feedback à equipa.
- Arrasta imagens para o terminal: o OpenCode consegue analisar screenshots e mockups.
Dica de produtividade: Cria custom commands para operações frequentes. Guarda ficheiros .md em ~/.config/opencode/commands/ com prompts pré-definidos. Ex: user:prime-context para analisar a codebase antes de começar.
Conclusão
O OpenCode é, neste momento, uma das ferramentas mais poderosas para programadores que vivem no terminal. Combina a flexibilidade de um agente de IA open-source com a potência de um sistema de agents, skills, e plugins extensível.
Vantagens:
- 100% terminal: sem GUI, sem Electron, sem distrações. Corre em qualquer lado onde haja um terminal
- Múltiplos providers: não ficas preso a um modelo ou vendor. Usa Claude, GPT, Gemini, ou o que preferires
- Agentes especializados: cada tarefa com o assistente certo. Plan para análise, Build para executar, subagents para tarefas específicas
- Extensível: skills, plugins, MCP servers, custom commands. Adaptas o OpenCode ao teu workflow, não o contrário
- Open-source: código aberto, comunidade ativa, sem vendor lock-in
- Git integrado: commits, PRs, tudo pelo terminal sem mudar de contexto
Limitações honestas:
- Curva de aprendizagem: não é tão imediato como um autocomplete do Copilot. Leva algum tempo até estares confortável com atalhos, agentes e configuração
- Custo de tokens: modelos poderosos (Claude Sonnet, GPT-4o) gastam tokens rapidamente. Precisas de gerir o orçamento
- Dependência de API: embora corra localmente, precisa de conexão aos providers. Se a API estiver em baixo, o OpenCode não funciona
- Ainda em evolução: é um projeto ativo, com alterações frequentes. Algumas funcionalidades podem mudar entre versões
Se és developer no macOS e passas tempo no terminal, o OpenCode merece um lugar no teu toolkit. Instala hoje, experimenta com um projeto pequeno, e vê como ele se encaixa no teu fluxo de trabalho.
E já agora: este artigo foi escrito com a ajuda do agente bookwriter do OpenCode. Sim, estou a usar a ferramenta para falar sobre ela própria: meta suficiente para ti?
Recursos
- Site oficial do OpenCode
- Código fonte no GitHub (anomalyco)
- Documentação oficial
- Configuração (opencode.json)
- Guia de Agentes
- CLI e comandos
- Bubble Tea: framework TUI
- Comunidade Discord do OpenCode
Comentários (0)
Nenhum comentário ainda. Seja o primeiro!
Deixar comentário