Desarrollo e IA Noticia
Mods de Claude Code: ya se puede reprogramar el agente por dentro
La versión 2.1.287 permite extender Claude Code con código JavaScript o TypeScript que dibuja paneles, intercepta herramientas y añade comandos. Con una advertencia: no están aislados.
Anthropic ha abierto las entrañas de Claude Code. La versión 2.1.287, publicada el 1 de octubre, introduce los mods: extensiones escritas en JavaScript o TypeScript que se ejecutan dentro de la propia herramienta y pueden cambiar tanto su interfaz como su comportamiento. El registro de cambios lo resume en una línea: los plugins ya pueden modificar un comportamiento más profundo. En la práctica, es lo más parecido a poder reprogramar el agente desde dentro.
¿Qué son los mods de Claude Code?
Según la documentación oficial, un mod es un plugin que cambia cómo se ve y cómo se comporta Claude Code. Está formado por manejadores de eventos: Claude Code los llama cuando ocurre algo, como una llamada a una herramienta, el envío de un prompt o el dibujado de una parte de la interfaz, y el manejador puede observar ese evento, modificarlo o tomar el control.
La diferencia con lo que ya existía es dónde se ejecutan. Los hooks de configuración, las skills, la línea de estado o los servidores MCP actúan desde fuera: lanzan un script o le dan al modelo texto y herramientas. Un mod corre dentro del proceso de Claude Code, y eso le permite hacer cosas que los demás no pueden.
¿Qué se puede hacer con un mod?
- Dibujar interfaz propia: un panel junto a la conversación o una franja sobre el prompt, con pestañas, botones y campos de texto.
- Redibujar la interfaz de Claude Code: sustituir o reestilizar elementos como la fila de una llamada a herramienta, el indicador de actividad o el diálogo de preguntas.
- Intervenir en una llamada o en una petición: retener una llamada a herramienta mientras se pregunta al usuario, responderla sin ejecutarla o enviar una petición a otro modelo.
- Crear comandos que ejecutan código al instante, sin turno de Claude y aunque el agente esté trabajando.
- Compartir datos entre manejadores: uno puede contar llamadas a herramientas y otro mostrar el recuento en pantalla.
Anthropic ha publicado mods de ejemplo en el repositorio claude-code-playground: token-weather dibuja una «previsión» del uso de la ventana de contexto, blast-radius retiene comandos peligrosos como un rm -rf o un force push y muestra qué cambiarían antes de dejar continuar, y replay-theater añade un comando /replay para repasar las ediciones del último turno.
¿Cómo es un mod por dentro?
Un mod mínimo tiene tres archivos: el manifiesto del plugin en .claude-plugin/plugin.json, un hooks/hooks.json que apunta al código y un hooks/register.js con la lógica. Este es, resumido, el ejemplo de la documentación, que cuenta las llamadas a herramientas y muestra el número junto al indicador de actividad:
let calls = 0
export function register(on) {
on('tool.call', async ($, e, next) => {
calls += 1
$.ui.invalidate('ui.render')
return next(e)
})
on('ui.render', { component: 'Spinner' }, async ($, e, next) => {
return next({ ...e, props: { ...e.props, suffix: ' · tool calls: ' + calls + '…' } })
})
}
No hace falta escribirlo a mano: Claude Code incluye una skill de creación de plugins, así que basta con describir en una sesión lo que se quiere y Claude genera el mod.
Lee también: Skills, subagentes, hooks y plugins de Claude Code: guía práctica
¿Cómo se instala un mod y dónde funciona?
Los mods se instalan como cualquier plugin, desde un marketplace: /plugin install nombre@marketplace dentro de una sesión o claude plugin install nombre@marketplace desde la terminal. Vienen activados por defecto y requieren Claude Code 2.1.287 o superior en la terminal; la app de escritorio los admite desde la 2.1.286 en su pestaña Code. Según la documentación, sus manejadores se ejecutan también en claude -p, en el Agent SDK y en sesiones en la nube, aunque ahí no se dibuja nada. The Decoder señala además un soporte parcial en la extensión de VS Code.
Anthropic predica con el ejemplo: parte de las funciones nativas de Claude Code ya son mods, como el panel de /diff o la carga de AGENTS.md. Con la novedad llega también un mod integrado, You should know, que lanza un agente auxiliar que muestra un aviso sobre el prompt cuando detecta algo que el usuario podría haber pasado por alto. Se activa con:
/plugin enable cc-plugin-you-should-know@builtin
¿Son seguros los mods?
Aquí está la letra pequeña, y Anthropic la deja clara: un mod es código que se ejecuta con los permisos del usuario y no está aislado. Puede leer y escribir archivos, lanzar procesos, hacer peticiones de red, leer variables de entorno con claves de API, ver todos los prompts y llamadas a herramientas, aprobar acciones sin preguntar y gastar uso del plan. Ni siquiera el sandbox lo contiene: aísla los comandos Bash de Claude, no los procesos que lance un mod. Lo único que no puede reestilizar es el aviso de permisos.
Por eso la recomendación oficial es instalar mods solo de autores y marketplaces de confianza. Para desactivarlos hay varias palancas: deshabilitar un plugin concreto desde /plugin, arrancar una sesión con --safe-mode o fijar "disableAllHooks": true en ~/.claude/settings.json, que también detiene los hooks de configuración. Las organizaciones pueden limitar qué mods se cargan mediante configuración gestionada.
¿Mod, hook, skill o servidor MCP?
La documentación incluye una comparativa útil para no matar moscas a cañonazos:
- Mod: cuando se quiere un panel, una franja sobre el prompt, un comando propio o reescribir un evento.
- Hook de configuración: para bloquear, permitir o registrar un evento con un script que ya existe.
- Skill: cuando se repiten las mismas instrucciones en el chat.
- Servidor MCP: cuando Claude necesita acceder a un sistema externo.
Para agencias y equipos técnicos, la lectura es doble. Por un lado, los mods permiten construir guardarraíles a medida, como el ejemplo de blast-radius, o paneles de control de consumo que hasta ahora no eran posibles. Por otro, amplían la superficie de ataque: un mod malicioso en un plugin aparentemente inocente tiene acceso a todo. Conviene tratarlos como cualquier dependencia de código, con revisión antes de instalar y una lista blanca en los equipos gestionados.