Web

Mods de Claude Code: qué son, cómo funcionan y ejemplos reales

Los mods de Claude Code son pequeñas funciones en TypeScript o JavaScript que se ejecutan dentro de Claude Code y cambian cómo se comporta y cómo se ve: pueden reescribir un prompt, bloquear un comando peligroso, aprobar o denegar permisos, añadir paneles y botones a la interfaz o crear comandos propios. Anthropic los lanzó el 1 de octubre de 2026 con la versión 2.1.287, vienen activados por defecto y se instalan y comparten como cualquier plugin.

En esta guía tienes todo lo que necesitas saber: qué es un mod, para qué sirve, cómo funciona por dentro, cómo instalarlo, cómo crearlo sin escribir código, ejemplos reales con código, comunicación entre sesiones, permisos, seguridad y cómo controlarlos en un equipo o empresa.

💡
Resumen en 30 segundos
Un mod es un plugin con código que Claude Code ejecuta en su propio proceso. Se engancha a eventos (una llamada a herramienta, un prompt enviado, el dibujo de la pantalla) y puede observarlos, cambiarlos o responder en lugar de Claude Code. No va en sandbox: corre con tus permisos, así que instala solo mods de fuentes en las que confíes.
01

Ficha rápida de los mods de Claude Code

Dato Detalle
Qué son Funciones en TypeScript o JavaScript que se enganchan a eventos de Claude Code
Fecha de lanzamiento 1 de octubre de 2026
Versión mínima Claude Code 2.1.287 en la terminal y 2.1.286 en la app de escritorio
Dónde funcionan CLI de Claude Code y pestaña Code de la app de escritorio
Cómo se distribuyen Dentro de plugins, desde un marketplace
Estado por defecto Activados
¿Hace falta programar? No: puedes describirlo y Claude lo escribe por ti
¿Sandbox? No. Corren con los mismos permisos que Claude Code
02

¿Qué es un mod de Claude Code?

Definición sencilla

Cada vez que Claude Code hace algo, lanza un evento: llamar a una herramienta, pedirte permiso, enviar una petición al modelo o dibujar una parte de la pantalla. Un mod es una función que se engancha a uno de esos eventos y puede actuar antes, después o en lugar de lo que iba a pasar. También puede envolverlo, ejecutando código antes y después.

Una buena forma de entenderlo: hasta ahora usabas Claude Code tal y como salía de fábrica. Con los mods puedes «tunearlo» como harías con un coche: añadirle un medidor, un sistema de frenado extra o un panel nuevo en el salpicadero.

Qué puede hacer un mod

Según el anuncio oficial de Anthropic y la documentación de mods, con un mod puedes:

  • Reescribir un prompt antes de que llegue al modelo.
  • Bloquear, reescribir o reintentar una llamada a una herramienta.
  • Aprobar o denegar una petición de permiso.
  • Ocultar secretos (API keys, tokens) de la salida de una herramienta antes de que Claude la lea.
  • Dibujar una interfaz propia: un panel junto a la conversación o una banda sobre el prompt, con pestañas, botones y campos de texto.
  • Redibujar la interfaz de Claude Code: la fila de una llamada a herramienta, el spinner o el diálogo en el que Claude te hace preguntas.
  • Crear comandos /propios que se ejecutan al instante, sin turno del modelo, incluso mientras Claude está trabajando.
  • Registrar herramientas nuevas que Claude puede usar.
  • Enviar una petición a otro modelo, por ejemplo mandar lo fácil a Haiku.
  • Enviar mensajes a otras sesiones de Claude Code o a subagentes.
  • Compartir datos entre hooks: lo que un hook cuenta, otro lo puede mostrar.

Por qué Anthropic creó los mods

Los desarrolladores llevaban tiempo pidiendo más control sobre Claude Code sin tener que esperar a que Anthropic lanzara cada función. Los hooks de configuración daban parte de ese control, pero tenían un límite claro: no podían reescribir eventos, dibujar interfaz nueva ni sustituir funciones. Los mods sí pueden. Anthropic incluso publicó el diseño en GitHub antes del lanzamiento para recoger opiniones.

La dirección es clara: Claude Code deja de ser solo un asistente que ejecutas y pasa a ser una plataforma que puedes reprogramar, algo parecido a lo que ocurrió con las extensiones de VS Code. Anthropic ha dicho que irá moviendo más funciones integradas a mods para que cada persona pueda quedarse con un núcleo pequeño y añadir solo lo que necesite.

03

Mods vs hooks vs skills vs MCP: diferencias

La diferencia clave está en dónde se ejecuta el código. Los hooks de configuración, las skills, las status lines y los servidores MCP funcionan desde fuera: lanzan un script o le dan a Claude texto y herramientas. Un mod corre dentro del proceso de Claude Code.

Mod Hook de configuración Skill Servidor MCP
Qué es Funciones en un plugin que Claude Code ejecuta en su propio proceso Un comando de shell, petición HTTP o prompt definido en settings.json Un archivo SKILL.md con instrucciones Un proceso o servicio externo que da herramientas a Claude
Qué puede cambiar Llamadas a herramientas, prompts, comandos, turnos y la interfaz Si una llamada sigue adelante, sus argumentos, su resultado y contexto extra Lo que Claude sabe y hace Qué herramientas tiene Claude
¿Dibuja en la interfaz? Sí No No No
Qué escribes JavaScript o TypeScript Un script y una entrada en settings Markdown Un servidor en cualquier lenguaje
Elígelo cuando Quieres un panel, una banda, un comando instantáneo o reescribir un evento Ya tienes un script que bloquea, permite o registra Pegas una y otra vez las mismas instrucciones Claude necesita conectarse a un sistema externo
💡
Ojo con los nombres
En la documentación de mods, «hook» significa una función de un mod. Los hooks de siempre pasan a llamarse settings hooks (hooks de configuración). Siguen funcionando y no están obsoletos. Un mismo plugin puede llevar a la vez un mod, una skill y un servidor MCP.
04

Cómo funciona un mod por dentro

Estructura de archivos de un mod

Un mod pequeño ocupa solo tres archivos:

Texto · Estructura de archivos

mi-mod/
├── .claude-plugin/
│   └── plugin.json     ← nombre, versión y descripción
└── hooks/
    ├── hooks.json      ← apunta a tu código
    └── register.js     ← tu código (el "hooks module")

El archivo hooks.json solo indica qué módulo cargar:

{ "modules": ["./register.js"] }

Y plugin.json es el manifiesto del plugin:

