Funciones que corren dentro del agente, no al lado

Anthropic ha abierto Claude Code a los mods: funciones de JavaScript o TypeScript que se ejecutan dentro del propio proceso de la herramienta y pueden observar, reescribir o tomar el control de lo que hace. La empresa publicó la documentación y una guía de inicio el 1 de octubre.

Un mod registra manejadores, que Anthropic llama hooks, frente a eventos del bucle del agente. Cuando Claude Code va a usar una herramienta, enviar un prompt, dibujar parte de su interfaz o terminar un turno, llama primero al manejador, y este decide qué ocurre después. Puede observar y dejar pasar el evento, reescribirlo o responderlo él mismo para que el comportamiento habitual no llegue a ejecutarse.

Eso es distinto de lo que Claude Code ya tenía. Los hooks de configuración ejecutan un comando de consola, una petición HTTP o un prompt desde fuera. Las skills dan instrucciones al modelo. Los servidores MCP le dan herramientas. Un mod corre en el mismo proceso que el agente, y por eso puede dibujar un panel junto a la transcripción, sustituir la fila que Claude Code pinta para una llamada a herramienta, o retener un comando mientras pregunta algo al usuario.

Puntas de llave de vaso ordenadas en filas dentro de un maletín de herramientas
Un mod puede observar un evento, reescribirlo o responderlo para que el comportamiento habitual no se ejecute. Ilustración. Erik Mclean · pexels · Pexels License

Hasta dónde llega un mod

Anthropic es directa sobre el intercambio. Los mods no están en una caja de arena. La propia advertencia de la documentación es que un mod “es código que se ejecuta con tus permisos”, y la lista que sigue no es corta: puede leer y escribir cualquier archivo que pueda la cuenta del usuario, lanzar programas, hacer peticiones de red, leer variables de entorno y archivos de configuración incluida una clave de API, ver cada prompt y cada llamada a herramienta, reescribir un prompt o enviarlo como si lo hubiera escrito el usuario, aprobar una llamada antes de que se pregunte al usuario, y gastar el plan o la clave de API del usuario en llamadas al modelo.

Si el aislamiento está activado, cubre los comandos de consola que ejecuta Claude; un proceso lanzado por un mod queda fuera. Un mod que aprueba llamadas puede aprobar una que una regla de consulta habría preguntado. Lo único que no puede reestilizar es el propio aviso de permisos.

La respuesta de Anthropic es la inspección, no el aislamiento. Ejecutar claude plugin validate sobre el directorio de un plugin imprime qué eventos maneja el mod y qué le pide a Claude Code, sin ejecutarlo.

Dónde encaja esto

Los mods se distribuyen como plugins y se instalan desde un marketplace, funcionan en la CLI y en la pestaña Code de la aplicación de escritorio, y ejecutan sus hooks en sesiones sin interfaz y en la nube sin dibujar nada. Requieren Claude Code v2.1.287 o posterior y están activados por defecto; --safe-mode los detiene en una sesión y disableAllHooks detiene todos los instalados.

Cables conectados a los canales de entrada numerados de una mesa de mezclas de audio
Los mods se distribuyen como plugins y se instalan desde un marketplace. Ilustración. 將將 王 · pexels · Pexels License

Algunas funciones propias de Claude Code ya son mods, entre ellas /diff, y su código está público en el repositorio del producto. Anthropic publica además ejemplos: uno dibuja una previsión del uso de la ventana de contexto encima del prompt, otro retiene un comando de consola arriesgado como rm -rf y muestra qué cambiaría, y otro recorre las ediciones de archivos del último turno.

Para las organizaciones, los administradores pueden limitar qué mods se cargan mediante la configuración gestionada, y una protección incorporada resguarda lo que gestiona la organización frente a los mods que instale un usuario.

Lo que hay que vigilar es el marketplace. Código de terceros sin aislamiento y con acceso completo a la máquina y la sesión de un desarrollador es el mismo problema de distribución que llevan años teniendo las extensiones de navegador y npm, y la respuesta por ahora es un comando de validación y una advertencia en la documentación.