Português
Documentação
Ferramentas

Ferramentas

Gerencie as ferramentas que um LLM pode usar.

Ferramentas permitem que o LLM execute acoes em sua base de codigo. OpenCode vem com um conjunto de ferramentas integradas, mas voce pode estende-lo com ferramentas personalizadas ou servidores MCP.

Por padrao, todas as ferramentas estao habilitadas e nao precisam de permissao para executar. Voce pode controlar o comportamento das ferramentas atraves de permissoes.


Configuracao

Use o campo permission para controlar o comportamento das ferramentas. Voce pode permitir, negar ou exigir aprovacao para cada ferramenta.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "edit": "deny",
    "bash": "ask",
    "webfetch": "allow"
  }
}

Voce tambem pode usar curingas para controlar varias ferramentas de uma vez. Por exemplo, para exigir aprovacao para todas as ferramentas de um servidor MCP:

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "mymcp_*": "ask"
  }
}

Saiba mais sobre configuracao de permissoes.


Ferramentas Integradas

Aqui estao todas as ferramentas integradas disponiveis no OpenCode.


bash

Execute comandos de shell no ambiente do seu projeto.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "bash": "allow"
  }
}

Esta ferramenta permite que o LLM execute comandos de terminal como npm install, git status ou qualquer outro comando de shell.


edit

Modifique arquivos existentes usando substituicoes exatas de strings.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "edit": "allow"
  }
}

Esta ferramenta realiza edicoes precisas em arquivos substituindo correspondencias exatas de texto. E a principal forma como o LLM modifica codigo.


write

Crie novos arquivos ou sobrescreva os existentes.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "edit": "allow"
  }
}

Use isso para permitir que o LLM crie novos arquivos. Ele sobrescrevera arquivos existentes se ja existirem.

Nota: A ferramenta write e controlada pela permissao edit, que cobre todas as modificacoes de arquivos (edit, write, patch, multiedit).


read

Leia conteudos de arquivos da sua base de codigo.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "read": "allow"
  }
}

Esta ferramenta le arquivos e retorna seus conteudos. Suporta leitura de intervalos de linhas especificos para arquivos grandes.


grep

Pesquise conteudos de arquivos usando expressoes regulares.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "grep": "allow"
  }
}

Pesquisa rapida de conteudo em toda sua base de codigo. Suporta sintaxe regex completa e filtragem por padrao de arquivos.


glob

Encontre arquivos por correspondencia de padroes.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "glob": "allow"
  }
}

Pesquise arquivos usando padroes glob como **/*.js ou src/**/*.ts. Retorna caminhos de arquivos correspondentes ordenados por tempo de modificacao.


list

Liste arquivos e diretorios em um caminho especificado.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "list": "allow"
  }
}

Esta ferramenta lista conteudos de diretorios. Aceita padroes glob para filtrar resultados.


lsp (experimental)

Interaja com seus servidores LSP configurados para obter recursos de inteligencia de codigo como definicoes, referencias, informacoes de hover e hierarquia de chamadas.

Nota: Esta ferramenta so esta disponivel quando OPENCODE_EXPERIMENTAL_LSP_TOOL=true (ou OPENCODE_EXPERIMENTAL=true).

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "lsp": "allow"
  }
}

Operacoes suportadas incluem goToDefinition, findReferences, hover, documentSymbol, workspaceSymbol, goToImplementation, prepareCallHierarchy, incomingCalls e outgoingCalls.

Para configurar quais servidores LSP estao disponiveis para seu projeto, consulte Servidores LSP.


patch

Aplique patches em arquivos.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "edit": "allow"
  }
}

Esta ferramenta aplica arquivos de patch na sua base de codigo. Util para aplicar diffs e patches de varias fontes.

Nota: A ferramenta patch e controlada pela permissao edit, que cobre todas as modificacoes de arquivos (edit, write, patch, multiedit).


skill

Carregue uma habilidade (um arquivo SKILL.md) e retorne seu conteudo na conversa.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "skill": "allow"
  }
}

todowrite

Gerencie listas de tarefas durante sessoes de codificacao.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "todowrite": "allow"
  }
}

Cria e atualiza listas de tarefas para rastrear o progresso durante operacoes complexas. O LLM usa isso para organizar tarefas de multiplas etapas.

Nota: Esta ferramenta esta desabilitada para subagentes por padrao, mas voce pode habilita-la manualmente. Saiba mais


todoread

Leia listas de tarefas existentes.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "todoread": "allow"
  }
}

Le o estado atual da lista de tarefas. Usado pelo LLM para rastrear quais tarefas estao pendentes ou concluidas.

Nota: Esta ferramenta esta desabilitada para subagentes por padrao, mas voce pode habilita-la manualmente. Saiba mais


webfetch

Obtenha conteudo web.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "webfetch": "allow"
  }
}

Permite que o LLM obtenha e leia paginas web. Util para consultar documentacao ou pesquisar recursos online.


question

Faca perguntas ao usuario durante a execucao.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "question": "allow"
  }
}

Esta ferramenta permite que o LLM faca perguntas ao usuario durante uma tarefa. E util para:

  • Coletar preferencias ou requisitos do usuario
  • Esclarecer instrucoes ambiguas
  • Obter decisoes sobre opcoes de implementacao
  • Oferecer escolhas sobre qual direcao tomar

Cada pergunta inclui um cabecalho, o texto da pergunta e uma lista de opcoes. Os usuarios podem selecionar das opcoes fornecidas ou digitar uma resposta personalizada. Quando ha multiplas perguntas, os usuarios podem navegar entre elas antes de enviar todas as respostas.


Ferramentas Personalizadas

Ferramentas personalizadas permitem que voce defina suas proprias funcoes que o LLM pode chamar. Estas sao definidas no seu arquivo de configuracao e podem executar codigo arbitrario.

Saiba mais sobre criar ferramentas personalizadas.


Servidores MCP

Servidores MCP (Model Context Protocol) permitem integrar ferramentas e servicos externos. Isso inclui acesso a banco de dados, integracoes de API e servicos de terceiros.

Saiba mais sobre configurar servidores MCP.


Internos

Internamente, ferramentas como grep, glob e list usam ripgrep (opens in a new tab) por baixo dos panos. Por padrao, ripgrep respeita padroes .gitignore, o que significa que arquivos e diretorios listados no seu .gitignore serao excluidos de pesquisas e listagens.


Padroes de Ignorar

Para incluir arquivos que normalmente seriam ignorados, crie um arquivo .ignore na raiz do seu projeto. Este arquivo pode permitir explicitamente certos caminhos.

.ignore
!node_modules/
!dist/
!build/

Por exemplo, este arquivo .ignore permite que ripgrep pesquise dentro dos diretorios node_modules/, dist/ e build/ mesmo que estejam listados no .gitignore.