discord-scribe GitHub

Autoalojado · Licencia MIT · Node.js 22+

Un bot privado que toma notas en tu canal de voz de Discord.

Escribe /grabar. Yo tomo las notas.

discord-scribe graba a cada participante por separado, transcribe en local con whisper.cpp y entrega una transcripción y un resumen en Markdown. Tú ejecutas tu propia aplicación de Discord en tu propio equipo. No hay ningún servicio alojado y nadie más puede invitar a tu bot.

Consíguelo en GitHub Lee la guía de instalación

Mientras graba, el bot se renombra a [GRABANDO] ...

Una pista por participante; cada una es sobre todo silencio. Whisper lee cada pista en local y las intervenciones se fusionan en orden cronológico.

/grabar
El bot entra en tu canal de voz y anuncia la grabación.
/parar
Transcribe, resume y publica el resultado en el canal de texto donde usaste /grabar.

Resumen: general Ejemplo

2026-10-04 17:05

Resumen

El equipo ha acordado celebrar la presentación del trimestre el jueves 15 y ha repartido las tareas.

Tareas pendientes

  • Preparar el guionAna
  • Recopilar las cifrasLuis, el lunes
  • Reservar la salaMarta

Cómo funciona

De /grabar a Markdown

  1. Grabar

    El bot entra en tu canal de voz, anuncia la grabación en el canal de texto y escribe un archivo WAV por participante. La grabación también se detiene sola cuando el canal se queda vacío.

  2. Transcribir

    Con /parar, cada pista pasa por whisper-cli en tu equipo. Las intervenciones se fusionan en una única transcripción ordenada cronológicamente y los archivos WAV se borran en cuanto se transcriben.

  3. Resumir

    De forma opcional, claude -p redacta el resumen. Se publica donde usaste /grabar, con transcript.md adjunto. Si el resumen falla, la transcripción se guarda y se publica igualmente.

recordings/2026-10-04_1705-general/
  transcript.md
  summary.md
transcript.md
[mm:ss] **Nombre**: texto, en orden cronológico, con las intervenciones consecutivas de una misma persona fusionadas.
summary.md
Resumen, decisiones y tareas pendientes con su responsable.

Ejemplo de salida

Lo que te entrega el bot.

Tras /parar, la carpeta de la grabación contiene dos archivos Markdown. Aquí tienes un ejemplo de cada uno, con participantes y una reunión inventados, con el formato que escribe el bot.

transcript.mdEjemplo
# Transcripción: general

_2026-10-04 17:05_

[00:04] **Ana**: Vale, empezamos. Hoy toca cerrar la fecha de la presentación del trimestre.

[00:15] **Luis**: Yo propondría el jueves 15, así tenemos una semana para preparar las diapositivas.

[00:27] **Marta**: Me va bien el jueves. Puedo reservar la sala si alguien prepara el guion.

[00:41] **Ana**: El guion lo preparo yo. Luis, ¿puedes recopilar las cifras?

[00:52] **Luis**: Sí, las tengo el lunes.

Un bloque por intervención, en orden cronológico, con las intervenciones consecutivas de una misma persona fusionadas. Las marcas de tiempo se escriben mm:ss, o h:mm:ss a partir de la primera hora.

summary.mdEjemplo
# Resumen: general

_2026-10-04 17:05_

## Resumen

El equipo ha acordado celebrar la presentación del trimestre el jueves 15 y ha repartido las tareas: sala, guion y cifras.

## Decisiones

- La presentación será el jueves 15.

## Tareas pendientes

- Preparar el guion: Ana.
- Recopilar las cifras: Luis, el lunes.
- Reservar la sala: Marta.

El bot añade el título y la fecha. Claude escribe el resto, en las tres secciones que le pide su prompt: un resumen breve, las decisiones y las tareas pendientes, con responsable y fecha cuando se mencionan.

Los mensajes del bot en el chat y el resumen salen siempre en español, porque el prompt del resumen está fijado en ese idioma. WHISPER_LANGUAGE y WHISPER_PROMPT solo cambian la transcripción: el idioma hablado y el prompt inicial para la puntuación y el vocabulario.

Privacidad

Pensado para que todo se quede de tu lado.

0 bytes de audio salen de tu equipo.

Whisper se ejecuta en local y los archivos de audio se borran en cuanto se transcriben. Lo único que puede llegar a Anthropic es texto de la transcripción, no audio, y solo para el resumen opcional, a través de la CLI claude y tu propio inicio de sesión de Claude. Con SUMMARY_ENABLED=false, claude no se ejecuta nunca.

Plataformas

Funciona en macOS, Linux y Windows.

