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.
{
"$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:
{
"$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.
{
"$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.
{
"$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.
{
"$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
writeesta controlada por el permisoedit, que cubre todas las modificaciones de archivos (edit,write,patch,multiedit).
read
Lee contenidos de archivos desde tu codigo base.
{
"$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.
{
"$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.
{
"$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.
{
"$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(oOPENCODE_EXPERIMENTAL=true).
{
"$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.
{
"$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
patchesta controlada por el permisoedit, 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.
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"skill": "allow"
}
}todowrite
Gestiona listas de tareas durante sesiones de codificacion.
{
"$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.
{
"$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.
{
"$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.
{
"$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.
!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.