JSON · plugin.json

{
  "name": "mi-mod",
  "version": "1.0.0",
  "description": "Mi primer mod de Claude Code"
}

La función register y sus tres argumentos

El módulo exporta una función register(on). Cada llamada a on(evento, filtro, hook) añade un hook, y todos los hooks reciben los mismos tres argumentos:

Argumento Qué es Para qué sirve
$ La API de mods Todo lo que sale de tu código pasa por aquí: dibujar, leer archivos, lanzar procesos, llamar a un modelo, hacer peticiones de red
e El evento Por ejemplo, el comando de Bash que Claude va a ejecutar (e.command) o el texto del prompt (e.text)
next El siguiente manejador Pasa el evento al siguiente mod y, al final de la cadena, al comportamiento normal de Claude Code

El módulo no tiene acceso a Node.js ni al DOM, ni a setTimeout. Ese límite es intencionado: como todo pasa por $, Claude Code puede listar lo que hace un mod antes de ejecutarlo.

Observar, reescribir o responder

Un hook se ejecuta antes de que Claude Code actúe, así que decide qué pasa después. Tiene tres opciones:

Acción Cómo se hace Ejemplo
Observar Haces tu trabajo y devuelves next(e) Registrar cada herramienta que usa Claude
Reescribir Llamas a next con una copia modificada: next({ ...e, text: nuevo }) Limpiar o ampliar un prompt antes de enviarlo
Responder Devuelves un resultado sin llamar a next Rechazar un comando con { deny: 'motivo' }

El evento es inmutable: si intentas asignar un campo directamente, lanza un error. Siempre se trabaja con copias.

Tu primer mod: contador de herramientas junto al spinner

Este mod cuenta cuántas herramientas usa Claude y muestra el número junto al spinner mientras trabaja (algo como Thinking · herramientas: 3):

JavaScript · Primer mod

// Variable compartida por los dos hooks
let llamadas = 0

export function register(on) {
  // Se ejecuta cada vez que Claude va a usar una herramienta
  on('tool.call', async ($, e, next) => {
    llamadas += 1
    $.ui.invalidate('ui.render')   // pide redibujar la interfaz
    return next(e)                 // la herramienta se ejecuta como siempre
  })

  // Se ejecuta cada vez que Claude Code dibuja el spinner
  on('ui.render', { component: 'Spinner' }, async ($, e, next) => {
    return next({ ...e, props: { ...e.props, suffix: ' · herramientas: ' + llamadas } })
  })
}

Fíjate en que los dos hooks comparten la variable llamadas. Esa es una de las ventajas de los mods: un hook recoge datos y otro los muestra.

 

Mods de Claude Code- qué son, cómo funcionan y ejemplos reales
Mods de Claude Code- qué son, cómo funcionan y ejemplos reales

Filtrar qué eventos maneja un hook

El segundo argumento de on es un filtro (matcher). Puede ser un valor, una lista o una expresión regular:

JavaScript · Filtros

on('tool.call', { tool: 'Bash' }, hook)               // solo Bash
on('tool.call', { tool: ['Edit', 'Write'] }, hook)    // Edit o Write
on('tool.call', { tool: /^mcp__github__/ }, hook)     // todas las herramientas de un MCP

El orden en que se ejecutan los mods

Cuando varios mods se enganchan al mismo evento forman una cadena tipo «cebolla»: el primero que carga ve el evento primero y el resultado el último, y decide si los demás llegan a ejecutarse. Eso permite apilar mods de autores distintos. El orden es:

1
El guardián integrado sec-default (donde carga) y los mods de tu organización listados en prependPlugins.
2
Los mods que instalas tú.
3
Los mods de la organización listados en appendPlugins.
4
Otros mods integrados en Claude Code.

Dentro de un mismo módulo, los hooks se ejecutan en el orden en que register llamó a on.

05

Eventos principales de los mods

Estos son los eventos que más vas a usar. La lista completa está en la página de eventos de la documentación.

Evento Cuándo se dispara Qué puedes hacer
session.start Al empezar la sesión Registrar comandos, herramientas y temporizadores
prompt.submit Antes de enviar tu prompt Reescribirlo, añadir contexto que solo lee Claude o descartarlo con { drop }
tool.call Antes de ejecutar una herramienta (también MCP y subagentes) Bloquearla, cambiar sus argumentos, reintentarla o responder sin ejecutarla
tool.check Cuando se decide si una herramienta puede ejecutarse Aprobar o denegar antes de que aparezca el aviso de permiso
turn.start Empieza un turno Observar
turn.step Antes de cada petición al modelo Leer el uso de tokens, enviarla a otro modelo o responder sin llamar al modelo
turn.complete Termina un turno Leer la respuesta final, la duración y los tokens; mostrar una línea bajo la respuesta
command.run El usuario ejecuta un comando del mod Ejecutar tu función al instante
ui.render Claude Code dibuja un componente Cambiarlo, sustituirlo o añadirle cosas
session.receive Llega un mensaje de otra sesión o agente Leerlo, mostrarlo o evitar que Claude lo procese
session.send Un mensaje va a salir de la sesión Observarlo o modificarlo
plugin.register Otro mod está a punto de cargar Revisarlo y rechazarlo (mods de política)
classic.* Los eventos de los hooks de configuración (classic.Stop, classic.SessionEnd…) Reaccionar con el mismo JSON que recibe un settings hook
06

La API de mods ($): qué puede tocar un mod

Todo lo que un mod hace fuera de su propio código pasa por la API $, agrupada en espacios de nombres. Estos son los principales (detalle en la página de la API):

Espacio Para qué sirve
$.ui Dibujar paneles y bandas, avisos (toast), líneas de estado (status), líneas en el transcript (log) y preguntas al usuario (ask)
$.command Registrar comandos /propios
$.tool Registrar herramientas nuevas para Claude
$.model complete hace una pregunta suelta a un modelo; fork pregunta sobre la conversación actual aprovechando la caché
$.prompt submit envía un prompt y arranca un turno
$.session Transcript, directorio, modelo, uso de contexto y límites (usage()), id de sesión y send para mensajes entre sesiones
$.agent Listar los subagentes activos
$.clock every, after, sleep y now: sustituyen a setInterval y setTimeout
$.state Estado que sobrevive a la recarga en caliente
$.store Almacén JSON clave-valor que persiste entre sesiones de la misma máquina
$.fs Leer, escribir y listar archivos
$.process run ejecuta un comando (sin shell); spawn transmite la salida de procesos largos
$.http fetch para peticiones de red
$.env y $.settings Leer y escribir variables de entorno; leer la configuración
$.mcp Llamar a una herramienta de un servidor MCP conectado
07

