6 6
7> Agrega paneles, comandos y reglas para llamadas a herramientas a Claude Code con un mod. Descubre lo que puede hacer un mod, cómo crear o instalar uno y dónde se ejecutan los mods.7> Agrega paneles, comandos y reglas para llamadas a herramientas a Claude Code con un mod. Descubre lo que puede hacer un mod, cómo crear o instalar uno y dónde se ejecutan los mods.
8 8
9Un mod es un [plugin](/docs/es/plugins/overview.md) que cambia la apariencia y el comportamiento de Claude Code. Está compuesto por controladores de eventos en JavaScript o TypeScript: Claude Code llama a uno cuando ocurre un evento, como una llamada a herramienta, un prompt enviado o una parte de la interfaz que se está dibujando, y el controlador puede observar el evento, modificarlo o tomar el control. Usa un mod para agregar una funcionalidad propia a Claude Code, como un panel que grafique qué tan lleno está tu contexto después de cada solicitud. Para conocer los archivos de un mod y ver un ejemplo completo, consulta [Cómo funciona un mod](#how-a-mod-works).9Un mod es un [plugin](https://code.claude.com/docs/es/plugins/overview.md) que cambia la apariencia y el comportamiento de Claude Code. Está compuesto por controladores de eventos en JavaScript o TypeScript: Claude Code llama a uno cuando ocurre un evento, como una llamada a herramienta, un prompt enviado o una parte de la interfaz que se está dibujando, y el controlador puede observar el evento, modificarlo o tomar el control. Usa un mod para agregar una funcionalidad propia a Claude Code, como un panel que grafique qué tan lleno está tu contexto después de cada solicitud. Para conocer los archivos de un mod y ver un ejemplo completo, consulta [Cómo funciona un mod](#how-a-mod-works).
10 10
11> [!NOTE]11> [!NOTE]
12>12>
13> Los [hooks](/docs/es/hooks.md) existentes de Claude Code también se ejecutan ante eventos, como un comando de shell, una solicitud HTTP o un prompt que configuras en un archivo de configuración. En cambio, los controladores de un mod son funciones que se ejecutan dentro de Claude Code. Claude Code llama hooks a ambos tipos: en estas páginas, "hook" se refiere al controlador de un mod, y el tipo definido en el archivo de configuración es un "hook de configuración".13> Los [hooks](https://code.claude.com/docs/es/hooks.md) existentes de Claude Code también se ejecutan ante eventos, como un comando de shell, una solicitud HTTP o un prompt que configuras en un archivo de configuración. En cambio, los controladores de un mod son funciones que se ejecutan dentro de Claude Code. Claude Code llama hooks a ambos tipos: en estas páginas, "hook" se refiere al controlador de un mod, y el tipo definido en el archivo de configuración es un "hook de configuración".
14 14
15## Qué puede hacer un mod15## Qué puede hacer un mod
16 16
17Los hooks de configuración, los skills, las líneas de estado y los servidores MCP funcionan desde fuera de Claude Code: cada uno ejecuta un script o le da a Claude texto o herramientas. Un mod se ejecuta dentro de Claude Code, así que puede hacer cosas que ellos no pueden:17Los hooks de configuración, los skills, las líneas de estado y los servidores MCP funcionan desde fuera de Claude Code: cada uno ejecuta un script o le da a Claude texto o herramientas. Un mod se ejecuta dentro de Claude Code, así que puede hacer cosas que ellos no pueden:
18 18
19* **Dibujar una interfaz que puedes usar**: un panel junto a la transcripción o una franja encima del prompt, con pestañas, botones y campos de texto. Consulta [Dibujar en la interfaz](/docs/es/plugins/mods/interface.md).19* **Dibujar una interfaz que puedes usar**: un panel junto a la transcripción o una franja encima del prompt, con pestañas, botones y campos de texto. Consulta [Dibujar en la interfaz](https://code.claude.com/docs/es/plugins/mods/interface.md).
20* **Redibujar la propia interfaz de Claude Code**: reemplazar o cambiar el estilo de partes que Claude Code dibuja por sí mismo, como la fila de una llamada a herramienta, el indicador de actividad o el diálogo en el que Claude hace preguntas. Consulta [Cambiar lo que Claude Code ya dibuja](/docs/es/plugins/mods/interface.md#change-what-claude-code-already-draws).20* **Redibujar la propia interfaz de Claude Code**: reemplazar o cambiar el estilo de partes que Claude Code dibuja por sí mismo, como la fila de una llamada a herramienta, el indicador de actividad o el diálogo en el que Claude hace preguntas. Consulta [Cambiar lo que Claude Code ya dibuja](https://code.claude.com/docs/es/plugins/mods/interface.md#change-what-claude-code-already-draws).
21* **Intervenir en una llamada a herramienta o en una solicitud**: por ejemplo, retener una llamada a herramienta mientras le haces una pregunta al usuario, responderla sin ejecutar la herramienta o enviar una solicitud a un modelo diferente. Consulta [Proteger o cambiar una llamada a herramienta](/docs/es/plugins/mods/events.md#guard-or-change-a-tool-call) y [Seguir un turno](/docs/es/plugins/mods/events.md#follow-a-turn).21* **Intervenir en una llamada a herramienta o en una solicitud**: por ejemplo, retener una llamada a herramienta mientras le haces una pregunta al usuario, responderla sin ejecutar la herramienta o enviar una solicitud a un modelo diferente. Consulta [Proteger o cambiar una llamada a herramienta](https://code.claude.com/docs/es/plugins/mods/events.md#guard-or-change-a-tool-call) y [Seguir un turno](https://code.claude.com/docs/es/plugins/mods/events.md#follow-a-turn).
22* **Ejecutar tu propio código con un comando**: un `/command` que ejecuta tu función de inmediato, sin un turno de Claude, incluso mientras Claude está trabajando. Consulta [Agregar un comando o una herramienta](/docs/es/plugins/mods/api.md#add-a-command-or-a-tool).22* **Ejecutar tu propio código con un comando**: un `/command` que ejecuta tu función de inmediato, sin un turno de Claude, incluso mientras Claude está trabajando. Consulta [Agregar un comando o una herramienta](https://code.claude.com/docs/es/plugins/mods/api.md#add-a-command-or-a-tool).
23* **Compartir datos entre hooks**: los hooks de un mod comparten las variables de su archivo, así que lo que un hook registra, otro puede mostrarlo. Por ejemplo, un hook puede contar las llamadas a herramientas mientras otro muestra el recuento junto al indicador de actividad, o uno puede leer el uso de tokens de cada solicitud mientras otro lo grafica en un panel. Consulta [Reaccionar a eventos](/docs/es/plugins/mods/events.md).23* **Compartir datos entre hooks**: los hooks de un mod comparten las variables de su archivo, así que lo que un hook registra, otro puede mostrarlo. Por ejemplo, un hook puede contar las llamadas a herramientas mientras otro muestra el recuento junto al indicador de actividad, o uno puede leer el uso de tokens de cada solicitud mientras otro lo grafica en un panel. Consulta [Reaccionar a eventos](https://code.claude.com/docs/es/plugins/mods/events.md).
24 24
25Los mods funcionan en la CLI de Claude Code, en la pestaña Code de la aplicación Claude Desktop y en la extensión de VS Code. Consulta [Dónde se ejecutan los mods](#where-mods-run) para entender cómo se comportan en otros lugares, como en `claude -p` y las sesiones en la nube. Si un hook de configuración, un skill o un servidor MCP ya hace lo que necesitas, [compáralos](#compare-mods-settings-hooks-skills-and-mcp-servers) antes de escribir un mod. Para administrar mods para una organización, consulta [Administrar mods para tu organización](/docs/es/plugins/mods/admin.md).25Los mods funcionan en la CLI de Claude Code, en la pestaña Code de la aplicación Claude Desktop y en la extensión de VS Code. Consulta [Dónde se ejecutan los mods](#where-mods-run) para entender cómo se comportan en otros lugares, como en `claude -p` y las sesiones en la nube. Si un hook de configuración, un skill o un servidor MCP ya hace lo que necesitas, [compáralos](#compare-mods-settings-hooks-skills-and-mcp-servers) antes de escribir un mod. Para administrar mods para una organización, consulta [Administrar mods para tu organización](https://code.claude.com/docs/es/plugins/mods/admin.md).
26 26
27## Obtén un mod27## Obtén un mod
28 28
29Para empezar con un mod:29Para empezar con un mod:
30 30
31* **Usa uno que ya tengas**: algunas de las funciones propias de Claude Code son mods, como `/diff`. Consulta [Mods integrados en Claude Code](#mods-built-into-claude-code).31* **Usa uno que ya tengas**: algunas de las funciones propias de Claude Code son mods, como `/diff`. Consulta [Mods integrados en Claude Code](#mods-built-into-claude-code).
32* **Crea uno**: describe lo que quieres en una sesión de Claude Code y Claude escribe el mod. Consulta [Pídele a Claude un mod](/docs/es/plugins/mods/create.md#ask-claude-for-a-mod). Para aprender cómo funciona el código de un mod, [escribe uno tú mismo](/docs/es/plugins/mods/create.md#write-a-mod-yourself).32* **Crea uno**: describe lo que quieres en una sesión de Claude Code y Claude escribe el mod. Consulta [Pídele a Claude un mod](https://code.claude.com/docs/es/plugins/mods/create.md#ask-claude-for-a-mod). Para aprender cómo funciona el código de un mod, [escribe uno tú mismo](https://code.claude.com/docs/es/plugins/mods/create.md#write-a-mod-yourself).
33* **Instala uno**: consulta [Instalar o actualizar un mod](#install-or-update-a-mod), o [prueba un mod de ejemplo](#try-a-sample-mod)33* **Instala uno**: consulta [Instalar o actualizar un mod](#install-or-update-a-mod), o [prueba un mod de ejemplo](#try-a-sample-mod)
34 34
35### Instalar o actualizar un mod35### Instalar o actualizar un mod
43* En una sesión de Claude Code, ejecuta `/plugin install token-chart@your-org`.43* En una sesión de Claude Code, ejecuta `/plugin install token-chart@your-org`.
44* En tu shell, ejecuta `claude plugin install token-chart@your-org`.44* En tu shell, ejecuta `claude plugin install token-chart@your-org`.
45 45
46[Instalar plugins](/docs/es/plugins/install.md) cubre los marketplaces, los alcances, la extensión de VS Code y la aplicación de escritorio, y [mantener los plugins actualizados](/docs/es/plugins/install.md#keep-plugins-updated), todo lo cual se aplica sin cambios a un plugin que contiene un mod.46[Instalar plugins](https://code.claude.com/docs/es/plugins/install.md) cubre los marketplaces, los alcances, la extensión de VS Code y la aplicación de escritorio, y [mantener los plugins actualizados](https://code.claude.com/docs/es/plugins/install.md#keep-plugins-updated), todo lo cual se aplica sin cambios a un plugin que contiene un mod.
47 47
48Si instalas o actualizas un mod desde tu shell mientras hay una sesión abierta, ejecuta `/reload-plugins` en esa sesión para cargarlo. De lo contrario, se carga la próxima vez que inicies Claude Code.48Si instalas o actualizas un mod desde tu shell mientras hay una sesión abierta, ejecuta `/reload-plugins` en esa sesión para cargarlo. De lo contrario, se carga la próxima vez que inicies Claude Code.
49 49
57 57
58Un mod de ejemplo se ejecuta con tus permisos. Para ver qué hace uno antes de cargarlo, [enumera sus hooks y llamadas](#list-what-a-mod-does-before-you-install-one).58Un mod de ejemplo se ejecuta con tus permisos. Para ver qué hace uno antes de cargarlo, [enumera sus hooks y llamadas](#list-what-a-mod-does-before-you-install-one).
59 59
60Para probar uno, clona el repositorio y [carga el directorio del mod para una sesión](/docs/es/plugins/create.md#load-a-directory-or-archive-for-one-session) con `--plugin-dir`. Para confirmar que el mod se cargó, [comprueba qué mods cargó la sesión](#see-which-mods-a-session-loaded).60Para probar uno, clona el repositorio y [carga el directorio del mod para una sesión](https://code.claude.com/docs/es/plugins/create.md#load-a-directory-or-archive-for-one-session) con `--plugin-dir`. Para confirmar que el mod se cargó, [comprueba qué mods cargó la sesión](#see-which-mods-a-session-loaded).
61 61
62Para conservar uno, [agrega el directorio `claude-code/mods` del clon como marketplace](/docs/es/plugins/install#add-a-marketplace) y luego instala el mod desde `claude-code-playground-mods`. El marketplace apunta a tu clon, por lo que el mod deja de cargarse si lo mueves o lo eliminas.62Para conservar uno, [agrega el directorio `claude-code/mods` del clon como marketplace](https://code.claude.com/docs/es/plugins/install#add-a-marketplace) y luego instala el mod desde `claude-code-playground-mods`. El marketplace apunta a tu clon, por lo que el mod deja de cargarse si lo mueves o lo eliminas.
63 63
64## Decide si confiar en un mod64## Decide si confiar en un mod
65 65
66Un mod es código que se ejecuta con tus permisos, dentro de Claude Code. Instala mods solo de autores y [marketplaces en los que confíes](/docs/es/plugins/security.md).66Un mod es código que se ejecuta con tus permisos, dentro de Claude Code. Instala mods solo de autores y [marketplaces en los que confíes](https://code.claude.com/docs/es/plugins/security.md).
67 67
68### A qué puede acceder un mod68### A qué puede acceder un mod
69 69
76* **Actuar sin preguntarte**: aprobar una llamada a herramienta antes de que se te pregunte76* **Actuar sin preguntarte**: aprobar una llamada a herramienta antes de que se te pregunte
77* **Gastar tu uso**: llamar a un modelo con tu plan o tu clave de API77* **Gastar tu uso**: llamar a un modelo con tu plan o tu clave de API
78 78
79Los mods no se ejecutan en un sandbox. Si activas el [sandboxing](/docs/es/sandboxing.md), el sandbox aísla los comandos de Bash que ejecuta Claude, y un proceso que inicia un mod se ejecuta fuera de él.79Los mods no se ejecutan en un sandbox. Si activas el [sandboxing](https://code.claude.com/docs/es/sandboxing.md), el sandbox aísla los comandos de Bash que ejecuta Claude, y un proceso que inicia un mod se ejecuta fuera de él.
80 80
81Con [configuración administrada](/docs/es/settings.md#check-what-your-organization-enforces) o con un [`/login`](/docs/es/authentication#authentication-precedence) de Team o Enterprise como credencial de la sesión, de forma predeterminada la aprobación de un mod no permite que una llamada eluda tus reglas `ask` ni tus hooks `PreToolUse`. Sin ninguno de los dos, un mod puede aprobar una llamada para la que una regla `ask` te pediría confirmación, o que tu hook `PreToolUse` bloqueó. Para comprobar cuándo un mod también puede aprobar una llamada que una regla `deny` rechaza, consulta [Extender permisos con hooks](/docs/es/permissions.md#precedence-among-rules-hooks-and-mods).81Con [configuración administrada](https://code.claude.com/docs/es/settings.md#check-what-your-organization-enforces) o con un [`/login`](https://code.claude.com/docs/es/authentication#authentication-precedence) de Team o Enterprise como credencial de la sesión, de forma predeterminada la aprobación de un mod no permite que una llamada eluda tus reglas `ask` ni tus hooks `PreToolUse`. Sin ninguno de los dos, un mod puede aprobar una llamada para la que una regla `ask` te pediría confirmación, o que tu hook `PreToolUse` bloqueó. Para comprobar cuándo un mod también puede aprobar una llamada que una regla `deny` rechaza, consulta [Extender permisos con hooks](https://code.claude.com/docs/es/permissions.md#precedence-among-rules-hooks-and-mods).
82 82
83Un mod puede cambiar el estilo de gran parte de la interfaz de Claude Code, pero no de la solicitud de permiso. No puede cambiar lo que te muestra una solicitud.83Un mod puede cambiar el estilo de gran parte de la interfaz de Claude Code, pero no de la solicitud de permiso. No puede cambiar lo que te muestra una solicitud.
84 84
90claude plugin validate ./some-mod90claude plugin validate ./some-mod
91```91```
92 92
93Las líneas `hooks:` y `calls:` de la salida enumeran los eventos que maneja el mod y lo que le pide hacer a Claude Code. [Revisa lo que puede hacer un mod](/docs/es/plugins/mods/admin.md#review-what-a-mod-can-do) muestra la salida y qué llamadas debes buscar.93Las líneas `hooks:` y `calls:` de la salida enumeran los eventos que maneja el mod y lo que le pide hacer a Claude Code. [Revisa lo que puede hacer un mod](https://code.claude.com/docs/es/plugins/mods/admin.md#review-what-a-mod-can-do) muestra la salida y qué llamadas debes buscar.
94 94
95## Activar o desactivar los mods95## Activar o desactivar los mods
96 96
97Los mods están activados de forma predeterminada. En la terminal, usa Claude Code v2.1.287 o posterior. La app de escritorio incluye su propia copia de Claude Code, y los mods funcionan ahí a partir de v2.1.286. Comprueba la versión en el lugar donde usas los mods:97Los mods están activados de forma predeterminada. En la terminal, usa Claude Code v2.1.287 o posterior. La app de escritorio incluye su propia copia de Claude Code, y los mods funcionan ahí a partir de v2.1.286. Comprueba la versión en el lugar donde usas los mods:
98 98
99* **Terminal**: en tu shell, ejecuta `claude --version`. Si tu versión es anterior, [actualiza Claude Code](/docs/es/setup.md#update-claude-code).99* **Terminal**: en tu shell, ejecuta `claude --version`. Si tu versión es anterior, [actualiza Claude Code](https://code.claude.com/docs/es/setup.md#update-claude-code).
100* **App de escritorio**: en una sesión local en la pestaña Code, escribe `/status` y lee la fila **Claude Code**, que muestra una versión como `2.1.286`. Si tu versión es anterior, [actualiza la app de escritorio](/docs/es/desktop.md#claude-code-version-in-the-code-tab).100* **App de escritorio**: en una sesión local en la pestaña Code, escribe `/status` y lee la fila **Claude Code**, que muestra una versión como `2.1.286`. Si tu versión es anterior, [actualiza la app de escritorio](https://code.claude.com/docs/es/desktop.md#claude-code-version-in-the-code-tab).
101 101
102Para desactivar los mods, elige cuántos detener y durante cuánto tiempo. Para volver a activarlos, deshaz el mismo cambio:102Para desactivar los mods, elige cuántos detener y durante cuánto tiempo. Para volver a activarlos, deshaz el mismo cambio:
103 103
104* **Un mod**: deshabilita o desinstala su plugin desde la [pestaña **Installed** en `/plugin`](/docs/es/plugins/install#manage-installed-plugins)104* **Un mod**: deshabilita o desinstala su plugin desde la [pestaña **Installed** en `/plugin`](https://code.claude.com/docs/es/plugins/install#manage-installed-plugins)
105* **Todos los mods instalados, durante una sesión**: inicia Claude Code con [`--safe-mode`](/docs/es/cli-reference#cli-flags), que también deshabilita tus otras personalizaciones105* **Todos los mods instalados, durante una sesión**: inicia Claude Code con [`--safe-mode`](https://code.claude.com/docs/es/cli-reference#cli-flags), que también deshabilita tus otras personalizaciones
106* **Todos los mods que instalaste, en todas las sesiones**: establece [`"disableAllHooks": true`](/docs/es/settings-reference#disableallhooks) en `~/.claude/settings.json`. Tus hooks de configuración y tu línea de estado personalizada también se detienen. Lo que administra tu organización sigue ejecutándose.106* **Todos los mods que instalaste, en todas las sesiones**: establece [`"disableAllHooks": true`](https://code.claude.com/docs/es/settings-reference#disableallhooks) en `~/.claude/settings.json`. Tus hooks de configuración y tu línea de estado personalizada también se detienen. Lo que administra tu organización sigue ejecutándose.
107 107
108Si usas Claude Code a través de una organización, un administrador también puede limitar qué mods se cargan. Los administradores pueden empezar en [Impedir que se carguen los mods instalados por usuarios](/docs/es/plugins/mods/admin.md#stop-user-installed-mods-from-loading).108Si usas Claude Code a través de una organización, un administrador también puede limitar qué mods se cargan. Los administradores pueden empezar en [Impedir que se carguen los mods instalados por usuarios](https://code.claude.com/docs/es/plugins/mods/admin.md#stop-user-installed-mods-from-loading).
109 109
110`disableAllHooks` y el ajuste `allowManagedModsOnly` de tu organización detienen un mod y dejan el resto de su plugin en su lugar: el plugin sigue instalado, y sus skills, comandos, agentes y servidores MCP se cargan. Otros ajustes y flags tienen un alcance mayor. [`disableAllHooks`](/docs/es/settings-reference#disableallhooks) y [Qué se ejecuta con `allowManagedHooksOnly`](/docs/es/settings-reference#what-runs-under-allowmanagedhooksonly) indican qué hace cada uno a un plugin y a sus hooks de configuración.110`disableAllHooks` y el ajuste `allowManagedModsOnly` de tu organización detienen un mod y dejan el resto de su plugin en su lugar: el plugin sigue instalado, y sus skills, comandos, agentes y servidores MCP se cargan. Otros ajustes y flags tienen un alcance mayor. [`disableAllHooks`](https://code.claude.com/docs/es/settings-reference#disableallhooks) y [Qué se ejecuta con `allowManagedHooksOnly`](https://code.claude.com/docs/es/settings-reference#what-runs-under-allowmanagedhooksonly) indican qué hace cada uno a un plugin y a sus hooks de configuración.
111 111
112Para saber si los mods pueden cargarse en tu caso, consulta [Comprobar si los mods pueden cargarse](/docs/es/plugins/mods/troubleshoot.md#check-whether-mods-can-load).112Para saber si los mods pueden cargarse en tu caso, consulta [Comprobar si los mods pueden cargarse](https://code.claude.com/docs/es/plugins/mods/troubleshoot.md#check-whether-mods-can-load).
113 113
114> [!NOTE]114> [!NOTE]
115>115>
117 117
118### Ver qué mods cargó una sesión118### Ver qué mods cargó una sesión
119 119
120Para ver qué mods cargó una sesión de la terminal, ejecuta `/plugin` en el prompt de Claude Code. Una línea atenuada debajo de las pestañas muestra la cantidad y los nombres, como `1 mod active · first-mod`. Si un mod que instalaste no aparece ahí, consulta [Averiguar por qué un mod no hace nada](/docs/es/plugins/mods/troubleshoot.md#find-out-why-a-mod-does-nothing).120Para ver qué mods cargó una sesión de la terminal, ejecuta `/plugin` en el prompt de Claude Code. Una línea atenuada debajo de las pestañas muestra la cantidad y los nombres, como `1 mod active · first-mod`. Si un mod que instalaste no aparece ahí, consulta [Averiguar por qué un mod no hace nada](https://code.claude.com/docs/es/plugins/mods/troubleshoot.md#find-out-why-a-mod-does-nothing).
121 121
122## Cómo funciona un mod122## Cómo funciona un mod
123 123
124Un mod es un [plugin](/docs/es/plugins/overview.md) cuyo código registra controladores de eventos, llamados hooks. Claude Code ejecuta un hook cuando ocurre su evento, por ejemplo cuando Claude llama a una herramienta o cuando se dibuja el spinner. Un mod pequeño tiene tres archivos:124Un mod es un [plugin](https://code.claude.com/docs/es/plugins/overview.md) cuyo código registra controladores de eventos, llamados hooks. Claude Code ejecuta un hook cuando ocurre su evento, por ejemplo cuando Claude llama a una herramienta o cuando se dibuja el spinner. Un mod pequeño tiene tres archivos:
125 125
126```text theme={null}126```text theme={null}
127first-mod/127first-mod/
132 └── register.js132 └── register.js
133```133```
134 134
135* **`plugin.json`**: el [manifiesto](/docs/es/plugins/manifest-reference.md) del plugin135* **`plugin.json`**: el [manifiesto](https://code.claude.com/docs/es/plugins/manifest-reference.md) del plugin
136* **`hooks.json`**: [apunta a tu archivo de código](/docs/es/plugins/mods/reference.md#files)136* **`hooks.json`**: [apunta a tu archivo de código](https://code.claude.com/docs/es/plugins/mods/reference.md#files)
137* **`register.js`**: [tu código](/docs/es/plugins/mods/create.md#write-a-mod-yourself), llamado el módulo de hooks. Le indica a Claude Code en qué eventos debe ejecutar tus funciones.137* **`register.js`**: [tu código](https://code.claude.com/docs/es/plugins/mods/create.md#write-a-mod-yourself), llamado el módulo de hooks. Le indica a Claude Code en qué eventos debe ejecutar tus funciones.
138 138
139Este es un `register.js` completo. Cuenta las llamadas a herramientas que hace Claude y muestra el conteo junto al spinner mientras Claude trabaja, como en `Thinking · tool calls: 3…`.139Este es un `register.js` completo. Cuenta las llamadas a herramientas que hace Claude y muestra el conteo junto al spinner mientras Claude trabaja, como en `Thinking · tool calls: 3…`.
140 140
163 163
164El archivo registra dos hooks, y ambos usan la variable `calls` de la parte superior:164El archivo registra dos hooks, y ambos usan la variable `calls` de la parte superior:
165 165
166* **El hook [`tool.call`](/docs/es/plugins/mods/reference#tools)** se ejecuta cada vez que Claude está a punto de usar una herramienta. Suma uno a `calls`, le pide a Claude Code que vuelva a dibujar la interfaz y deja que la herramienta se ejecute como de costumbre.166* **El hook [`tool.call`](https://code.claude.com/docs/es/plugins/mods/reference#tools)** se ejecuta cada vez que Claude está a punto de usar una herramienta. Suma uno a `calls`, le pide a Claude Code que vuelva a dibujar la interfaz y deja que la herramienta se ejecute como de costumbre.
167* **El hook [`ui.render`](/docs/es/plugins/mods/reference#interface)** se ejecuta cada vez que Claude Code dibuja el spinner. Conserva el propio spinner de Claude Code y agrega el conteo después de la palabra.167* **El hook [`ui.render`](https://code.claude.com/docs/es/plugins/mods/reference#interface)** se ejecuta cada vez que Claude Code dibuja el spinner. Conserva el propio spinner de Claude Code y agrega el conteo después de la palabra.
168 168
169Esta grabación muestra el mod en acción. Observa la línea del spinner encima del cuadro del prompt: mientras Claude lista un directorio y lee dos archivos, muestra `Thinking · tool calls: 1…`, luego `2…` y luego `3…`.169Esta grabación muestra el mod en acción. Observa la línea del spinner encima del cuadro del prompt: mientras Claude lista un directorio y lee dos archivos, muestra `Thinking · tool calls: 1…`, luego `2…` y luego `3…`.
170 170
180 180
181Para hacer cualquier cosa fuera de su propio código, como dibujar, agregar un comando, llamar a un modelo, leer un archivo, iniciar un proceso o hacer una solicitud de red, un hook llama a la API de mods. Un hook no tiene otra forma de hacer esas cosas, y por eso Claude Code puede [listar lo que hace un mod](#list-what-a-mod-does-before-you-install-one) antes de que lo instales.181Para hacer cualquier cosa fuera de su propio código, como dibujar, agregar un comando, llamar a un modelo, leer un archivo, iniciar un proceso o hacer una solicitud de red, un hook llama a la API de mods. Un hook no tiene otra forma de hacer esas cosas, y por eso Claude Code puede [listar lo que hace un mod](#list-what-a-mod-does-before-you-install-one) antes de que lo instales.
182 182
183Para ver el código detrás de cada opción, consulta [Reaccionar a eventos](/docs/es/plugins/mods/events.md#how-a-hook-handles-an-event). Para ver a qué puede llamar un hook, consulta [Usar la API de mods](/docs/es/plugins/mods/api.md).183Para ver el código detrás de cada opción, consulta [Reaccionar a eventos](https://code.claude.com/docs/es/plugins/mods/events.md#how-a-hook-handles-an-event). Para ver a qué puede llamar un hook, consulta [Usar la API de mods](https://code.claude.com/docs/es/plugins/mods/api.md).
184 184
185### Dónde se ejecutan los mods185### Dónde se ejecutan los mods
186 186
189| Dónde ejecutas Claude Code | Los hooks se ejecutan | Lo que dibuja el mod aparece |189| Dónde ejecutas Claude Code | Los hooks se ejecutan | Lo que dibuja el mod aparece |
190| :- | :- | :- |190| :- | :- | :- |
191| `claude` en una terminal, incluida la terminal integrada de un editor y el plugin de JetBrains | Sí | Sí |191| `claude` en una terminal, incluida la terminal integrada de un editor y el plugin de JetBrains | Sí | Sí |
192| La pestaña Code de la app de escritorio, excepto en una sesión de WSL | Sí | Sí, excepto los elementos que la [tabla de elementos](/docs/es/plugins/mods/reference.md#elements) marca como exclusivos de la terminal |192| La pestaña Code de la app de escritorio, excepto en una sesión de WSL | Sí | Sí, excepto los elementos que la [tabla de elementos](https://code.claude.com/docs/es/plugins/mods/reference.md#elements) marca como exclusivos de la terminal |
193| Una [sesión de WSL](/docs/es/desktop-wsl.md) en la app de escritorio | No, porque los plugins no están disponibles en las sesiones de WSL | No |193| Una [sesión de WSL](https://code.claude.com/docs/es/desktop-wsl.md) en la app de escritorio | No, porque los plugins no están disponibles en las sesiones de WSL | No |
194| El panel de chat de la extensión de VS Code | Sí | Sí, con la versión 2.1.299 o posterior de la extensión. Una sesión que [no obtiene feature flags](/docs/es/env-vars.md#features-that-need-feature-flag-fetching), como una en Amazon Bedrock, necesita la versión 2.1.304 o posterior. Las tablas de [puntos de renderizado](/docs/es/plugins/mods/reference.md#render-sites) y de [elementos](/docs/es/plugins/mods/reference.md#elements) marcan lo que dibuja el panel. |194| El panel de chat de la extensión de VS Code | Sí | Sí, con la versión 2.1.299 o posterior de la extensión. Una sesión que [no obtiene feature flags](https://code.claude.com/docs/es/env-vars.md#features-that-need-feature-flag-fetching), como una en Amazon Bedrock, necesita la versión 2.1.304 o posterior. Las tablas de [puntos de renderizado](https://code.claude.com/docs/es/plugins/mods/reference.md#render-sites) y de [elementos](https://code.claude.com/docs/es/plugins/mods/reference.md#elements) marcan lo que dibuja el panel. |
195| `claude -p` y el [Agent SDK](/docs/es/agent-sdk/overview.md) | Sí | No |195| `claude -p` y el [Agent SDK](https://code.claude.com/docs/es/agent-sdk/overview.md) | Sí | No |
196| [Remote Control](/docs/es/remote-control.md) desde claude.ai o la app móvil | Sí, en la sesión de tu máquina | En la terminal de tu máquina |196| [Remote Control](https://code.claude.com/docs/es/remote-control.md) desde claude.ai o la app móvil | Sí, en la sesión de tu máquina | En la terminal de tu máquina |
197| Una [sesión en la nube](/docs/es/claude-code-on-the-web.md) | Sí, para un plugin que [llega a la sesión en la nube](/docs/es/cloud-environments.md#what-carries-over-from-your-setup) | No |197| Una [sesión en la nube](https://code.claude.com/docs/es/claude-code-on-the-web.md) | Sí, para un plugin que [llega a la sesión en la nube](https://code.claude.com/docs/es/cloud-environments.md#what-carries-over-from-your-setup) | No |
198 198
199Un mod que dibuja puede comprobar en qué app se está ejecutando y recurrir a una línea en la transcripción o a la respuesta de texto de un comando donde no se dibuja nada.199Un mod que dibuja puede comprobar en qué app se está ejecutando y recurrir a una línea en la transcripción o a la respuesta de texto de un comando donde no se dibuja nada.
200 200
201## Controla los mods para tu organización201## Controla los mods para tu organización
202 202
203Los administradores deciden si los mods se ejecutan y cuáles, mediante la [configuración administrada](/docs/es/managed-settings.md). [Administra los mods para tu organización](/docs/es/plugins/mods/admin.md) explica qué ocurre de forma predeterminada, cómo revisar un mod y cómo aplicar una política con un mod propio.203Los administradores deciden si los mods se ejecutan y cuáles, mediante la [configuración administrada](https://code.claude.com/docs/es/managed-settings.md). [Administra los mods para tu organización](https://code.claude.com/docs/es/plugins/mods/admin.md) explica qué ocurre de forma predeterminada, cómo revisar un mod y cómo aplicar una política con un mod propio.
204 204
205## Compara mods, hooks de configuración, skills y servidores MCP205## Compara mods, hooks de configuración, skills y servidores MCP
206 206
214| Qué escribes | JavaScript o TypeScript | Un script y una entrada en `settings.json` | Markdown | Un servidor en cualquier lenguaje |214| Qué escribes | JavaScript o TypeScript | Un script y una entrada en `settings.json` | Markdown | Un servidor en cualquier lenguaje |
215| Elígelo cuando | Quieres un panel, una franja sobre el prompt, un comando personalizado o reescribir un evento | Quieres bloquear, permitir o registrar un evento con un script que ya tienes | Sigues pegando las mismas instrucciones en el chat | Claude necesita acceder a un sistema externo |215| Elígelo cuando | Quieres un panel, una franja sobre el prompt, un comando personalizado o reescribir un evento | Quieres bloquear, permitir o registrar un evento con un script que ya tienes | Sigues pegando las mismas instrucciones en el chat | Claude necesita acceder a un sistema externo |
216 216
217Cada uno de los demás tiene su propia página: [Hooks](/docs/es/hooks.md), [Skills](/docs/es/skills.md) y [MCP](/docs/es/mcp.md). Un plugin puede contenerlos todos, así que un mod puede distribuirse en el mismo plugin que un skill y un servidor MCP.217Cada uno de los demás tiene su propia página: [Hooks](https://code.claude.com/docs/es/hooks.md), [Skills](https://code.claude.com/docs/es/skills.md) y [MCP](https://code.claude.com/docs/es/mcp.md). Un plugin puede contenerlos todos, así que un mod puede distribuirse en el mismo plugin que un skill y un servidor MCP.
218 218
219## Mods integrados en Claude Code219## Mods integrados en Claude Code
220 220
224 224
225| Nombre en `/plugin` | Qué hace | Dónde está activo | Cómo desactivarlo |225| Nombre en `/plugin` | Qué hace | Dónde está activo | Cómo desactivarlo |
226| :- | :- | :- | :- |226| :- | :- | :- | :- |
227| `cc-plugin-agents-md` | Carga `AGENTS.md` como instrucciones del proyecto | En cada sesión, excepto en [las que no pueden leer `AGENTS.md`](/docs/es/memory#when-agents-md-support-is-unavailable) | Deshabilítalo en `/plugin`, o [elige qué archivos de instrucciones se cargan](/docs/es/memory.md#choose-which-instruction-files-load) |227| `cc-plugin-agents-md` | Carga `AGENTS.md` como instrucciones del proyecto | En cada sesión, excepto en [las que no pueden leer `AGENTS.md`](https://code.claude.com/docs/es/memory#when-agents-md-support-is-unavailable) | Deshabilítalo en `/plugin`, o [elige qué archivos de instrucciones se cargan](https://code.claude.com/docs/es/memory.md#choose-which-instruction-files-load) |
228| `cc-plugin-diff` | Se encarga de [`/diff`](/docs/es/interactive-mode#review-changes-with-%2Fdiff) y dibuja su panel | Sesiones interactivas en la terminal | Deshabilítalo en `/plugin`. `/diff` se mantiene, y la versión integrada del comando en Claude Code lo responde. |228| `cc-plugin-diff` | Se encarga de [`/diff`](https://code.claude.com/docs/es/interactive-mode#review-changes-with-%2Fdiff) y dibuja su panel | Sesiones interactivas en la terminal | Deshabilítalo en `/plugin`. `/diff` se mantiene, y la versión integrada del comando en Claude Code lo responde. |
229| `cc-plugin-plugin-authoring` | Le da a Claude el [skill `plugin-authoring`](/docs/es/plugins/mods/create#ask-claude-for-a-mod) para escribir mods. Contiene un skill y nada de código de mod. | A menos que Anthropic haya desactivado los mods instalados de forma remota | Deshabilítalo en `/plugin` |229| `cc-plugin-plugin-authoring` | Le da a Claude el [skill `plugin-authoring`](https://code.claude.com/docs/es/plugins/mods/create#ask-claude-for-a-mod) para escribir mods. Contiene un skill y nada de código de mod. | A menos que Anthropic haya desactivado los mods instalados de forma remota | Deshabilítalo en `/plugin` |
230| `cc-plugin-sec-default` | Protege lo que administra tu organización frente a los mods que instala un usuario | [Dónde se carga la protección](/docs/es/plugins/mods/admin.md#know-what-happens-by-default) | No puedes. Un administrador [establece el orden](/docs/es/plugins/mods/admin.md#install-your-organizations-mods) en la configuración administrada |230| `cc-plugin-sec-default` | Protege lo que administra tu organización frente a los mods que instala un usuario | [Dónde se carga la protección](https://code.claude.com/docs/es/plugins/mods/admin.md#know-what-happens-by-default) | No puedes. Un administrador [establece el orden](https://code.claude.com/docs/es/plugins/mods/admin.md#install-your-organizations-mods) en la configuración administrada |
231| `cc-plugin-telemetry` | Envía los registros de analíticas que registran Claude Code y sus mods integrados | Dondequiera que las analíticas propias de Claude Code estén activadas | Deshabilítalo en `/plugin`, o desactiva las analíticas, por ejemplo con [`DISABLE_TELEMETRY`](/docs/es/env-vars) |231| `cc-plugin-telemetry` | Envía los registros de analíticas que registran Claude Code y sus mods integrados | Dondequiera que las analíticas propias de Claude Code estén activadas | Deshabilítalo en `/plugin`, o desactiva las analíticas, por ejemplo con [`DISABLE_TELEMETRY`](https://code.claude.com/docs/es/env-vars) |
232| `cc-plugin-you-should-know` | [You should know](/docs/es/interactive-mode.md#you-should-know-suggestions): un agente secundario muestra una nota encima del prompt cuando encuentra algo que podrías haber pasado por alto | Desactivado hasta que [lo actives](/docs/es/interactive-mode.md#you-should-know-suggestions) | Deshabilítalo en `/plugin` |232| `cc-plugin-you-should-know` | [You should know](https://code.claude.com/docs/es/interactive-mode.md#you-should-know-suggestions): un agente secundario muestra una nota encima del prompt cuando encuentra algo que podrías haber pasado por alto | Desactivado hasta que [lo actives](https://code.claude.com/docs/es/interactive-mode.md#you-should-know-suggestions) | Deshabilítalo en `/plugin` |
233 233
234Los ajustes y flags que detienen los mods instalados, como `disableAllHooks`, `--bare` y `--safe-mode`, no detienen los mods integrados.234Los ajustes y flags que detienen los mods instalados, como `disableAllHooks`, `--bare` y `--safe-mode`, no detienen los mods integrados.
235 235
238El código fuente de algunos de estos mods es público en el [directorio `mods` del repositorio de Claude Code](https://github.com/anthropics/claude-code/tree/main/mods). Cada uno es un plugin completo con su módulo de hooks y sus pruebas:238El código fuente de algunos de estos mods es público en el [directorio `mods` del repositorio de Claude Code](https://github.com/anthropics/claude-code/tree/main/mods). Cada uno es un plugin completo con su módulo de hooks y sus pruebas:
239 239
240* [`diff`](https://github.com/anthropics/claude-code/tree/main/mods/diff): el panel de `/diff`, con botones vinculados a acciones del teclado y un desplazamiento que el propio mod gestiona240* [`diff`](https://github.com/anthropics/claude-code/tree/main/mods/diff): el panel de `/diff`, con botones vinculados a acciones del teclado y un desplazamiento que el propio mod gestiona
241* [`agents-md`](https://github.com/anthropics/claude-code/tree/main/mods/agents-md): carga `AGENTS.md` como instrucciones del proyecto, con una opción [`userConfig`](/docs/es/plugins/components#user-configuration)241* [`agents-md`](https://github.com/anthropics/claude-code/tree/main/mods/agents-md): carga `AGENTS.md` como instrucciones del proyecto, con una opción [`userConfig`](https://code.claude.com/docs/es/plugins/components#user-configuration)
242* [`sec-default`](https://github.com/anthropics/claude-code/tree/main/mods/sec-default): la protección descrita en [Conoce qué sucede de forma predeterminada](/docs/es/plugins/mods/admin.md#know-what-happens-by-default), un modelo de mod que aplica políticas242* [`sec-default`](https://github.com/anthropics/claude-code/tree/main/mods/sec-default): la protección descrita en [Conoce qué sucede de forma predeterminada](https://code.claude.com/docs/es/plugins/mods/admin.md#know-what-happens-by-default), un modelo de mod que aplica políticas
243* [`telemetry`](https://github.com/anthropics/claude-code/tree/main/mods/telemetry): agrega métodos que otros mods pueden llamar e incluye sus tipos243* [`telemetry`](https://github.com/anthropics/claude-code/tree/main/mods/telemetry): agrega métodos que otros mods pueden llamar e incluye sus tipos
244 244
245## Próximos pasos245## Próximos pasos
246 246
247* [Crear un mod](/docs/es/plugins/mods/create.md): crea uno que cuente las llamadas a herramientas, muestre el recuento junto al indicador de carga y agregue un comando, y aprende el ciclo de edición y recarga247* [Crear un mod](https://code.claude.com/docs/es/plugins/mods/create.md): crea uno que cuente las llamadas a herramientas, muestre el recuento junto al indicador de carga y agregue un comando, y aprende el ciclo de edición y recarga
248* [Dibujar en la interfaz](/docs/es/plugins/mods/interface.md): paneles, la franja sobre el prompt, botones, campos de texto y estado248* [Dibujar en la interfaz](https://code.claude.com/docs/es/plugins/mods/interface.md): paneles, la franja sobre el prompt, botones, campos de texto y estado
249* [Reaccionar a eventos](/docs/es/plugins/mods/events.md): llamadas a herramientas, prompts, turnos y el orden en que se ejecutan los mods249* [Reaccionar a eventos](https://code.claude.com/docs/es/plugins/mods/events.md): llamadas a herramientas, prompts, turnos y el orden en que se ejecutan los mods
250* [Usar la API de mods](/docs/es/plugins/mods/api.md): comandos, herramientas, llamadas al modelo, temporizadores y archivos250* [Usar la API de mods](https://code.claude.com/docs/es/plugins/mods/api.md): comandos, herramientas, llamadas al modelo, temporizadores y archivos
251* [Probar un mod](/docs/es/plugins/mods/test.md): pruebas automatizadas que se ejecutan sin una sesión251* [Probar un mod](https://code.claude.com/docs/es/plugins/mods/test.md): pruebas automatizadas que se ejecutan sin una sesión
252* [Solucionar problemas de un mod](/docs/es/plugins/mods/troubleshoot.md): los motivos por los que un mod no hace nada y el registro de depuración252* [Solucionar problemas de un mod](https://code.claude.com/docs/es/plugins/mods/troubleshoot.md): los motivos por los que un mod no hace nada y el registro de depuración
253* [Administrar mods para tu organización](/docs/es/plugins/mods/admin.md): valores predeterminados, configuración administrada, revisión de un mod y mods de políticas253* [Administrar mods para tu organización](https://code.claude.com/docs/es/plugins/mods/admin.md): valores predeterminados, configuración administrada, revisión de un mod y mods de políticas
254* [Referencia de mods](/docs/es/plugins/mods/reference.md): eventos, métodos, elementos y límites254* [Referencia de mods](https://code.claude.com/docs/es/plugins/mods/reference.md): eventos, métodos, elementos y límites