Saltar al contenido
claudemods

After: una cola de prompts de Claude Code que no desvía

Cola de prompts para Claude Code: /after ejecuta la siguiente tarea cuando termina la actual, sin desviarla.

Permisos

  • Llama al modelo (usa tu cuota)Puede enviar sus propias peticiones a Claude, que cuentan para el uso de tu plan ($.model.* / $.agent.spawn).
  • Lee tus promptsPuede ver lo que escribes y la transcripción de la conversación (prompt.* / session.append / session.messages).
  • Modifica la interfazDibuja en la interfaz de Claude Code: bandas, paneles, texto de estado, avisos (ui.render / $.ui.*).
  • Añade comandos/herramientasRegistra nuevos comandos de barra o herramientas invocables por ti o por Claude ($.command.register / $.tool.register).
  • Guarda datosConserva datos entre sesiones en el almacén privado del plugin ($.store.*).
probado con
v2.1.303
última prueba
requiere
Claude Code ≥ 2.1.287
superficies
sobre el prompt, panel, aviso, estado

Instalar dentro de Claude Code:

/plugin install after --marketplace midudev/better-claude
Todas las opciones de instalación ↓

¿Qué hace este mod?

After es un mod de la comunidad de Miguel Ángel Durán (midudev) y funciona como una cola de prompts de Claude Code. /after <task> añade una tarea que se ejecuta cuando Claude termina lo que está haciendo; si Claude está libre, la tarea empieza de inmediato. /before <task> pone una tarea al frente para que se ejecute la siguiente. Lo importante es que las tareas encoladas no desvían el turno actual: Claude no las ve hasta que les toca.

Cada comando responde con una tarjeta con borde en la transcripción que muestra lo que cambió: una tarea nueva, movida, editada o eliminada. Mientras haya algo en cola, una banda de una línea sobre el prompt muestra lo que se ejecuta ahora y lo que viene después. /after a secas abre un panel donde eliges, editas, reordenas y borras tareas con el teclado. También puedes escribir en lenguaje natural, como /after remove the tests one o /after tests, write a README explaining them; Haiku deduce qué quieres decir cuando el texto puede referirse a algo ya encolado.

Otros comandos: /after rm 2, mv 3 1, edit 2 <text>, pause, resume, undo, clear, list y help. El README del autor pide una versión de Claude Code con mods, la 2.1.289 o posterior.

Demo

La grabación inicia Claude Code con el mod cargado en el pequeño proyecto de demostración y le pide a Claude que lea README.md y diga en una frase de qué trata el proyecto. Mientras Claude todavía trabaja, el clip escribe /after read src/login.js and say what it does in one sentence. Aparece una tarjeta titulada After con Queued #1 y la tarea marcada con ← new, y la banda sobre el prompt muestra la tarea. Cuando termina la primera respuesta, el mod envía la tarea encolada como mensaje («Prompt from the after plugin»), la banda cambia a ▶ read src/login.js and say what… nothing else queued y Claude empieza con ella. El clip termina ahí.

Instalación

Usa cualquiera de los métodos del bloque de instalación; instalan directamente desde el marketplace del autor. Si instalas en una sesión ya abierta, ejecuta primero /reload-plugins. Después prueba /after <task> mientras Claude trabaja.

$ install after

Requiere Claude Code ≥ 2.1.287

Se instala desde el marketplace del autor: midudev/better-claude

  1. 1.Una línea, dentro de Claude Code

    /plugin install after --marketplace midudev/better-claude

    Pégala en una sesión abierta (v2.1.275+). Claude Code te pedirá primero añadir el marketplace.

  2. 2.Desde tu shell

    claude plugin marketplace add midudev/better-claude
    claude plugin install after@better-claude

    Después ejecuta /reload-plugins en cualquier sesión que ya esté abierta.

  3. 3.Pruébalo sin instalarlo

    git clone https://github.com/midudev/better-claude
    claude --plugin-dir ./better-claude/plugins/after

    Carga el mod solo para una sesión. No se añade nada a tu configuración.

Cómo funciona

Todo el mod es un módulo de hooks, hooks/register.tsx, sobre JavaScript simple en src/. /after y /before se registran como comandos inmediatos, así que funcionan incluso a mitad de un turno. La cola se mantiene en $.state para la banda y el panel, y se guarda en $.store por sesión. Cuando termina un turno, la siguiente tarea se entrega a Claude:

on('turn.complete', async ($, e, next) => {
  const result = await next(e)
  if (e.agentId === undefined) await finishTurn($, e.reason === 'answer')
  return result
})
// ...
reason = (await $.prompt.submit({ text: item.text, asUser: true })).drop

Solo los turnos respondidos del agente principal mueven la cola; Esc, una negativa o un error de la API la detienen hasta que un turno termine con normalidad. Para mantener las tareas fuera del contexto de Claude, el comando responde solo con una referencia corta como #lq2x9k-3, un hook ui.render sobre CommandOutput dibuja la tarjeta en su lugar, y un hook session.append vacía los argumentos del comando en el registro de la transcripción, como muestra la línea /after de la demo. El texto en lenguaje natural solo va a $.model.complete cuando puede referirse a la cola, y las heurísticas locales toman el relevo si el modelo no responde.

Personalízalo

/config muestra tres opciones, o defínelas en pluginConfigs.after.options dentro de settings.json:

  • smart (por defecto activada): pregunta a un modelo pequeño qué significa un comando. Desactivada usa solo coincidencia local.
  • model (por defecto haiku): un alias o un id de modelo completo para esas solicitudes.
  • display (por defecto band): band sobre el prompt, status como una línea debajo, o none.