Requisitos y dónde funcionan los mods

Necesitas Claude Code 2.1.287 o superior en la terminal (compruébalo con claude --version). La app de escritorio trae su propia copia de Claude Code y ahí los mods funcionan desde la 2.1.286; en la pestaña Code puedes ver tu versión con /status.

Un detalle importante: los hooks se ejecutan casi en todas partes, pero la interfaz solo se dibuja en la terminal y en la app de escritorio.

Dónde ejecutas Claude Code ¿Se ejecutan los hooks? ¿Se ve la interfaz del mod?
claude en una terminal (incluidas las de editores y JetBrains) Sí Sí
Pestaña Code de la app de escritorio Sí Sí, salvo elementos exclusivos de la terminal
Sesión WSL en la app de escritorio No No
Panel de chat de la extensión de VS Code Sí No
claude -p y Agent SDK Sí No
Remote Control desde claude.ai o el móvil Sí, en tu máquina En la terminal de tu máquina
Sesiones en la nube Sí, si el plugin llega a la sesión No

En la práctica: un mod guardián te sigue protegiendo en VS Code y en claude -p, pero un medidor visual no tiene dónde dibujarse. Un buen mod comprueba e.surface y, si no puede dibujar, escribe una línea en el transcript o devuelve texto.

⚠️
Cuidado con tener dos copias de Claude Code
Es habitual tener una CLI antigua instalada (por ejemplo con Homebrew) y la versión nueva que trae la app de escritorio. Eso provoca errores confusos al validar mods. Comprueba la versión en cada sitio donde uses Claude Code.
08

Cómo instalar un mod en Claude Code

Instalar un mod desde un marketplace

Un mod se instala como cualquier plugin: nombre del plugin, @ y nombre del marketplace.

  • Dentro de una sesión: /plugin install nombre@marketplace
  • Desde tu shell: claude plugin install nombre@marketplace
  • Desde la app de escritorio: botón +, luego Plugins y Add plugin

Si instalas desde la shell con una sesión abierta, ejecuta /reload-plugins en esa sesión para cargarlo sin reiniciar. Para añadir un marketplace de la comunidad:

Bash · Marketplace de la comunidad

claude plugin marketplace add usuario/repositorio
claude plugin install nombre-del-mod@nombre-del-marketplace

También puedes encontrar plugins con mods en el directorio de Claude.

Cargar un mod solo para una sesión

Para probar una carpeta sin instalarla:

claude --plugin-dir ./mi-mod

La app de escritorio no acepta opciones de línea de comandos. Ahí se usa la variable CLAUDE_CODE_PLUGIN_DIRS en el bloque env de ~/.claude/settings.json.

Ver qué mods están activos

Escribe /plugin. Bajo las pestañas aparece una línea gris como 1 mod active · nombre-del-mod. Los mods integrados aparecen en la pestaña Installed bajo Built-in.

Desactivar mods

Qué quieres apagar Cómo
Un mod concreto Desactívalo o desinstálalo desde la pestaña Installed de /plugin
Todos los mods instalados, en una sesión Arranca con claude --safe-mode (también apaga otras personalizaciones)
Todos tus mods, en todas las sesiones "disableAllHooks": true en ~/.claude/settings.json (también apaga tus settings hooks y la status line)
💡
Si usaste el acceso anticipado
Elimina la variable CLAUDE_CODE_ENABLE_FUNCTION_HOOKS. Desde la 2.1.287 se ignora, así que ponerla a 0 no desactiva los mods.
09

Cómo crear un mod sin programar: pídeselo a Claude

No necesitas escribir ni una línea. Describe lo que quieres en una sesión interactiva de Claude Code y Claude lo escribe. Así funciona el proceso:

1
Claude usa la skill integrada plugin-authoring (también puedes cargarla tú con /plugin-authoring).
2
Escribe los archivos en ~/.claude/dev-mods/<id-de-sesión>/.
3
Al guardar el primer archivo te pregunta si quieres activar la recarga en caliente. Elige Enable for this session.
4
A partir de ahí, el mod se recarga al final de cada turno: pides un cambio y lo ves al momento.
⚠️
Guarda tu mod en otro sitio
Las carpetas de dev-mods se borran junto con las sesiones antiguas pasado aproximadamente un mes, y un mod que escribe Claude solo carga en la sesión que lo creó. Copia la carpeta a un lugar permanente (por ejemplo ~/mods/nombre) y ábrelo con claude --plugin-dir ~/mods/nombre.

Prompts listos para copiar y pegar

Mostrar la rama de git sobre el prompt

Prompt · Rama de git

Hazme un mod que muestre la rama de git actual en una línea encima del prompt.

Vigilar cuánto contexto llevas usado

Muy útil si trabajas con documentos largos (newsletters, guiones, briefs), porque el contexto se llena sin que te des cuenta y la calidad baja:

Prompt · Medidor de contexto

Hazme un mod que muestre encima del prompt qué porcentaje de contexto llevo usado
y los límites de mi plan. Que se actualice al terminar cada turno y que resalte la
cifra si pasa del 80%.

Pedir confirmación antes de borrar o sobrescribir

Prompt · Confirmación

Hazme un mod que, antes de ejecutar cualquier comando que borre o sobrescriba archivos
de esta carpeta, me enseñe qué cambiaría y me deje elegir entre continuar o cancelar.

Medir cada turno

Prompt · Métricas por turno

Crea un mod que muestre cuánto tardó el último turno, cuántas herramientas usó Claude
y cuántos tokens consumió, con un botón para ocultarlo.

Proponer el siguiente paso

Prompt · Siguiente paso

Crea un mod que, al terminar cada turno, me proponga hasta tres prompts siguientes
y me deje elegir uno pulsando 1, 2 o 3 para dejarlo preparado en la caja de texto.

Consejo: termina siempre tu petición con «al terminar ejecuta claude plugin validate y dime qué hooks y qué calls lista». Así sabes exactamente qué hace el mod que te ha escrito Claude.

10

Cómo crear un mod a mano: ejemplos reales con código

Si prefieres entender el código, estos ejemplos cubren los casos más comunes. Todos van en hooks/register.js.

Ejemplo 1: guardián que bloquea comandos peligrosos

Si usas Claude en modo automático o con permisos de bypass, nada lo frena antes de un git reset --hard. Este mod rechaza comandos destructivos y explica a Claude por qué:

