Claude Code ahora se deja cambiar por dentro
Hasta hace poco, todo lo que le agregabas a Claude Code trabajaba desde afuera. Una skill le da instrucciones. Un servidor MCP le da herramientas. Un hook de configuración corre un script cuando pasa algo. Ninguno puede tocar lo que ves en la pantalla.
Los mods sí. Un mod es código que corre dentro de Claude Code. Puede dibujar un panel al lado de la conversación, poner una franja arriba de donde escribes, cambiar cómo se ve el spinner o frenar un comando peligroso antes de que corra.
Todo lo que sigue sale de la documentación oficial de Claude Code, en la sección de mods. La revisé el 7 de octubre de 2026.
Qué es un mod
Un mod es un plugin de Claude Code que trae funciones escritas en JavaScript o TypeScript. Cada función está pendiente de un evento: Claude va a usar una herramienta, envías un prompt, se dibuja una parte de la pantalla. Cuando el evento pasa, Claude Code llama la función y ella decide qué hacer.
Tiene tres caminos:
Observar
Mira lo que pasa, lo anota y deja que todo siga igual. Por ejemplo, contar cuántas herramientas usó Claude en la sesión.
Reescribir
Cambia el evento antes de que siga. Por ejemplo, agregarle un texto al spinner mientras Claude trabaja.
Responder
Atiende el evento ella misma y el comportamiento normal no corre. Por ejemplo, rechazar un comando que borra carpetas completas.
Skill, MCP y hooks de configuración
- La skill es un archivo de instrucciones que Claude lee
- El servidor MCP le da herramientas nuevas a Claude
- El hook de configuración corre un script cuando pasa algo
- Ninguno dibuja nada en la pantalla
Mod
Qué puede hacer un mod
La documentación lista estas capacidades:
- Dibujar una interfaz propia. Un panel al lado de la conversación o una franja arriba del prompt, con pestañas, botones y campos de texto.
- Rehacer partes de Claude Code. La fila de una herramienta, el spinner, los mensajes o el diálogo donde Claude te hace preguntas.
- Meterse en una herramienta o en una petición. Frenarla para preguntarte algo, responderla sin correr la herramienta o mandar esa petición a otro modelo.
- Crear comandos propios. Un
/comandoque corre tu código al instante, sin turno de Claude, incluso mientras Claude está trabajando. - Compartir datos entre sus partes. Una función cuenta y otra muestra el conteo en pantalla.
- Llamar otro modelo. Mandarle una tarea a un modelo distinto, por fuera de la conversación.
- Mandar mensajes a otra sesión. A otra de tus sesiones de Claude Code o a un subagente.
- Trabajar en segundo plano y guardar datos entre una sesión y otra.
Tres usos que se entienden rápido
Comunicar dos sesiones abiertas
Tienes dos sesiones de Claude Code trabajando. Un mod puede crear un comando que le pregunta a la otra cómo va y te muestra si el mensaje llegó. Es la misma entrega que usa Claude cuando le habla a un subagente.
Un cuidado que pide Anthropic: el nombre de quien envía lo escribe quien envía. No tomes decisiones con base en ese nombre.
Ver qué hacen tus agentes sin preguntarles
Cada vez que Claude usa una herramienta, el mod se entera. También las herramientas de los subagentes y las de MCP. Con eso puede armar un panel con lo que está haciendo cada uno, o una franja con qué tan lleno va tu contexto.
Para avisos cortos hay tres lugares: una línea fija debajo del prompt, una notificación arriba a la derecha que se va sola y una línea tenue en la conversación que Claude no lee.
Mandar lo fácil a un modelo más barato
Un mod puede mandarle una tarea simple a Haiku, por fuera de la conversación. Por ejemplo, clasificar un mensaje en bug, función nueva o pregunta. Ojo: esas llamadas se cobran de tu plan o de tu API key.
Dónde funciona
Un mod corre en todas las sesiones que cargan el plugin. Lo que dibuja se ve en menos lugares.
- Terminal (
claude), también en la terminal del editor y en el plugin de JetBrains: corre y se ve todo. - Pestaña Code de Claude Desktop: corre y se ve, salvo algunos elementos que son solo para la terminal.
- Extensión de VS Code,
claude -py el Agent SDK: corre, pero no se dibuja nada. - Remote Control desde claude.ai o el celular: corre en tu máquina y se ve en la terminal de tu máquina.
- Sesiones en la nube: corre si el plugin llega a esa sesión, pero no se dibuja nada.
Cómo se crea un mod
Hay dos caminos. El primero no te pide saber programar.
Camino 1 · Se lo pides a Claude
Claude Code trae una skill integrada que se llama plugin-authoring. Le dice a Claude dónde escribir el mod, qué eventos tiene tu versión y cómo se carga. Claude la usa sola cuando le pides un mod, o la cargas tú con /plugin-authoring.
Describe el mod con tus palabras
Algo así: "Haz un mod que muestre la rama de git arriba del prompt." Claude lo escribe en una carpeta de la sesión, dentro de ~/.claude/dev-mods/.
Aprueba cada archivo
Como esa carpeta está protegida, Claude Code te pregunta antes de crear cada archivo. Los apruebas uno por uno.
Escoge Enable for this session
Con el primer archivo te pregunta si quieres recarga en caliente. Si escoges Enable for this session, el mod carga al terminar el turno y se recarga cada vez que Claude lo cambia. Si escoges Not now, no carga por ahora y queda para la próxima vez que abras esa sesión.
Revisa que cargó
Escribe /plugin y con Tab pasa a la pestaña Installed. Ahí aparece tu mod y ahí mismo lo apagas si quieres.
Corrige por rondas
Si no hace lo que querías, le dices qué cambiar. El mod se recarga al final de cada turno que lo toca.
Camino 2 · Lo escribes tú: tres archivos
Este es el ejemplo de la documentación. El mod se llama first-mod, cuenta las herramientas que usa Claude, muestra el conteo al lado del spinner y crea el comando /tally. No necesitas Node.js ni compilar nada: Claude Code lee los archivos .js y .ts directo.
first-mod/
├── .claude-plugin/
│ └── plugin.json
└── hooks/
├── hooks.json
└── register.js
plugin.json · la ficha del plugin
Nombre, versión, descripción y autor. Es la ficha de cualquier plugin de Claude Code.
{
"name": "first-mod",
"version": "0.1.0",
"description": "Counts Claude's tool calls, shows the count beside the spinner, and adds a /tally command",
"author": { "name": "Your Name" }
}
hooks.json · dónde está tu código
La llave modules le dice a Claude Code dónde está el código. Tener esa llave es lo que vuelve el plugin un mod.
{
"description": "The first-mod hooks module",
"modules": ["./register.js"]
}
register.js · lo que hace el mod
Claude Code llama la función register una vez, cuando el mod carga. Cada on(...) deja una función pendiente de un evento. Aquí son cuatro: al iniciar la sesión crea /tally, con cada herramienta suma uno, cuando escribes /tally responde el conteo y cuando se dibuja el spinner le agrega el número.
let calls = 0
export function register(on) {
on('session.start', async ($, e, next) => {
await $.command.register({
name: 'tally',
description: 'Show how many tool calls Claude has made',
})
return next(e)
})
on('tool.call', async ($, e, next) => {
calls += 1
$.ui.invalidate('ui.render')
return next(e)
})
on('command.run', { command: 'tally' }, async () => {
return { text: 'Claude has made ' + calls + ' tool calls since this mod loaded' }
})
on('ui.render', { component: 'Spinner' }, async ($, e, next) => {
return next({ ...e, props: { ...e.props, suffix: ' · tool calls: ' + calls + '…' } })
})
}
Cada función recibe tres cosas. $ es la caja de herramientas del mod: con ella dibuja, crea comandos o llama un modelo. e es el evento que acaba de pasar. next deja que el evento siga hacia los demás mods y hacia Claude Code.
Cárgalo y pruébalo
Abre Claude Code con el mod y pídele algo que use varias herramientas, como "lista los archivos y lee el README". Mientras trabaja, el spinner dice Thinking · tool calls: 2…. Cuando termine, escribe /tally y te dice cuántas lleva.
$ claude --plugin-dir ./first-mod
> /tally
first-mod: Claude has made 2 tool calls since this mod loaded
Mientras lo cargues con --plugin-dir, Claude Code vigila la carpeta y recarga el mod cada vez que cambias un archivo. Al recargar, el conteo vuelve a cero.
Revisarlo antes de usarlo
Qué hace, sin correrlo
claude plugin validate ./mi-mod lista los eventos que atiende y lo que pide hacer: leer archivos, red, llamar modelos.
Pruebas sin sesión
claude plugin test corre pruebas automáticas sin sesión, sin iniciar sesión y sin red.
Qué cargó la sesión
Debajo de las pestañas sale cuántos mods hay activos y cuáles.
Cómo se instala un mod hecho por otro
Un mod se instala como cualquier plugin: desde un marketplace, con el nombre del plugin, una @ y el nombre del marketplace.
# Dentro de una sesión de Claude Code
> /plugin install token-chart@your-org
# Desde la terminal
$ claude plugin install token-chart@your-org
# Si la sesión ya estaba abierta, para que lo cargue
> /reload-plugins
Si lo instalas desde la terminal con una sesión abierta, corres /reload-plugins en esa sesión. Si no, carga la próxima vez que abras Claude Code.
Los que ya vienen con Claude Code
Algunas funciones de Claude Code ya son mods. Los ves en /plugin, pestaña Installed, bajo Built-in:
/diff: te muestra en un panel los cambios que aún no tienen commit.agents-md: carga el archivoAGENTS.mdcomo instrucciones del proyecto.plugin-authoring: la skill con la que Claude te escribe mods.you-should-know: un agente lateral que, en tareas largas, te avisa arriba del prompt lo que se te puede pasar. Viene apagado y se prende con/plugin enable cc-plugin-you-should-know@builtin.sec-defaultytelemetry: la seguridad de tu organización y la analítica de Claude Code.
El código de diff, agents-md, sec-default y telemetry es público en el repositorio de Claude Code, en la carpeta mods. Si quieres ver cómo está hecho un mod real, de ahí puedes partir.
Antes de instalar, la parte de seguridad
Por eso la regla es simple. Instala mods solo de personas y marketplaces que conoces, y antes de instalarlo corre claude plugin validate sobre su carpeta para ver qué pide.
Cómo apagarlos
- Un solo mod: lo desactivas o lo desinstalas en
/plugin, pestaña Installed. - Todos, solo por esta sesión: abres Claude Code con
--safe-mode. - Todos, siempre: pones
"disableAllHooks": trueen~/.claude/settings.json. Ojo, eso también apaga tus hooks de configuración y tu línea de estado.
Los mods que vienen con Claude Code no se apagan con estas opciones. Si usas Claude Code en una organización, el administrador también decide cuáles cargan.
Lo que tienes que recordar
- Un mod es código que corre dentro de Claude Code. Observa, reescribe o responde eventos, y puede dibujar en la pantalla.
- Necesitas la versión 2.1.287 o una posterior.
- La forma más fácil de crearlo: pídeselo a Claude con tus palabras y aprueba cada archivo.
- A mano son tres archivos:
plugin.json,hooks.jsoncon la llavemodulesyregister.js. - Si te gustó uno hecho en la sesión, cópialo a una carpeta tuya y cárgalo con
--plugin-dir. - Se instala como un plugin:
/plugin install nombre@marketplace. - Corre con tus permisos. Revisa con
claude plugin validateantes de instalar.
¿Quieres un mod para tu forma de trabajar?
Si te quedó alguna duda concreta: comenta MODS en el Reel o escríbeme por DM en @santaia.lab.