> For the complete documentation index, see [llms.txt](https://kiwi-8.gitbook.io/kiwi-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kiwi-8.gitbook.io/kiwi-docs/herramientas.md).

# Herramientas

Lo que Kiwi puede hacer sobre tu máquina. Qué se ejecuta sin preguntar depende del [modo de permiso](/kiwi-docs/modos-de-permiso.md).

Con `/tools` ves la lista en vivo y puedes **desactivar una** para la sesión actual.

## Leer y buscar

| Herramienta | Qué hace                                                             |
| ----------- | -------------------------------------------------------------------- |
| `read_file` | lee un fichero                                                       |
| `ls`        | lista un directorio                                                  |
| `glob`      | busca ficheros por patrón                                            |
| `grep`      | busca texto dentro del código                                        |
| `lsp`       | usa el servidor de lenguaje: definiciones, referencias, diagnósticos |

## Escribir

| Herramienta  | Qué hace                                       |
| ------------ | ---------------------------------------------- |
| `write_file` | crea o reemplaza un fichero                    |
| `edit_file`  | sustituye un fragmento exacto                  |
| `multi_edit` | varias sustituciones en un fichero, de una vez |

Bloqueadas en modo plan.

## Ejecutar comandos

| Herramienta       | Qué hace                                                      |
| ----------------- | ------------------------------------------------------------- |
| `bash`            | ejecuta un comando y espera a que termine                     |
| `bash_background` | lanza un proceso largo (un servidor, un watcher) sin bloquear |
| `bash_output`     | lee lo que ha escrito un proceso en segundo plano             |
| `kill_shell`      | lo para                                                       |

Un proceso en segundo plano sobrevive al turno que lo arrancó, pero no a Kiwi: al salir se paran todos, junto con los hijos que hayan lanzado. Un servidor de desarrollo no se queda ocupando el puerto.

## Organizarse

| Herramienta                | Qué hace                                                                             |
| -------------------------- | ------------------------------------------------------------------------------------ |
| `todo_write` / `todo_read` | la lista de tareas del turno, que puedes ver mientras trabaja                        |
| `ask_questions`            | te pregunta cuando una decisión es tuya, en vez de adivinar                          |
| `remember`                 | guarda algo que debe sobrevivir a esta conversación                                  |
| `load_skill`               | carga una [skill](/kiwi-docs/skills-y-mcp.md): instrucciones para una tarea concreta |

## Delegar en un subagente

| Herramienta | Qué hace                                                     |
| ----------- | ------------------------------------------------------------ |
| `task`      | encarga un trabajo a un subagente con su propia conversación |

El subagente empieza sin contexto: solo sabe lo que le dice el agente principal en el encargo. Trabaja por su cuenta y **solo vuelve su resumen final**, no cada paso que dio. Así una búsqueda grande o una pieza de trabajo independiente no llena el contexto de tu conversación.

Hay dos tipos:

| Tipo      | Qué puede hacer                                                        | Para qué                                       |
| --------- | ---------------------------------------------------------------------- | ---------------------------------------------- |
| `explore` | leer ficheros, buscar, ir a la web y ejecutar comandos de solo lectura | encontrar código o entender cómo funciona algo |
| `general` | lo mismo que el agente principal, salvo delegar a su vez               | tareas que también editan o ejecutan           |

`explore` es de solo lectura **por construcción**, no por el modo: su `bash` rechaza cualquier comando que escriba antes de ejecutarlo, aunque la sesión esté en `work`. Por eso nunca te interrumpe para pedir permiso. Un subagente `general` pasa por los mismos permisos que el agente principal.

## Fuera de tu máquina

| Herramienta  | Qué hace                                                                |
| ------------ | ----------------------------------------------------------------------- |
| `web_search` | busca en la web y devuelve título, URL y un fragmento de cada resultado |
| `web_fetch`  | descarga una página y la lee                                            |

Las dos son de solo lectura: se permiten solas en `plan` y `work` y preguntan en `ask`. También las tiene el subagente `explore`.

### `web_search`

Usa el primer proveedor que tenga disponible:

| Si tienes      | Busca con   |
| -------------- | ----------- |
| `EXA_API_KEY`  | Exa         |
| `JINA_API_KEY` | Jina Search |
| ninguna        | DuckDuckGo  |

Funciona sin configurar nada. Una clave da mejores resultados y evita que DuckDuckGo te trate como un bot. Las claves se ponen con `/config` o en el entorno.

### `web_fetch` y el modo lector

`web_fetch` descarga la página y le quita el HTML. No se conecta a direcciones privadas, de loopback ni link-local (incluida la de metadatos de las nubes, `169.254.169.254`), tampoco siguiendo una redirección.

Hay webs que se construyen con JavaScript y, descargadas tal cual, vienen casi vacías. Para esas el agente puede pedir `reader: true`: la página se renderiza en [Jina Reader](https://jina.ai/reader) (`r.jina.ai`) y vuelve como markdown. **En ese caso la URL pasa por un tercero**, y el aviso de permiso lo dice. Si una descarga normal vuelve casi vacía, la propia herramienta le sugiere al agente usar el modo lector.

### La skill `reach`

Para investigar más allá de una página, Kiwi trae la skill `reach` (también como comando `/reach`). Le enseña al agente a:

* buscar y contrastar varias fuentes, citando la URL de cada dato;
* leer vídeos de YouTube con `yt-dlp` (metadatos y subtítulos, sin descargar el vídeo);
* consultar GitHub con `gh`: repos, issues, PRs, releases y código;
* leer feeds RSS/Atom, hilos de Reddit y, cuando se puede, posts de X.

Qué de todo esto funciona en tu máquina lo dice [`kiwi doctor`](/kiwi-docs/comandos-del-cli.md#kiwi-doctor). La idea viene de [Agent Reach](https://github.com/Panniantong/agent-reach).

## Servidores MCP

A esto se suman las herramientas que aporten los **servidores MCP** que tengas conectados. Cómo se añaden está en [Skills y MCP](/kiwi-docs/skills-y-mcp.md#servidores-mcp).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://kiwi-8.gitbook.io/kiwi-docs/herramientas.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