JavaScript · Guardián

const PELIGROSOS = [
  { patron: /\bgit\s+reset\s+--hard\b/, motivo: 'git reset --hard borra trabajo sin guardar' },
  { patron: /\bgit\s+push\b.*--force/,  motivo: 'push forzado' },
  { patron: /\brm\s+-rf\s+(\/|~)/,      motivo: 'borrado recursivo de la raíz o del home' },
]

async function guardian($, e, next) {
  const regla = PELIGROSOS.find(r => r.patron.test(e.command))
  if (!regla) return next(e)                 // el resto de comandos pasa
  $.ui.toast('Bloqueado: ' + regla.motivo)
  return { deny: 'Comando bloqueado (' + regla.motivo + '). Pide al usuario que lo ejecute él.' }
}

export function register(on) {
  // .catch hace que falle "en cerrado": si el guardián se rompe, no deja pasar el comando
  on('tool.call', { tool: 'Bash' }, guardian).catch(async ($, e, next) =>
    next.called ? next(e) : { deny: 'El guardián falló, así que el comando no se ejecutó.' }
  )
}

Dos detalles importan más que las expresiones regulares:

  • El guardián decide antes de llamar a next. En cuanto next se ejecuta, el comando ya ha corrido. Un deny devuelto después no deshace nada.
  • El .catch hace que falle en cerrado. Claude Code salta un hook que lanza un error o supera su límite de 10 segundos, y un guardián saltado deja pasar el comando. Con el .catch ocurre lo contrario.
⚠️
Limitación real
La coincidencia de patrones no distingue un comando de un texto que lo menciona (un echo "git reset --hard" también se bloquea) y no detecta comandos escondidos en variables, scripts o alias. Trata un mod guardián como una segunda red de seguridad: lo que no deba ocurrir nunca, ponlo también en una regla deny de permisos.

Ejemplo 2: preguntar antes de tocar producción

En lugar de bloquear, un hook puede pausar la llamada y preguntarte con $.ui.ask:

JavaScript · Confirmación en producción

const PRODUCCION = /config\/production|\.env\.production/

export function register(on) {
  on('tool.call', { tool: ['Edit', 'Write'] }, async ($, e, next) => {
    if (!PRODUCCION.test(e.file_path)) return next(e)
    let respuesta = 'Cancelar'                     // respuesta segura por defecto
    try {
      respuesta = await $.ui.ask('¿Modificar ' + e.file_path + '?', ['Sí, modificar', 'Cancelar'])
    } catch {
      // el usuario cerró la pregunta o no hay nadie (claude -p)
    }
    if (respuesta !== 'Sí, modificar') {
      return { deny: 'El usuario no autorizó cambiar la configuración de producción.' }
    }
    return next(e)                                 // después sigue el control de permisos normal
  })
}

La espera dentro de $.ui.ask no cuenta para el límite de 10 segundos del hook, así que puedes tardar lo que quieras en contestar.

Ejemplo 3: un comando instantáneo /rama

Un comando de un mod ejecuta tu función al momento, sin turno del modelo:

JavaScript · Comando /rama

export function register(on) {
  on('session.start', async ($, e, next) => {
    try {
      await $.command.register({ name: 'rama', description: 'Muestra la rama de git actual', immediate: true })
    } catch {}                                   // un nombre ya usado lanza error
    return next(e)
  })

  on('command.run', { command: 'rama' }, async ($) => {
    try {
      const r = await $.process.run(['git', 'branch', '--show-current'])
      return { text: r.exitCode === 0 ? 'Rama actual: ' + r.stdout.trim() : 'Esto no es un repositorio git' }
    } catch {
      return { text: 'No se pudo ejecutar git' }
    }
  })
}

Con immediate: true el comando funciona incluso mientras Claude está trabajando. El text que devuelves aparece en el transcript y Claude también lo lee. Si además devuelves context, es una nota que solo lee el modelo.

Ejemplo 4: añadir contexto automático a tus prompts

Este hook añade la rama actual para Claude cada vez que hablas de un pull request, sin que cambie lo que ves en pantalla:

JavaScript · Contexto automático

export function register(on) {
  on('prompt.submit', async ($, e, next) => {
    if (!/\bPR\b|pull request/i.test(e.text)) return next(e)
    const git = await $.process.run(['git', 'branch', '--show-current'])
    if (git.exitCode !== 0) return next(e)
    return next({ ...e, context: [...(e.context ?? []), 'Rama actual: ' + git.stdout.trim()] })
  })
}

Ejemplo 5: tareas en segundo plano con un temporizador

Un hook dura un evento. Para trabajo continuo se usa $.clock.every desde session.start. Este ejemplo revisa los checks de un pull request cada minuto y muestra el resultado bajo el prompt:

JavaScript · Temporizador

export function register(on) {
  on('session.start', async ($, e, next) => {
    $.clock.every(60_000, async () => {
      const r = await $.process.run(['gh', 'pr', 'checks'])
      $.ui.status('checks: ' + (r.exitCode === 0 ? 'todo en verde' : 'hay fallos'))
    })
    return next(e)   // no esperes al temporizador: la sesión arranca al momento
  })
}

Para mostrar algo sin arrancar un turno tienes tres opciones:

Llamada Qué ve el usuario
$.ui.status(texto) Una línea fija bajo el prompt hasta que la cambies
$.ui.toast(texto) Un aviso arriba a la derecha que desaparece en unos segundos
$.ui.log(texto) Una línea tenue en el transcript que Claude no lee

Probar un mod sin abrir una sesión

claude plugin test ejecuta los archivos *.test.ts del mod sin sesión, sin autenticación y sin red. Como no hay nada «debajo» de tu mod, cada prueba registra sustitutos para lo que el mod deja pasar:

TypeScript · Prueba

import { expect, test } from 'claude-code/testing'

test('bloquea git reset --hard', async ($, on) => {
  on('tool.call', { tool: 'Bash' }, () => ({ result: { stdout: 'ok', stderr: '', interrupted: false } }))
  const r = await $.tool.call({ tool: 'Bash', command: 'git reset --hard' })
  expect(r.deny).toContain('git reset')
})

Registra los sustitutos al principio de cada prueba, antes de la primera llamada a $. Y para depurar en vivo, arranca con claude --debug: el log nombra cada hook saltado y cada dibujo rechazado.

11

Mods integrados en Claude Code

