Claude Code lanza mods, que reescriben prompts e interfaz

El 1 de octubre, Anthropic añadió a Claude Code un mecanismo de extensión llamado mods. Según el blog oficial, un mod es una pequeña función en TypeScript que se conecta a los eventos de Claude Code y puede reescribir prompts, añadir elementos de interfaz, sustituir funciones integradas o simplemente agregar una función nueva. Es compatible tanto con la CLI como con la app de escritorio, y requiere Claude Code 2.1.287 o superior.

La distribución sigue el sistema de plugins ya existente: se instala desde el marketplace de plugins de Claude, o ejecutando /plugin durante la sesión. Para compartir un mod propio con otras personas, basta empaquetarlo como plugin y enviarlo al marketplace.

Qué puntos puede tocar

En Claude Code, cada llamada a una herramienta, cada solicitud de permiso o el renderizado de una zona de la pantalla dispara un evento; un mod puede ejecutarse antes o después de ese evento, o sustituirlo por completo. La lista oficial de capacidades incluye:

  • reescribir el prompt que llega al modelo;
  • interceptar, reescribir o repetir llamadas a herramientas;
  • aprobar o rechazar solicitudes de permiso;
  • eliminar partes del resultado de una herramienta antes de que Claude las lea;
  • añadir botones y campos de entrada a la interfaz.

El tutorial de introducción en el blog para desarrolladores lo escribió Addy Osmani, y detalla mejor el procesamiento del modelo. Cada hook es un eslabón en una cadena de middleware y puede escribirse de tres formas: llamar primero a next(e) y examinar el resultado después, lo que se llama observar; pasar hacia abajo un evento con campos modificados, lo que se llama reescribir; no llamar a next() y devolver directamente {deny: "reason"}, lo que se llama responder. Los eventos cubiertos incluyen llamadas a herramientas, el envío de prompts, el inicio y fin de un turno, los comandos de barra y el renderizado de la interfaz.

El ejemplo del tutorial es un mod de unas 80 líneas llamado Token Weather. Dibuja encima del campo de entrada una especie de “pronóstico del tiempo del contexto”: cambia el icono del clima según la proporción de uso de la ventana de contexto, muestra el recuento actual de tokens junto con el porcentaje, añade un minigráfico de líneas de los últimos 12 turnos, e indica cuánto subió respecto al turno anterior. La parte de interfaz usa el componente AbovePrompt.

De los hooks a los mods

Claude Code ya contaba con settings hooks: cada evento lanza un comando de shell, intercambiando JSON por stdin y stdout. Es sencillo, pero tiene un costo: cada vez es un proceso nuevo, que no recuerda nada de lo ocurrido antes.

Los mods se cargan una sola vez al iniciar la sesión y permanecen residentes después. El tutorial señala tres diferencias: pueden guardar estado, renderizar una interfaz que cambia dinámicamente, y llamar a las propias funciones de Claude Code, como abrir un panel o registrar un comando. Para dibujar el gráfico de líneas de 12 turnos, Token Weather depende precisamente de ese estado residente; con un shell hook habría que escribir los datos a disco manualmente.

Si se traza esta línea hacia atrás, la extensibilidad de Claude Code se ha construido en capas: primero CLAUDE.md y los settings hooks, luego el marketplace /plugin, y hace solo unos días el soporte para AGENTS.md también se implementó mediante un plugin integrado. Los mods convierten el hook de “un script externo conectado” en “código que corre dentro del proceso”, ampliando mucho el alcance posible de las modificaciones.

Límites de seguridad

Con mayor alcance llega mayor riesgo. El blog oficial lo dice sin rodeos:

Mods run with the same access to your machine as Claude Code itself. They aren't sandboxed, and you should only install mods from sources you trust.

(Los mods tienen el mismo acceso a tu equipo que el propio Claude Code. No se ejecutan en sandbox, y solo deberías instalar mods de fuentes en las que confíes.)

El tutorial describe el entorno de ejecución en otro pasaje: el módulo corre en su propio entorno aislado, sin DOM y sin Node, y toda operación hacia el exterior debe pasar por la interfaz $. Si se leen ambos pasajes juntos, queda claro: lo que está aislado es el runtime, no los permisos. Basta con que un mod reciba un evento de permiso para que pueda pulsar “aprobar” en nombre del usuario.

Los planes Team y Enterprise, además de los equipos con configuraciones gestionadas, cargan primero un mod integrado llamado sec-default, que bloquea las acciones de alto riesgo de los mods instalados por el usuario, como sobrescribir las reglas de rechazo de permisos; los administradores también pueden limitar, desde el panel enterprise, qué marketplaces se pueden instalar. Las cuentas individuales no tienen esta capa de protección por defecto. Para los equipos en China continental, donde ya de por sí es alta la barrera de cuenta y de red para usar Claude Code, los mods a corto plazo funcionan más como una herramienta adicional de personalización para equipos que ya usan el producto; qué tan rápido crezca el ecosistema de mods de terceros dependerá de cuán permisiva sea la revisión del marketplace.

Fuentes: blog oficial de Anthropic Claude, tutorial de introducción del blog de desarrolladores de Claude, CocoLoop; el tutorial oficial fue verificado en cuanto a requisitos de versión, tipos de evento y número de líneas del código de ejemplo.