Intro: diez mods, tres sobreviven
Los mods de Claude Code son funciones TypeScript dentro de plugins que pueden redibujar la interfaz de Claude Code o reescribir lo que hace, y en el primer día tras su lanzamiento a inicios de octubre, tres tours en video distintos les dijeron a los desarrolladores que instalaran diez de ellos. Dos de esos creadores admiten frente a la cámara que algunos mods no ahorran nada, y ninguno midió ni uno. Esta prueba sí lo hace: cada uno de los diez mods con mucho hype corrió en una semana real de trabajo, con un número para su sobrecarga, su ahorro y un veredicto de conservar o borrar. El resultado por adelantado: solo tres de los diez se ganan un lugar en la máquina de un desarrollador que trabaja, y uno de ellos gasta tokens en silencio en cada respuesta.
La ola y qué probamos
La definición de Anthropic cabe en una sola frase: un mod es una función que se engancha a un evento, y puede correr antes, después o en lugar de él. Un evento es una llamada a una herramienta, un prompt enviado o una parte de la interfaz que se dibuja. Los mods son TypeScript puro, distribuidos dentro de un plugin que instalas como cualquier otro.
El tuit de lanzamiento superó los cuatro millones de vistas en cerca de un día, con veinte mil likes y más guardados que respuestas y reposts juntos. Dos días después del lanzamiento, un catálogo de la comunidad ya había escaneado más de mil mods públicos en cientos de repositorios.
El banco de pruebas es una semana real de trabajo: 85 sesiones en cuatro proyectos, casi 900 prompts y menos de 6.000 llamadas a herramientas. Cada mod pasó por la auditoría del validador, que enumera a qué se engancha y qué puede tocar, y cada mod corrió la misma tarea contra una base limpia, en la versión actual, en la misma máquina.
El resumen: seis de los diez no cuestan nada medible en ejecución, tres cuestan tiempo o tokens reales, y uno rompe la única promesa que hace.
El nivel decorativo, medido
Los seis silenciosos quedan dentro del ruido de la conexión. El medidor de metas, el mapa de calor del repo, la grabadora de vuelo, el enrutador de modelos, los marcadores de sesión y el traspaso automático están todos entre un cuarto de segundo ahorrado y una quinta parte de segundo añadida, sobre una tarea base de unos cuatro segundos.
| Mod | Variación en ejecución | Notas |
|---|---|---|
| Medidor de metas | dentro del ruido | panel decorativo |
| Mapa de calor del repo | dentro del ruido | ilumina los archivos a medida que se leen |
| Grabadora de vuelo | dentro del ruido | línea de tiempo en vivo del turno |
| Enrutador de modelos | dentro del ruido | rinde en los subagents, ver veredicto |
| Marcadores de sesión | dentro del ruido | alcance de capacidades muy amplio |
| Traspaso automático | ~70 ms en reposo | escribe un traspaso al llegar a un umbral de contexto |
Se ven geniales y nada se rompió: cada corrida de cada configuración terminó la tarea correctamente. En modo headless no cuestan nada, porque no hay nada que dibujar; en una terminal estos paneles se redibujan hasta treinta veces por segundo, así que el costo real del nivel decorativo es tu atención, no los tokens.
La auditoría del validador es donde deja de ser divertido. El mod de marcadores puede llamar al modelo, iniciar procesos en tu máquina y escribir archivos, y lee las rutas de tu configuración desde el entorno. Nada de eso está oculto y nada es malicioso, pero es muchísimo alcance para un marcador. Cuatro mods salen aquí: el medidor de metas, el mapa de calor y la grabadora de vuelo por ser decoración sin beneficio medido, y el mod de marcadores porque pide más de lo que aporta.
El mod estrella te cobra cada turno
El motor de sugerencias es el mod que todos los videos demuestran primero: tu respuesta termina, aparecen tres sugerencias de prompt sobre el compositor, presionas un número y el borrador se llena solo. Su propio autor documenta el mecanismo: cuando tu turno termina, bifurca la sesión para pedirle esas sugerencias a un modelo, y la bifurcación comparte el prompt cache de la sesión, así que cuesta más o menos una respuesta corta. Los tours nunca mencionan esa línea.
Medido en el banco de pruebas, son unos 250 tokens de salida extra por respuesta que califica y casi tres segundos más de tiempo real, y una respuesta que califica es casi cualquier respuesta: todo lo que pase de unos ochenta caracteres. Además, la bifurcación no tiene ningún filtro por superficie. Las sugerencias solo se dibujan en una terminal, pero la bifurcación se dispara en todas partes, incluso en corridas headless donde no se puede dibujar nada.
| Mod | Costo medido | Cuándo se dispara |
|---|---|---|
| Motor de sugerencias | ~250 tokens de salida + ~2,9 s por respuesta que califica | toda respuesta de más de ~80 caracteres, incluso en headless |
| Guardián de caché | ~1,5 s por turno, más llamadas al modelo en modo de calentamiento | cada turno, calentando durante horas |
El guardián de caché tiene la misma forma: alrededor de un segundo y medio por turno, con un modo de calentamiento que gasta pequeñas llamadas al modelo durante horas para evitar que tu prompt cache se enfríe. En un plan de suscripción la ventana de caché ya es de una hora, así que estás pagando pings para resolver un problema que el plan ya resolvió en su mayoría. Ambos son diseños honestos con costos documentados, ambos son un impuesto en cada turno que las listas de instalación nunca ponen en precio, y ambos salen de la máquina.
Mod vs hook, el mismo trabajo
Claude Code ya tenía hooks: un script de shell en tu configuración que se dispara con los mismos eventos. La documentación responde la elección en una fila de tabla: un mod es para la interfaz y para reescribir eventos; un hook es para bloquear, permitir o registrar con un script que ya tienes.
La diferencia medible es el arranque de proceso. Un hook de la configuración inicia un proceso nuevo en cada llamada a una herramienta. Medido en esta máquina, un hook de shell que no hace nada cuesta unos 8 ms y un hook que inicia Node unos 43 ms, en cada llamada, antes de que el script haga algo. En las 5.993 llamadas a herramientas de la semana del banco de pruebas, eso son más de cuatro minutos de puro arranque de intérprete. Un mod no paga nada de eso: su handler corre dentro del propio proceso del motor, y el log del motor muestra que el salto se resuelve en cerca de un milisegundo.
| Handler | Costo por llamada | Una semana de 5.993 llamadas |
|---|---|---|
| Hook de shell (sin operación) | ~8 ms | ~48 s |
| Hook de Node (sin operación) | ~43 ms | ~4,3 min |
| Mod (en proceso) | ~1 ms | ~6 s |
El único reporte real de migración que existe dice lo mismo: veintisiete hooks de shell se redujeron a cinco mods, y el arranque de proceso en cada llamada desapareció con ellos. La regla que sobrevive: interfaz o reescritura de eventos, mod; bloquear, permitir o registrar con un script en el que confías, hook; el costo de arranque solo importa con miles de llamadas; conocimiento que sigues repitiendo, skill. Un hook que has leído vale más que un mod que no.
El guardián que no hace nada
El mod de seguridad más simple posible es un guardián que vigila cada comando de shell, y este se escribió para fallar. Se le pidió a Claude Code que creara un archivo marcador; el guardián lanzó una excepción; el comando corrió igual y el archivo apareció. Eso no es un bug sino el comportamiento documentado por defecto: cuando un hook lanza una excepción, agota el tiempo o devuelve una forma incorrecta, Claude Code lo omite y sigue. Una decoración rota no debería inutilizar una sesión, pero un guardián roto falla abierto, en silencio, con una línea en un log de depuración que nadie lee.
La solución es un catch handler que devuelve un deny. El mismo guardián que falla, ahora con el catch, rechaza el comando y nombra el fallo. Una línea decide si un guardián falla abierto o falla cerrado, la documentación incluye exactamente este patrón y casi nadie lo instala.
Un equipo de la comunidad volvió a correr los casos en la versión actual y juzgó por archivos marcadores en vez de por lo que dijo el modelo. El patrón con catch falló cerrado tres corridas de tres, y un camino sigue roto en silencio: un deny devuelto después de que la llamada ya fue reenviada no detiene la herramienta. El archivo se escribió tres veces de tres mientras al modelo se le decía que la escritura había fallado.
El reporte de campo que nombró este problema corrió un guardián durante días que estaba habilitado, cargado y sin hacer nada, porque una bandera obsoleta lo había apagado por debajo: tres indicadores verdes sobre un contador atascado en cero. Un silencio que se ve exactamente como salud.
El guardián de colisiones se gana el primer lugar. Resuelve un problema real, dos chats abiertos editando el mismo archivo, y su modo de fallo es ruidoso: pregunta en un diálogo y nunca permite en silencio. Cuesta alrededor de medio segundo en las ediciones y no agrega nada al prompt. Instálalo, y dale el catch handler de todos modos.
Qué concedes cuando pegas uno
Anthropic lo dice con palabras claras el día del lanzamiento: los mods corren con el mismo acceso a tu máquina que el propio Claude Code. No están en sandbox; instálalos como instalarías cualquier código en tu computadora. En concreto, un mod puede actuar en tu máquina como tú: leer tu entorno y tu configuración, donde viven las claves de API; ver cada prompt y cada llamada a una herramienta; reescribirlos; aprobar una llamada a una herramienta antes de que te pregunten; y gastar el uso de tu plan en llamadas al modelo propias.
Dos trampas atrapan incluso a los usuarios cuidadosos. Las reglas de permisos gobiernan las llamadas de Claude a herramientas, no las llamadas propias del mod: si le niegas a Claude un archivo de entorno, un mod aún puede leer ese archivo directamente con su propio acceso a archivos, o iniciar un programa que lo haga. La política de red tiene el mismo borde: si apagas el tráfico web, las llamadas fetch del propio mod se rechazan, pero un proceso hijo que el mod inicia llega a la red con acceso completo. Existe un mod guardián integrado que se carga antes que todo, pero solo en máquinas administradas y para plazas de Team o Enterprise; una plaza individual con suscripción personal no recibe nada de eso.
Nada de esto es teórico. Un usuario publicó una prueba de concepto días después del lanzamiento: un mod cuyo botón inicia un programa y escribe en el directorio personal, instalado desde el catálogo sin ninguna advertencia, y su punto se sostiene: el catálogo parece una tienda de apps, lo que sugiere una revisión que no existe. Un bug aparte en los hooks rompió el aislamiento de los subagents durante un día; el mantenedor lo llamó un gran error y lo corrigió una versión después.
El escaneo del propio catálogo sobre más de mil mods públicos: más de cuatrocientos inician procesos en el host, casi cuatrocientos leen archivos y más de trescientos ven cada llamada a una herramienta. La advertencia del catálogo es el marco correcto: eso es una huella, no un veredicto; un rastreador de PRs tiene que ejecutar git. La disciplina cuesta dos minutos: ejecuta el validador antes de habilitar cualquier cosa, y conoce las salidas: el modo seguro para una sesión, un ajuste para detener todos los hooks instalados de forma definitiva.
Conserva tres, borra siete
De los diez, tres se ganan su lugar: el guardián de colisiones, el enrutador de modelos y el traspaso automático.
| Mod | Veredicto | El número detrás |
|---|---|---|
| Guardián de colisiones | conservar | ~0,5 s en ediciones, falla de forma ruidosa, nada añadido al prompt |
| Enrutador de modelos | conservar | subagent facturado en el modelo barato, a un tercio del precio |
| Traspaso automático | conservar | 70 ms de nada, una escritura de traspaso al llegar al umbral de contexto |
| Motor de sugerencias | borrar | ~250 tokens de salida + ~2,9 s en cada respuesta que califica |
| Guardián de caché | borrar | ~1,5 s por turno, pings de calentamiento contra una ventana de caché de 1 hora |
| Modo de grabación | borrar | oculta la pantalla pero no el disco |
| Medidor de metas | borrar | decoración, cero beneficio medido |
| Mapa de calor del repo | borrar | decoración, cero beneficio medido |
| Grabadora de vuelo | borrar | decoración, cero beneficio medido |
| Marcadores de sesión | borrar | alcance muy superior a su función |
El enrutador de modelos tiene un recibo: una sesión en el modelo grande lanzó un subagent, y el propio reporte de uso de la corrida mostró al subagent facturado en el modelo barato, a un tercio del precio por el mismo trabajo pequeño. En semanas con muchos subagents eso es dinero real. El traspaso automático no cuesta nada hasta el momento en que rinde: setenta milisegundos de sobrecarga en reposo, y al pasar un umbral de contexto escribe el traspaso para el arranque en frío, una sola vez. Uno de los creadores de la ola admite que el botón manual de traspaso no ahorra tiempo de verdad; como escritura automática por umbral, sí lo hace.
La disciplina que sobrevive a la prueba: lee la auditoría del validador antes de habilitar cualquier cosa, dale a cada guardián su catch handler para que falle cerrado, y graba las demos en modo seguro en vez de confiar en un mod que enmascara. Los límites son reales: una semana, una máquina, una carga de trabajo, tres corridas por punto en el modelo pequeño. Tus tres pueden ser distintos, pero ahora sabes cómo encontrarlos.
AIDive