Algunas funciones de Claude Code ya son mods. Los ves en /plugin → Installed → Built-in. No se pueden actualizar ni desinstalar, y --safe-mode o disableAllHooks no los apagan.

Nombre en /plugin Qué hace Cómo apagarlo
cc-plugin-diff El panel de /diff con los cambios sin guardar Desactivarlo en /plugin (o sustituirlo por tu versión)
cc-plugin-agents-md Carga AGENTS.md como instrucciones del proyecto Desactivarlo en /plugin
cc-plugin-plugin-authoring Da a Claude la skill para escribir mods Desactivarlo en /plugin
cc-plugin-sec-default Guardián de seguridad que protege lo que gestiona tu organización No se puede; lo controla el administrador
cc-plugin-telemetry Envía la analítica de Claude Code y sus mods integrados Desactivarlo o usar DISABLE_TELEMETRY
cc-plugin-you-should-know Un agente lateral que vigila mientras Claude trabaja y te avisa sobre el prompt de cosas que podrías pasar por alto Viene desactivado; se activa con /plugin enable cc-plugin-you-should-know@builtin

El código de diff, agents-md, sec-default y telemetry es público en el directorio mods del repositorio de Claude Code. Es la mejor referencia para aprender a escribir mods bien hechos.

12

Ejemplos reales de mods: oficiales y de la comunidad

Mods de ejemplo de Anthropic

Anthropic publica tres mods de muestra en el repositorio claude-code-playground, y puedes verlos funcionando en claude.dev/mods:

Mod Qué hace
token-weather Una línea sobre el prompt con un «pronóstico del tiempo» de lo lleno que está tu contexto
blast-radius Retiene un comando arriesgado (rm -rf, push forzado), muestra qué cambiaría y da botones para continuar o cancelar
replay-theater Añade /replay para repasar, diff a diff, las ediciones que Claude hizo en el último turno

Para probarlos: clona el repositorio y abre la carpeta del mod con --plugin-dir. Se comparten tal cual, sin soporte.

Mods de la comunidad destacados

En los primeros días la comunidad publicó cientos de mods. La mayoría son experimentos, pero algunos son muy útiles:

