Español
Documentación
Herramientas

Herramientas

Gestiona las herramientas que un LLM puede usar.

Las herramientas permiten al LLM realizar acciones en tu codigo base. OpenCode viene con un conjunto de herramientas integradas, pero puedes extenderlo con herramientas personalizadas o servidores MCP.

Por defecto, todas las herramientas estan habilitadas y no necesitan permiso para ejecutarse. Puedes controlar el comportamiento de las herramientas a traves de permisos.


Configuracion

Usa el campo permission para controlar el comportamiento de las herramientas. Puedes permitir, denegar o requerir aprobacion para cada herramienta.

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

Tambien puedes usar comodines para controlar multiples herramientas a la vez. Por ejemplo, para requerir aprobacion para todas las herramientas de un servidor MCP:

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

Aprende mas sobre la configuracion de permisos.


Herramientas Integradas

Aqui estan todas las herramientas integradas disponibles en OpenCode.


bash

Ejecuta comandos de shell en tu entorno de proyecto.

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

Esta herramienta permite al LLM ejecutar comandos de terminal como npm install, git status o cualquier otro comando de shell.


edit

Modifica archivos existentes usando reemplazos exactos de cadenas.

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

Esta herramienta realiza ediciones precisas en archivos reemplazando coincidencias exactas de texto. Es la forma principal en que el LLM modifica codigo.


write

Crea nuevos archivos o sobrescribe los existentes.

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

Usa esto para permitir que el LLM cree nuevos archivos. Sobrescribira archivos existentes si ya existen.

Nota: La herramienta write esta controlada por el permiso edit, que cubre todas las modificaciones de archivos (edit, write, patch, multiedit).


read

Lee contenidos de archivos desde tu codigo base.

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

Esta herramienta lee archivos y devuelve sus contenidos. Soporta leer rangos de lineas especificos para archivos grandes.


grep

Busca contenidos de archivos usando expresiones regulares.

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

Busqueda rapida de contenido en todo tu codigo base. Soporta sintaxis regex completa y filtrado por patron de archivos.


glob

Encuentra archivos por coincidencia de patrones.

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

Busca archivos usando patrones glob como **/*.js o src/**/*.ts. Devuelve rutas de archivos coincidentes ordenadas por tiempo de modificacion.


list

Lista archivos y directorios en una ruta dada.

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

Esta herramienta lista contenidos de directorios. Acepta patrones glob para filtrar resultados.


lsp (experimental)

Interactua con tus servidores LSP configurados para obtener funciones de inteligencia de codigo como definiciones, referencias, informacion de hover y jerarquia de llamadas.

Nota: Esta herramienta solo esta disponible cuando OPENCODE_EXPERIMENTAL_LSP_TOOL=true (o OPENCODE_EXPERIMENTAL=true).

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

Las operaciones soportadas incluyen goToDefinition, findReferences, hover, documentSymbol, workspaceSymbol, goToImplementation, prepareCallHierarchy, incomingCalls y outgoingCalls.

Para configurar que servidores LSP estan disponibles para tu proyecto, consulta Servidores LSP.


patch

Aplica parches a archivos.

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

Esta herramienta aplica archivos de parche a tu codigo base. Util para aplicar diffs y parches de varias fuentes.

Nota: La herramienta patch esta controlada por el permiso edit, que cubre todas las modificaciones de archivos (edit, write, patch, multiedit).


skill

Carga una habilidad (un archivo SKILL.md) y devuelve su contenido en la conversacion.

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

todowrite

Gestiona listas de tareas durante sesiones de codificacion.

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

Crea y actualiza listas de tareas para rastrear el progreso durante operaciones complejas. El LLM usa esto para organizar tareas de multiples pasos.

Nota: Esta herramienta esta deshabilitada para subagentes por defecto, pero puedes habilitarla manualmente. Aprende mas


todoread

Lee listas de tareas existentes.

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

Lee el estado actual de la lista de tareas. Usado por el LLM para rastrear que tareas estan pendientes o completadas.

Nota: Esta herramienta esta deshabilitada para subagentes por defecto, pero puedes habilitarla manualmente. Aprende mas


webfetch

Obtiene contenido web.

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

Permite al LLM obtener y leer paginas web. Util para buscar documentacion o investigar recursos en linea.


question

Hace preguntas al usuario durante la ejecucion.

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

Esta herramienta permite al LLM hacer preguntas al usuario durante una tarea. Es util para:

  • Recopilar preferencias o requisitos del usuario
  • Aclarar instrucciones ambiguas
  • Obtener decisiones sobre opciones de implementacion
  • Ofrecer opciones sobre que direccion tomar

Cada pregunta incluye un encabezado, el texto de la pregunta y una lista de opciones. Los usuarios pueden seleccionar de las opciones proporcionadas o escribir una respuesta personalizada. Cuando hay multiples preguntas, los usuarios pueden navegar entre ellas antes de enviar todas las respuestas.


Herramientas Personalizadas

Las herramientas personalizadas te permiten definir tus propias funciones que el LLM puede llamar. Estas se definen en tu archivo de configuracion y pueden ejecutar codigo arbitrario.

Aprende mas sobre crear herramientas personalizadas.


Servidores MCP

Los servidores MCP (Model Context Protocol) te permiten integrar herramientas y servicios externos. Esto incluye acceso a bases de datos, integraciones de API y servicios de terceros.

Aprende mas sobre configurar servidores MCP.


Internos

Internamente, herramientas como grep, glob y list usan ripgrep (opens in a new tab) bajo el capo. Por defecto, ripgrep respeta los patrones de .gitignore, lo que significa que los archivos y directorios listados en tu .gitignore seran excluidos de busquedas y listados.


Patrones de Ignorar

Para incluir archivos que normalmente serian ignorados, crea un archivo .ignore en la raiz de tu proyecto. Este archivo puede permitir explicitamente ciertas rutas.

.ignore
!node_modules/
!dist/
!build/

Por ejemplo, este archivo .ignore permite a ripgrep buscar dentro de los directorios node_modules/, dist/ y build/ aunque esten listados en .gitignore.