| --- |
| title: Herramientas |
| description: Administre las herramientas que puede usar un LLM. |
| --- |
| |
| Las herramientas permiten que LLM realice acciones en su c贸digo base. OpenCode viene con un conjunto de herramientas integradas, pero puede ampliarlo con [herramientas personalizadas](/docs/custom-tools) o [servidores MCP](/docs/mcp-servers). |
|
|
| De forma predeterminada, todas las herramientas est谩n **habilitadas** y no necesitan permiso para ejecutarse. Puede controlar el comportamiento de la herramienta a trav茅s de [permisos](/docs/permissions). |
|
|
| --- |
| |
| |
|
|
| Utilice el campo `permission` para controlar el comportamiento de la herramienta. Puede permitir, denegar o exigir aprobaci贸n para cada herramienta. |
|
|
| ```json title="opencode.json" |
| { |
| "$schema": "https://opencode.ai/config.json", |
| "permission": { |
| "edit": "deny", |
| "bash": "ask", |
| "webfetch": "allow" |
| } |
| } |
| ``` |
|
|
| Tambi茅n puedes utilizar comodines para controlar varias herramientas a la vez. Por ejemplo, para solicitar aprobaci贸n para todas las herramientas de un servidor MCP: |
|
|
| ```json title="opencode.json" |
| { |
| "$schema": "https://opencode.ai/config.json", |
| "permission": { |
| "mymcp_*": "ask" |
| } |
| } |
| ``` |
|
|
| [M谩s informaci贸n](/docs/permissions) sobre la configuraci贸n de permisos. |
|
|
| --- |
| |
| |
|
|
| Aqu铆 est谩n todas las herramientas integradas disponibles en OpenCode. |
|
|
| --- |
| |
| |
|
|
| Ejecute comandos de shell en el entorno de su proyecto. |
|
|
| ```json title="opencode.json" {4} |
| { |
| "$schema": "https://opencode.ai/config.json", |
| "permission": { |
| "bash": "allow" |
| } |
| } |
| ``` |
|
|
| Esta herramienta permite que LLM ejecute comandos de terminal como `npm install`, `git status` o cualquier otro comando de shell. |
|
|
| --- |
| |
| |
|
|
| Modifique archivos existentes utilizando reemplazos de cadenas exactas. |
|
|
| ```json title="opencode.json" {4} |
| { |
| "$schema": "https://opencode.ai/config.json", |
| "permission": { |
| "edit": "allow" |
| } |
| } |
| ``` |
|
|
| Esta herramienta realiza ediciones precisas de archivos reemplazando coincidencias de texto exactas. Es la forma principal en que LLM modifica el c贸digo. |
|
|
| --- |
| |
| |
|
|
| Cree nuevos archivos o sobrescriba los existentes. |
|
|
| ```json title="opencode.json" {4} |
| { |
| "$schema": "https://opencode.ai/config.json", |
| "permission": { |
| "edit": "allow" |
| } |
| } |
| ``` |
|
|
| Utilice esto para permitir que LLM cree nuevos archivos. Sobrescribir谩 los archivos existentes si ya existen. |
|
|
| :::note |
| La herramienta `write` est谩 controlada por el permiso `edit`, que cubre todas las modificaciones de archivos (`edit`, `write`, `patch`). |
| ::: |
|
|
| --- |
| |
| |
|
|
| Lea el contenido del archivo desde su base de c贸digo. |
|
|
| ```json title="opencode.json" {4} |
| { |
| "$schema": "https://opencode.ai/config.json", |
| "permission": { |
| "read": "allow" |
| } |
| } |
| ``` |
|
|
| Esta herramienta lee archivos y devuelve su contenido. Admite la lectura de rangos de l铆neas espec铆ficos para archivos grandes. |
|
|
| --- |
| |
| |
|
|
| Busque contenidos de archivos utilizando expresiones regulares. |
|
|
| ```json title="opencode.json" {4} |
| { |
| "$schema": "https://opencode.ai/config.json", |
| "permission": { |
| "grep": "allow" |
| } |
| } |
| ``` |
|
|
| B煤squeda r谩pida de contenido en su base de c贸digo. Admite sintaxis de expresiones regulares completa y filtrado de patrones de archivos. |
|
|
| --- |
| |
| |
|
|
| Encuentre archivos por coincidencia de patrones. |
|
|
| ```json title="opencode.json" {4} |
| { |
| "$schema": "https://opencode.ai/config.json", |
| "permission": { |
| "glob": "allow" |
| } |
| } |
| ``` |
|
|
| Busque archivos usando patrones globales como `**/*.js` o `src/**/*.ts`. Devuelve rutas de archivos coincidentes ordenadas por hora de modificaci贸n. |
|
|
| --- |
| |
| |
|
|
| Interact煤e con sus servidores LSP configurados para obtener funciones de inteligencia de c贸digo como definiciones, referencias, informaci贸n de desplazamiento y jerarqu铆a de llamadas. |
|
|
| :::note |
| Esta herramienta solo est谩 disponible cuando `OPENCODE_EXPERIMENTAL_LSP_TOOL=true` (o `OPENCODE_EXPERIMENTAL=true`). |
| ::: |
|
|
| ```json title="opencode.json" {4} |
| { |
| "$schema": "https://opencode.ai/config.json", |
| "permission": { |
| "lsp": "allow" |
| } |
| } |
| ``` |
|
|
| Las operaciones admitidas incluyen `goToDefinition`, `findReferences`, `hover`, `documentSymbol`, `workspaceSymbol`, `goToImplementation`, `prepareCallHierarchy`, `incomingCalls` y `outgoingCalls`. |
|
|
| Para configurar qu茅 servidores LSP est谩n disponibles para su proyecto, consulte [Servidores LSP](/docs/lsp). |
|
|
| --- |
| |
| |
|
|
| Aplicar parches a los archivos. |
|
|
| ```json title="opencode.json" {4} |
| { |
| "$schema": "https://opencode.ai/config.json", |
| "permission": { |
| "edit": "allow" |
| } |
| } |
| ``` |
|
|
| Esta herramienta aplica archivos de parche a su c贸digo base. 脷til para aplicar diferencias y parches de diversas fuentes. |
|
|
| :::note |
| La herramienta `patch` est谩 controlada por el permiso `edit`, que cubre todas las modificaciones de archivos (`edit`, `write`, `patch`). |
| ::: |
|
|
| --- |
| |
| |
|
|
| Cargue una [habilidad](/docs/skills) (un archivo `SKILL.md`) y devuelva su contenido en la conversaci贸n. |
|
|
| ```json title="opencode.json" {4} |
| { |
| "$schema": "https://opencode.ai/config.json", |
| "permission": { |
| "skill": "allow" |
| } |
| } |
| ``` |
|
|
| --- |
| |
| |
|
|
| Administre listas de tareas pendientes durante las sesiones de codificaci贸n. |
|
|
| ```json title="opencode.json" {4} |
| { |
| "$schema": "https://opencode.ai/config.json", |
| "permission": { |
| "todowrite": "allow" |
| } |
| } |
| ``` |
|
|
| Crea y actualiza listas de tareas para realizar un seguimiento del progreso durante operaciones complejas. El LLM usa esto para organizar tareas de varios pasos. |
|
|
| :::note |
| Esta herramienta est谩 deshabilitada para los subagentes de forma predeterminada, pero puede habilitarla manualmente. [M谩s informaci贸n](/docs/agents/#permissions) |
| ::: |
|
|
| --- |
| |
| |
|
|
| Obtener contenido web. |
|
|
| ```json title="opencode.json" {4} |
| { |
| "$schema": "https://opencode.ai/config.json", |
| "permission": { |
| "webfetch": "allow" |
| } |
| } |
| ``` |
|
|
| Permite que LLM busque y lea p谩ginas web. 脷til para buscar documentaci贸n o investigar recursos en l铆nea. |
|
|
| --- |
| |
| |
|
|
| Busque informaci贸n en la web. |
|
|
| :::note |
| Esta herramienta solo est谩 disponible cuando se utiliza el proveedor OpenCode o cuando la variable de entorno `OPENCODE_ENABLE_EXA` est谩 configurada en cualquier valor verdadero (por ejemplo, `true` o `1`). |
|
|
| Para habilitar al iniciar OpenCode: |
|
|
| ```bash |
| OPENCODE_ENABLE_EXA=1 opencode |
| ``` |
|
|
| ::: |
|
|
| ```json title="opencode.json" {4} |
| { |
| "$schema": "https://opencode.ai/config.json", |
| "permission": { |
| "websearch": "allow" |
| } |
| } |
| ``` |
|
|
| Realiza b煤squedas web utilizando Exa AI para encontrar informaci贸n relevante en l铆nea. 脷til para investigar temas, encontrar eventos actuales o recopilar informaci贸n m谩s all谩 del l铆mite de datos de entrenamiento. |
|
|
| No se requiere ninguna clave API: la herramienta se conecta directamente al servicio MCP alojado de Exa AI sin autenticaci贸n. |
|
|
| :::tip |
| Utilice `websearch` cuando necesite encontrar informaci贸n (descubrimiento) y `webfetch` cuando necesite recuperar contenido de una URL espec铆fica (recuperaci贸n). |
| ::: |
|
|
| --- |
| |
| |
|
|
| Haga preguntas al usuario durante la ejecuci贸n. |
|
|
| ```json title="opencode.json" {4} |
| { |
| "$schema": "https://opencode.ai/config.json", |
| "permission": { |
| "question": "allow" |
| } |
| } |
| ``` |
|
|
| Esta herramienta permite que LLM haga preguntas al usuario durante una tarea. Es 煤til para: |
|
|
| - Recopilar preferencias o requisitos del usuario. |
| - Aclarar instrucciones ambiguas |
| - Tomar decisiones sobre las opciones de implementaci贸n. |
| - Ofrecer opciones sobre qu茅 direcci贸n tomar. |
|
|
| Cada pregunta incluye un encabezado, el texto de la pregunta y una lista de opciones. Los usuarios pueden seleccionar entre las opciones proporcionadas o escribir una respuesta personalizada. Cuando hay varias preguntas, los usuarios pueden navegar entre ellas antes de enviar todas las respuestas. |
|
|
| --- |
| |
| |
|
|
| Las herramientas personalizadas le permiten definir sus propias funciones a las que LLM puede llamar. Estos est谩n definidos en su archivo de configuraci贸n y pueden ejecutar c贸digo arbitrario. |
|
|
| [M谩s informaci贸n](/docs/custom-tools) sobre la creaci贸n de herramientas personalizadas. |
|
|
| --- |
| |
| |
|
|
| Los servidores MCP (Model Context Protocol) le permiten integrar herramientas y servicios externos. Esto incluye acceso a bases de datos, integraciones API y servicios de terceros. |
|
|
| [M谩s informaci贸n](/docs/mcp-servers) sobre la configuraci贸n de servidores MCP. |
|
|
| --- |
| |
| |
|
|
| Internamente, herramientas como `grep` y `glob` usan [ripgrep](https://github.com/BurntSushi/ripgrep) bajo el cap贸. De forma predeterminada, ripgrep respeta los patrones `.gitignore`, lo que significa que los archivos y directorios enumerados en su `.gitignore` se excluir谩n de las b煤squedas y listados. |
|
|
| --- |
| |
| |
|
|
| Para incluir archivos que normalmente se ignorar铆an, cree un archivo `.ignore` en la ra铆z de su proyecto. Este archivo puede permitir expl铆citamente ciertas rutas. |
|
|
| ```text title=".ignore" |
| !node_modules/ |
| !dist/ |
| !build/ |
| ``` |
|
|
| Por ejemplo, este archivo `.ignore` permite que ripgrep busque dentro de los directorios `node_modules/`, `dist/` y `build/` incluso si figuran en `.gitignore`. |
|
|