File size: 9,118 Bytes
0dbc9de
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
---
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).

---

## Configuraci贸n

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.

---

## Integradas

Aqu铆 est谩n todas las herramientas integradas disponibles en OpenCode.

---

### bash

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.

---

### edit

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.

---

### write

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`).
:::

---

### read

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.

---

### grep

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.

---

### glob

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.

---

### lsp (experimental)

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).

---

### patch

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`).
:::

---

### skill

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"
  }
}
```

---

### todowrite

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)
:::

---

### webfetch

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.

---

### websearch

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).
:::

---

### question

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.

---

## Herramientas personalizadas

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.

---

## Servidores MCP

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.

---

## Internos

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.

---

### Ignorar patrones

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`.