Todos los sistemas necesitan Node.js 22+ y git. La CLI de Claude Code solo hace falta mientras los resúmenes estén activados. Los instaladores del servicio arrancan el bot al iniciar sesión y lo reinician si falla.

Conviene saber

  • Los mensajes del bot en el chat y summary.md están siempre en español. Whisper transcribe en español por defecto; WHISPER_LANGUAGE y WHISPER_PROMPT solo cambian la transcripción.
  • La recepción de voz no es oficial en ninguna librería de Discord y puede romperse cuando Discord cambie su protocolo de voz.
  • Una grabación por servidor a la vez; los trabajos de transcripción se ejecutan uno tras otro.
  • La CI cubre las pruebas y la comprobación de tipos en los tres sistemas, no una sesión real de Discord.

Instalación

Clónalo, rellena .env, ejecútalo.

git clone https://github.com/Fishb0ness/discord-scribe
cd discord-scribe
npm install
npm run download-models   # large-v3 (unos 3 GB) + Silero VAD
cp .env.example .env      # en Windows: copy .env.example .env
npm start

También tendrás que crear tu propia aplicación de Discord y añadir su token y el ID de tu servidor a .env. El README explica cada paso.

Abre la guía de instalación Ver el código fuente

Preguntas frecuentes

Respuestas rápidas.

Extraídas de las secciones de privacidad, solución de problemas y limitaciones conocidas del README.

¿Mi audio sale alguna vez de mi equipo?

No. El audio de cada usuario se escribe en una carpeta temporal, whisper.cpp lo transcribe en local y se borra en cuanto se transcribe. Solo el texto de la transcripción, no el audio, llega a Anthropic, y únicamente para generar el resumen, a través de la CLI claude y tu propio inicio de sesión de Claude. Con SUMMARY_ENABLED=false, claude no se ejecuta nunca.

Más en el README: Privacidad y acceso

¿Puede alguien más añadir el bot a su servidor?

No. Desactiva Public Bot en el Developer Portal y solo tú podrás añadirlo. ALLOWED_GUILD_IDS es obligatorio: el bot ignora las interacciones de otros servidores (mensajes directos incluidos) y abandona cualquier otro servidor al que lo añadan.

Más en el README: Privacidad y acceso

El bot ha abandonado mi servidor por sí solo. ¿Por qué?

Abandona todos los servidores cuyo ID no esté en ALLOWED_GUILD_IDS (el log dice Leaving guild). La causa habitual es una errata o un ID equivocado, por ejemplo al migrar desde el antiguo DISCORD_GUILD_ID. Activa el Modo desarrollador en Discord, haz clic derecho en el servidor, elige Copiar ID del servidor, pégalo en .env, reinicia el bot y vuelve a invitarlo.

Más en el README: Solución de problemas

Los comandos de barra no aparecen.

Se registran por servidor permitido al arrancar. Comprueba que el log diga Registered slash commands, que el bot se añadiera con el scope applications.commands y que el ID de servidor de ALLOWED_GUILD_IDS sea correcto.

Más en el README: Solución de problemas

La transcripción sale vacía o llena de «Gracias.»

Falta el modelo VAD (el bot lo avisa al arrancar). Ejecuta npm run download-models. Sin él, Whisper se inventa texto en los silencios, y la pista de cada participante es sobre todo silencio.

Más en el README: Solución de problemas

Tengo la transcripción, pero no el resumen.

Comprueba que claude -p "hi" funciona con el usuario que ejecuta el bot (los servicios se ejecutan como tú, pero con un PATH más reducido) y que SUMMARY_ENABLED no es false. Si el resumen falla, la transcripción se guarda y se publica igualmente, con un aviso.

Más en el README: Solución de problemas

¿Hay límites con las grabaciones simultáneas?

Una grabación por servidor a la vez, y los trabajos de transcripción se ejecutan uno tras otro. Si el bot se cierra de forma abrupta a mitad de una grabación, los WAV de cada usuario se quedan en recordings/.work/ y no se procesan automáticamente.

Más en el README: Limitaciones conocidas

¿Puede una actualización de Discord romperlo?

Sí. La recepción de voz no es oficial en ninguna librería de Discord y puede romperse cuando Discord cambie su protocolo de voz (DAVE); si ocurre, actualiza Dysnomia y Davey. La CI cubre las pruebas y la comprobación de tipos en macOS, Linux y Windows, no una sesión real de Discord.

Más en el README: Limitaciones conocidas

Ejecuta tu propio escriba.

Tu aplicación de Discord, tu equipo, tus transcripciones. Licencia MIT, sin ningún servicio alojado de por medio.

Sigue la guía de instalación Explora el repositorio