Permisos y seguridad

Leímos todos los archivos que carga el plugin antes de ejecutar nada: plugin.json, hooks/hooks.json, hooks/register.tsx, todo src/ (JavaScript puro sin APIs de Node ni importaciones fuera del plugin), los tipos y las pruebas. El plugin no tiene package.json, script de instalación, código empaquetado o minificado ni binarios. El repositorio incluye un archivo LICENSE MIT.

Cambia la interfaz abarca la banda, el panel, las tarjetas y un aviso, «After · all queued tasks done». Añade comandos abarca /after y /before. Guarda datos abarca la cola y las tarjetas, en el $.store propio del plugin, que se depuran a los 7 y 30 días.

Hallazgos que conviene conocer:

  • Envía prompts por ti. $.prompt.submit manda cada tarea encolada como tu propio mensaje cuando termina un turno. Claude trabaja entonces con tus ajustes de permisos habituales, pero las tareas encoladas se ejecutan sin supervisión, así que revisa la cola con /after list o la banda.
  • Envía el texto de la cola a un modelo. Los comandos en lenguaje natural envían el comando y los textos de las tareas encoladas a Haiku mediante el cliente propio de Claude Code ($.model.complete, 25 s de límite). Es la misma cuenta que ya usas, sin host ni clave adicionales; se desactiva con smart.
  • Reescribe el registro de la transcripción. El hook session.append quita los argumentos de /after y /before de lo que lee el modelo. No bloquea ni cambia llamadas a herramientas ni tus prompts; validate lo lista como hook de control sin .catch, y el código coincide con el README.
  • No usa la red por su cuenta, no ejecuta comandos de shell, no lee variables de entorno ni escribe fuera de su almacén. scripts/eval-haiku.js sí lanza claude -p, pero es un script de desarrollo que el plugin nunca carga.
  • Comprueba si hay archivos antiguos after.md y before.md en ~/.claude/commands y solo registra un mensaje pidiendo borrarlos. No los toca.

claude plugin validate no informó de errores ni advertencias, y las 20 pruebas del autor pasaron con Claude Code 2.1.303.

Llama al modelo (usa tu cuota)
Puede enviar sus propias peticiones a Claude, que cuentan para el uso de tu plan ($.model.* / $.agent.spawn).
Lee tus prompts
Puede ver lo que escribes y la transcripción de la conversación (prompt.* / session.append / session.messages).
Modifica la interfaz
Dibuja en la interfaz de Claude Code: bandas, paneles, texto de estado, avisos (ui.render / $.ui.*).
Añade comandos/herramientas
Registra nuevos comandos de barra o herramientas invocables por ti o por Claude ($.command.register / $.tool.register).
Guarda datos
Conserva datos entre sesiones en el almacén privado del plugin ($.store.*).

Compatibilidad y solución de problemas

Comprobado con Claude Code 2.1.303 en macOS (validate, pruebas y demo). Si no funciona:

  • Falta /after: confirma que el plugin está cargado en /plugin y ejecuta /reload-plugins tras instalar.
  • Un archivo after.md o before.md en ~/.claude/commands (dejado por After 0.1) tapa el mod; bórralo.
  • No se ejecuta nada: puede que la cola esté en pausa, así que ejecuta /after resume. Tras Esc o un error espera a que un turno termine con normalidad.
  • El panel necesita soporte de entrada en tu superficie; sin él, usa los comandos directamente.
  • Para armar una cola antes de que empiece nada mientras Claude está libre, ejecuta /after pause, añade tus tareas y luego /after resume.

Preguntas frecuentes

¿Qué diferencia hay entre escribir mientras Claude trabaja y usar /after?
El texto que escribes durante un turno se inyecta en ese turno y puede cambiar lo que Claude está haciendo. Una tarea encolada con /after queda fuera del contexto de Claude hasta que termina el turno actual, y entonces llega como tu propio mensaje.
¿After llama a un modelo?
Solo para comandos en lenguaje natural como «/after remove the tests one», y solo cuando el texto puede referirse a una tarea encolada. Pregunta a Haiku mediante el cliente propio de Claude Code, así que no hace falta clave de API. Con la opción smart desactivada solo usa coincidencia local.
¿Qué pasa si pulso Esc?
Esc interrumpe la tarea en curso como siempre y la cola espera hasta que un turno posterior termine con normalidad. También puedes detenerla tú con /after pause y reanudarla con /after resume.
¿La cola sobrevive a un reinicio o a /clear?
Sí. La cola se guarda por sesión en el almacén propio del plugin, así que una sesión reanudada la encuentra sin nada marcado como en curso, y /clear la conserva para la nueva conversación.
¿Cómo oculto la banda sobre el prompt?
Pon la opción display en status para una línea bajo el prompt, o en none para ver la cola solo mediante /after. Las opciones están en /config.
Aviso de finalización funcionando en Claude CodeDestacado

Aviso de finalización

Un toast «Done in 2m 14s» y un sonido al terminar un turno largo de Claude, más un aviso de escritorio opcional.

  • aviso
  • Ejecuta comandos
  • Modifica la interfaz
  • Reproduce sonido

probado con v2.1.310

Contador de llamadas a herramientas funcionando en Claude CodeDestacado

Contador de llamadas a herramientas

Cuenta las llamadas a herramientas por turno y sesión, muestra el total junto al spinner y añade /tally con un desglose.

  • spinner
  • transcripción
  • estado
  • Intercepta llamadas a herramientas
  • Modifica la interfaz
  • Añade comandos/herramientas

probado con v2.1.310

Más en Temporizadores, tareas y standups, Comandos slash.