Mod Qué hace
terminal-browser Un navegador junto a la conversación para webs, vistas previas de HTML local y pull requests
claude-image-view Miniaturas de las imágenes pegadas sobre el prompt en lugar de [Image #1]
hamzafer/claude-code-mods Pack con barra de contexto, guardián, vista previa de Markdown y dashboard de subagentes
claude-auto-handoff Pasa una sesión larga a una nueva con un resumen estructurado
cc-arcade Minijuegos sobre el prompt que se pausan cuando Claude termina
prompt-rail Una barra con tus prompts anteriores para leerlos y saltar a ellos
CC-Usage-Band Límites de 5 horas y 7 días, contexto y aciertos de caché sobre el prompt
claude-gfm-render Alertas de GitHub, listas de tareas y diagramas Mermaid en las respuestas
harness-scope Perfiles por repositorio que ocultan skills, agentes y reglas globales que no necesitas
touch-map Muestra qué archivos listó, leyó, editó o creó Claude
glamour-dark y tool-lines Respuestas con estilo oscuro y cada llamada a herramienta en una sola línea compacta
next-steps (Thariq Shihipar) Sugiere hasta tres prompts siguientes al terminar cada turno. Se instala con claude plugin install next-steps@claude-community
claude-dino Un juego del dinosaurio dentro de Claude Code: cada llamada a herramienta genera un obstáculo

Para descubrir más, revisa los catálogos awesome-claude-code-mods (karanb192) y awesome-claude-code-mods (whyashthakker), este último con 70 mods organizados por categorías (sesión, git, repositorio, workspace, utilidades, flujo de trabajo y escritorio).

Qué construye la gente con los mods

Según el escaneo del catálogo de la comunidad del 6 de octubre de 2026, cinco días después del lanzamiento ya había 2.690 mods públicos en 1.265 repositorios. Lo más habitual:

Qué hace el mod % de mods
Añade un comando slash 68%
Intercepta llamadas a herramientas 53%
Dibuja encima del prompt 41%
Abre un panel lateral 40%
Lanza procesos 40%
Llama a un modelo 12%
Usa la red 11%

Ideas de mods para marketing y contenido

No hace falta ser desarrollador para sacarles partido. Si trabajas con contenido, el valor está en describir cómo quieres que se comporte tu entorno:

  • Medidor de contexto al trabajar con newsletters o guiones largos, para saber cuándo abrir una sesión limpia.
  • Freno de seguridad sobre la carpeta de borradores, imágenes y exportaciones.
  • Siguiente paso para flujos repetitivos: de vídeo a post, de post a notas, de notas a LinkedIn.
  • Segundo cerebro en un panel con proyectos, tareas y notas guardadas en $.store.
  • Router de modelos para que lo sencillo (resumir, traducir, formatear) no se coma tus límites.
13

Comunicación entre sesiones con mods

Una de las funciones más potentes: un mod puede enviar mensajes a otra de tus sesiones de Claude Code o a un subagente de la sesión actual, y observar los mensajes que entran y salen.

Enviar un mensaje con $.session.send

$.session.send({ to, text }) hace la misma entrega que la herramienta SendMessage. El destino puede ser { sessionId } para otra sesión o { agentId } para un subagente (lo obtienes con $.agent.list()). La llamada nunca falla en silencio: devuelve { isDelivered: true } o { isDelivered: false, reason }.

JavaScript · Mensaje entre sesiones

on('command.run', { command: 'ping' }, async ($, e) => {
  const r = await $.session.send({ to: { sessionId: e.args }, text: '¿En qué estás? Una línea.' })
  if (!r.isDelivered) $.ui.toast('No entregado: ' + r.reason)
  return {}
})

Recibir y filtrar mensajes

Evento Cuándo se dispara Campos útiles
session.receive Llega un mensaje, antes de que Claude lo lea e.text y e.origin.kind (peer o peer-send-message para otra sesión, task-notification, scheduled-trigger). Devuelve { consumed: motivo } para que Claude no lo procese
session.send Un mensaje va a salir e.to, e.text y e.origin.kind (model o plugin)

Ejemplo práctico: una sesión planea y otra construye

Con estas piezas puedes montar dos sesiones que trabajan en equipo:

  • /duo planner y /duo builder guardan el id de cada sesión ($.session.id()) en $.store, que comparten todas las sesiones de la máquina.
  • /plan <texto> en la sesión planner lee el id del builder y le envía el plan con $.session.send.
  • En el builder, session.receive muestra «PLAN RECIBIDO» en la banda sobre el prompt y deja pasar el mensaje con next(e) para que Claude empiece a construir.
  • En turn.complete, el builder manda un resumen de una línea al planner.
  • En el planner, session.receive devuelve { consumed }: el resumen se ve, pero Claude no responde solo. Así se evitan bucles infinitos.

Seguridad en los mensajes: el nombre del remitente es lo que el remitente haya escrito, así que nunca bases una decisión en él. Si una sesión está configurada para rechazar mensajes entrantes (crossSessionInbound), el mensaje se rechaza antes de que el hook lo vea. Más detalles en la documentación de mensajes entre sesiones.

Llamar a otro modelo desde un mod

$.model.complete hace una pregunta suelta a un modelo, sin historial, ideal para clasificar o resumir:

JavaScript · Clasificar con Haiku

const r = await $.model.complete({
  model: 'haiku',
  system: 'Responde una palabra: FACIL o DIFICIL',
  prompt: e.text,
  maxTokens: 5,
  timeoutMs: 8000,
})
const nivel = r.isAnswered ? r.text.trim() : 'DIFICIL'

Y en turn.step puedes enviar una petición completa a otro modelo. Este hook es un generador asíncrono porque la respuesta llega en streaming:

JavaScript · Router de modelos

on('turn.step', async function* ($, e, next) {
  if (turnoFacil && e.agentId === undefined) {
    return yield* next({ ...e, model: 'haiku' })
  }
  return yield* next(e)
})
⚠️
Cuidado con la caché
Cambiar de modelo a mitad de sesión, o cambiar el system prompt entre peticiones, invalida la caché de prompts. El primer turno en cada modelo es más lento y más caro. Si alternas mucho, puedes acabar gastando más de lo que ahorras. Además, estas llamadas usan tu plan o tu API key.
14

Permisos y seguridad de los mods de Claude Code

Esta es la parte que más importa. Un mod no es un prompt: es código que se ejecuta con tus permisos.

Qué puede alcanzar un mod

Una vez cargado, un mod puede:

  • Actuar en tu máquina como tú: leer y escribir archivos donde tu usuario tenga acceso, lanzar programas y hacer peticiones de red.
  • Leer tus secretos: variables de entorno y archivos de configuración, incluidas las API keys.
  • Ver tu sesión: cada prompt que envías y cada llamada que hace Claude.
  • Cambiar tu sesión: reescribir prompts o llamadas, enviar un prompt como si lo hubieras escrito tú o mandar mensajes a otra sesión.
  • Actuar sin preguntarte: aprobar una llamada a herramienta antes de que te pregunten.
  • Gastar tu uso: llamar a un modelo con tu plan o tu API key.
⚠️
Los mods no van en sandbox
Aunque actives el sandboxing de Claude Code, este aísla los comandos Bash que ejecuta Claude, pero un proceso que lanza un mod corre fuera. Instala mods solo de autores y marketplaces de confianza, igual que harías con cualquier software.

Mods y reglas de permisos: quién gana

Situación Con el guardián sec-default (empresa o managed settings) En una máquina personal sin managed settings
Regla deny Gana la regla: el mod no puede aprobar lo que deny rechaza Un mod que aprueba llamadas puede saltarse una regla deny
Regla ask El mod puede aprobar la llamada sin preguntar El mod puede aprobar la llamada sin preguntar
Hook PreToolUse en managed settings Se ejecuta antes que cualquier mod y su bloqueo es definitivo No aplica
Hook PreToolUse en otros settings o plugins Un mod puede aprobar lo que ese hook bloqueó Un mod puede aprobar lo que ese hook bloqueó
Modo automático Una llamada aprobada por un mod se ejecuta sin revisión del clasificador Igual
Aviso de permiso Ningún mod puede cambiar lo que muestra Ningún mod puede cambiar lo que muestra

Ojo con un matiz: las reglas deny se aplican a las herramientas de Claude, no a las llamadas propias del mod. Con Read(.env) denegado, un mod puede seguir leyendo ese archivo con $.fs.read.

Cómo revisar un mod antes de instalarlo

Descarga el plugin (por ejemplo, clonando su repositorio) y ejecuta:

claude plugin validate ./nombre-del-mod

La salida incluye dos líneas clave, sin ejecutar el mod:

Bash · Salida de validate

❯ ./register.js hooks: session.start, tool.call, ui.render{component=Pane}
❯ ./register.js calls: $.fs.read, $.http.fetch, $.store.set, $.ui.open

La línea hooks: lista los eventos que maneja el mod y la línea calls: lo que pide hacer. Claude Code se niega a cargar un mod que usa la API de una forma que este comando no puede leer. Estas son las llamadas que debes vigilar:

Llamada Qué significa
$.fs.read, $.fs.write Lee o escribe archivos en cualquier sitio al que tengas acceso
$.process.run, $.process.spawn Lanza programas como tú
$.http.fetch Hace peticiones de red
$.env.get, $.settings.read Lee variables y configuración, que pueden contener API keys
$.env.set Cambia variables para Claude Code y todo lo que lance después
$.mcp.call Llama a herramientas de tus servidores MCP
$.model.complete Gasta tu plan o API key
$.prompt.submit Envía prompts, incluso como si fueran tuyos
$.session.send Envía mensajes que lee otra sesión o subagente

Y en la línea hooks:, presta atención a tool.call y prompt.submit (ve y puede cambiar cada llamada y cada prompt), tool.check (puede aprobar o denegar antes del aviso de permiso) y session.append (puede reescribir el historial antes de guardarlo).

Validar no es lo mismo que confiar. Que un mod pase validate significa que el motor puede cargarlo, no que sea seguro. Lee el código allí donde aparezcan $.process, $.http, $.fs.write, $.env.get o $.model, y vuelve a validarlo después de cada actualización.

Una lección real: los secretos enmascarados

Un autor de la comunidad creó un mod que sustituía las API keys en la salida de las herramientas antes de que Claude las viera. Aun así, Claude imprimió los valores reales mientras depuraba una edición fallida, y una escritura del archivo completo guardó los marcadores encima de las claves reales. Lo único que aguantó fue una regla deny sobre el archivo. Conclusión: un mod que cambia lo que ves no le oculta nada al modelo. Para proteger secretos, usa reglas de permisos.

Checklist de seguridad antes de instalar un mod

  • ¿Conozco al autor o al marketplace?
  • ¿He ejecutado claude plugin validate y revisado las líneas hooks: y calls:?
  • ¿He leído el código de las partes que acceden a archivos, procesos, red o variables de entorno?
  • ¿Lo he probado primero en un repositorio de pruebas, nunca directamente en producción?
  • ¿Los guardianes tienen .catch para fallar en cerrado?
  • ¿Lo crítico está protegido también con reglas deny?
  • ¿Sé cómo apagarlo rápido (/plugin o --safe-mode)?
15

Mods en equipos y empresas

Como los mods viajan dentro de plugins, se aplican los controles de plugins que ya tengas. Los administradores pueden permitir o bloquear marketplaces: en los planes Team y Enterprise desde la consola de administración, y en planes de API o de terceros mediante managed settings. La guía completa está en gestionar mods en tu organización.

El guardián sec-default

En planes Team y Enterprise, y en cualquier máquina con managed settings, se carga primero un mod integrado llamado sec-default («security default»). Los usuarios no pueden desactivarlo. Impide que los mods que instala cada persona:

  • Cambien lo que reciben o deciden los hooks gestionados por la organización.
  • Modifiquen el system prompt, el CLAUDE.md gestionado u otras instrucciones gestionadas.
  • Alteren lo que cualquier mod lee como configuración.
  • Toquen las herramientas de los servidores MCP gestionados.
  • Aprueben una llamada que una regla deny rechaza.

Fuera de eso, el guardián no añade más restricciones. Y falla en cerrado: si no puede leer la configuración gestionada, rechaza todos los mods de usuario.

Bloquear todos los mods de usuario

Para que solo carguen los mods de la organización, se activa allowManagedModsOnly en managed settings:

JSON · Managed settings

{
  "pluginConfigs": {
    "cc-plugin-sec-default@builtin": {
      "options": {
        "allowManagedModsOnly": true
      }
    }
  }
}

Con esta opción no carga ningún mod que traiga el usuario (instalado, cargado con --plugin-dir o escrito por Claude en una sesión). Los usuarios no pueden deshacerlo desde sus propios archivos de configuración, y sus hooks de configuración y status lines siguen funcionando.

Niveles de política para mods

Lo que quieres Configuración
Ningún mod instalado, sin tocar los hooks allowManagedModsOnly sin desplegar mods propios
Ningún mod ni hook en absoluto (incluidos los gestionados) disableAllHooks: true
Solo los mods de la organización allowManagedModsOnly + instalar tus mods para que cuenten como de la organización
Cualquier mod de marketplaces aprobados Restricciones de marketplace + disableSideloadFlags: true
Cualquier mod, con un mod propio vigilando a los demás Instalar tu mod y listarlo junto a sec-default@builtin en prependPlugins

Existe además allowModsToOverrideDenyRules: si lo activas, un mod de usuario podría aprobar llamadas que una regla deny rechaza. Úsalo solo si sabes exactamente por qué.

Desplegar mods propios de la organización

Para que Claude Code trate un mod como de tu organización, debe cumplir tres condiciones: estar activado en enabledPlugins gestionado, venir de un marketplace que es un directorio local con ruta absoluta, y estar listado por ruta relativa. Un ejemplo de configuración:

JSON · Mods de la organización

{
  "extraKnownMarketplaces": {
    "acme-tools": {
      "source": { "source": "directory", "path": "/opt/acme/claude-plugins" }
    }
  },
  "enabledPlugins": { "acme-guard@acme-tools": true },
  "prependPlugins": ["acme-guard@acme-tools", "sec-default@builtin"]
}

Si defines prependPlugins, incluye sec-default@builtin en la lista o perderás el guardián. Y protege el directorio para que solo un administrador pueda escribir en él: quien pueda escribir ahí puede reescribir tu mod.

Mods de política: revisar a los demás mods

Con el evento plugin.register, un mod de la organización recibe la misma lista que imprime validate cada vez que otro mod va a cargar, y puede rechazarlo. Por ejemplo, para impedir mods de usuario que lancen procesos:

JavaScript · Mod de política

const PROHIBIDAS = ['process.run', 'process.spawn']

export function register(on) {
  on('plugin.register', async ($, e, next) => {
    const usadas = e.uses.calls.filter(c => PROHIBIDAS.includes(c))
    if (e.tier === 'user' && usadas.length > 0) {
      return { refuse: 'Política de la empresa: los mods no pueden usar ' + usadas.join(', ') }
    }
    return next(e)
  })
}

Ideas de mods para equipos

  • Estado de CI/CD: un panel junto a la conversación que se actualiza cuando los builds pasan o fallan.
  • Protección de producción: confirmación obligatoria antes de tocar configuración de producción.
  • Registro de auditoría: un mod que carga primero y registra cada llamada que hacen los demás mods.
  • Convenciones del equipo: inyectar en los prompts las reglas de nombres o de commits sin repetirlas cada vez.
✅
Buena práctica en equipos
Fija una versión concreta de Claude Code y escribe vuestra política de mods (qué se permite, quién revisa y cómo) en un documento como CONTRIBUTING.md del marketplace del equipo. La API de mods sigue evolucionando y varias versiones posteriores al lanzamiento han cambiado su comportamiento.
16

Buenas prácticas para escribir mods

  • Los guardianes deciden antes de next y fallan en cerrado con .catch. Los mods que solo observan deben fallar en abierto (.catch(($, e, next) => next(e))) para que un fallo en un medidor nunca bloquee tu trabajo.
  • Espera dentro de las llamadas a $. Un hook tiene 10 segundos de tiempo propio; las esperas en $.process.run o $.ui.ask no cuentan, pero tus propias promesas sí.
  • No guardes ni desestructures $. Pásalo solo a funciones definidas en el nivel superior del archivo.
  • Guarda lo que dibujas en $.state, no en variables del módulo: la recarga en caliente reinicia las variables. Para que algo sobreviva a /clear o entre sesiones, usa $.store.
  • La banda sobre el prompt es compartida. Llama a next(e) e incluye su resultado en tu dibujo, o esconderás lo que dibujan otros mods.
  • Registra los comandos al final de session.start o dentro de try/catch: un nombre ya usado lanza error y salta el resto del hook.
  • Registra cada evento una sola vez por filtro, o el módulo no cargará.
  • Decide según e.surface: algunos elementos solo dibujan en la terminal y otros solo en la app de escritorio.
  • Cuida la caché de prompts: evita cambiar modelo o system prompt sin necesidad.
  • Desarrolla con --plugin-dir: un mod instalado ejecuta una copia en caché, así que editar su carpeta no cambia nada hasta que lo actualizas.
17

Problemas comunes con los mods y cómo solucionarlos

Síntoma Causa probable Solución
/plugin no muestra el mod Carpeta no marcada como de confianza, --safe-mode, --bare o disableAllHooks Marca la carpeta como de confianza y reinicia sin esas opciones
«hooks modules are turned off in this process» Anthropic desactivó en remoto los mods instalados Actualiza Claude Code a la última versión
validate falla con errores raros Una CLI antigua aparece antes en tu PATH Comprueba claude --version y actualiza
Un hook se salta sin error visible Lanzó una excepción o superó los 10 segundos Arranca con claude --debug y lee la línea que explica el salto
Un panel no se abre Un panel abierto automáticamente necesita 144 columnas; /diff puede taparlo Ensancha la ventana, ábrelo tú con su comando o cierra /diff
Un dibujo no aparece El motor rechazó una propiedad Busca «ui.render refused» en el transcript o en el log de depuración
Funciona en la terminal pero no en la app La app trae su propia versión y algunos elementos son exclusivos de la terminal Revisa /status en la pestaña Code y usa e.surface
No se ve nada en VS Code ni en claude -p Esas superficies no dibujan Usa una línea en el transcript o el texto de un comando
Los mods se apagaron a mitad de sesión El proceso de mods falló tres veces Ejecuta /reload-plugins o abre una sesión nueva
18

Cómo compartir tu mod

Añade un marketplace.json junto a plugin.json dentro de .claude-plugin/:

JSON · marketplace.json

{
  "name": "mis-mods",
  "owner": { "name": "tu-nombre" },
  "plugins": [{ "name": "guardian", "source": "./" }]
}

Sube la carpeta a GitHub y cualquiera podrá añadir tu marketplace e instalar el mod. Antes de publicar, valida el plugin y el catálogo con claude plugin validate. Si quieres más visibilidad, puedes enviarlo al directorio de Claude, y si añades el topic claude-code-mod a tu repositorio, los catálogos de la comunidad suelen incluirlo.

Si vas a publicar una nueva versión, sube el número de version en plugin.json; los usuarios la reciben con claude plugin marketplace update y claude plugin update.

19

Preguntas frecuentes sobre los mods de Claude Code

¿Qué es un mod de Claude Code?

Es un plugin con funciones en TypeScript o JavaScript que se ejecutan dentro de Claude Code. Se engancha a eventos como una llamada a herramienta, un prompt o el dibujo de la pantalla, y puede observarlos, cambiarlos o responder en su lugar.

¿Necesito saber programar para usar mods?

No. Puedes instalar mods de otras personas con un comando o describir el mod que quieres en una sesión y Claude lo escribe, lo instala y lo recarga en caliente.

¿Qué versión de Claude Code necesito?

La 2.1.287 o superior en la terminal y la 2.1.286 o superior en la app de escritorio. Los mods vienen activados por defecto.

¿Los mods funcionan en Claude.ai o solo en Claude Code?

Solo en Claude Code: en la CLI y en la pestaña Code de la app de escritorio. En la extensión de VS Code, en claude -p y en sesiones en la nube los hooks se ejecutan, pero la interfaz del mod no se dibuja.

¿En qué se diferencia un mod de un hook?

Un hook de configuración es un script que Claude Code lanza desde fuera. Un mod corre dentro del proceso de Claude Code, así que puede dibujar interfaz, reescribir eventos, crear comandos instantáneos y sustituir funciones integradas, cosas que un hook no puede hacer.

¿Son seguros los mods?

Son tan seguros como su autor. No van en sandbox y tienen los mismos permisos que Claude Code: pueden leer archivos, secretos y variables de entorno, lanzar procesos y hacer peticiones de red. Instala solo mods de fuentes de confianza y revísalos con claude plugin validate.

¿Un mod puede saltarse mis reglas de permisos?

En una máquina personal sin managed settings, un mod que aprueba llamadas puede aprobar incluso algo que una regla deny rechaza. En planes Team y Enterprise o con managed settings, el guardián sec-default impide que un mod de usuario anule las reglas deny. Ningún mod puede cambiar lo que muestra el aviso de permiso.

¿Cómo desactivo todos los mods?

Para una sesión, arranca con claude --safe-mode. Para siempre, pon "disableAllHooks": true en ~/.claude/settings.json. Para uno concreto, desactívalo desde /plugin.

¿Puede una empresa bloquear los mods?

Sí. Con allowManagedModsOnly en managed settings solo cargan los mods de la organización. También se pueden limitar los marketplaces permitidos, bloquear --plugin-dir con disableSideloadFlags o desplegar un mod de política que revise a los demás.

¿Pueden comunicarse dos sesiones de Claude Code con mods?

Sí. Con $.session.send un mod envía mensajes a otra sesión o a un subagente, y con el evento session.receive decide qué hacer con los que llegan. Así puedes montar, por ejemplo, una sesión que planifica y otra que construye.

¿Los mods gastan tokens o uso de mi plan?

Solo si llaman a un modelo con $.model.complete, $.model.fork o envían prompts. Un mod que solo dibuja o bloquea comandos no consume tokens. Ten en cuenta que cambiar de modelo invalida la caché y puede encarecer los turnos.

¿Dónde encuentro mods para instalar?

En el directorio de Claude, en los ejemplos oficiales de claude-code-playground y en catálogos de la comunidad como awesome-claude-code-mods.

20

Conclusión: Claude Code ya es tuyo

Los mods de Claude Code no son un cambio enorme a simple vista, pero marcan un giro importante: ya no se trata solo de crear skills o conectar herramientas, sino de que el propio entorno de trabajo se vuelve modificable. Puedes añadirle medidores, frenos de seguridad, paneles, comandos y hasta hacer que varias sesiones colaboren entre sí.

Mi recomendación para empezar:

1
Actualiza Claude Code y comprueba los mods integrados con /plugin.
2
Prueba uno de los ejemplos oficiales (token-weather es perfecto para empezar).
3
Pide a Claude un mod sencillo, como mostrar la rama de git o el contexto usado.
4
Antes de instalar cualquier mod de terceros, valídalo y lee su código.
5
Protege siempre lo crítico con reglas deny, no solo con mods.
21

Fuentes y documentación oficial

Si te ha servido este articulo, te agradeceriamos un comentario

GRACIAS

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Facebook
WhatsApp
Email
Twitter
LinkedIn

Articulos relacionados