Open-source Discord transcription

Discord meeting transcription that knows who spoke.

Kuali joins voice channels as a bot, receives each participant separately, and transcribes the conversation live on your computer. No system-audio recording and no cloud transcription account.

Voices separated before WhisperAutomatic followingInteractive Discord results
The Kuali desktop interface with its local meeting library and Discord following ready
Discord connected to the local Kuali app
Why native capture matters

Not one mixed recording.
One identity per voice.

Generic recorders capture the device output and later try to infer speakers from a single waveform. Kuali uses Discord's participant streams directly, preserving the platform user ID, display name, avatar, timing, and voice channel context from capture to transcript.

Follow or invite

Kuali can follow the configured Discord user automatically, or anyone in a voice channel can invite it with /record or /grabar.

Transcribe live

Silero removes non-speech audio before Whisper decodes each participant. The live view shows who is speaking and the text attached to them.

Deliver useful results

The meeting becomes a searchable local record and, when configured, a polished Discord card with tasks and private paginated views.

Discord transcription details

Speaker attribution

Names come from Discord, not diarization guesses.

Every Discord user is tracked with a string-safe platform ID. Joining late, changing activity, sharing a screen, or temporarily stopping speech does not create a new anonymous speaker. Separate call sessions also keep independent participants and clocks.

This platform identity lets Kuali assign tasks to a participant, filter work by person, show avatars, and preserve exactly who said each transcript segment.

After the call

Readable in Discord. Complete when you need it.

Kuali can publish one compact meeting card while the optional summary is prepared and update that same message when processing finishes. Buttons open the summary, key points, decisions, open questions, and paginated transcript privately, while downloadable text files preserve the complete output.

Insights can reuse an authenticated Claude Code, Codex, or Gemini CLI session, or use the API provider you choose. Inside the desktop app, every meeting remains searchable by channel, date, participant, title, and words from the transcript.

Local by default

Voice is decoded on your computer.

Discord audio is processed in memory. Silero voice activity detection and Whisper run locally, and Kuali does not keep an audio recording. Meeting data stays in Kuali's local application directory until you delete it.

Summaries are optional. A transcript reaches an external LLM only when you enable summaries and configure that provider yourself.

Interoperability

Send completed meetings to your own tools.

Signed Standard Webhooks can subscribe globally or to one Discord channel. The meeting.completed event contains participants, timestamped transcript, summary status, insights, and tasks—never the original audio.

Read the webhook guide

Discord transcription FAQ

Before Kuali joins.

Can Kuali identify individual Discord speakers?

Yes. Discord provides a separate stream and stable identity for each user, allowing Kuali to preserve attribution without guessing from mixed system audio.

Does Kuali save call audio?

No. Raw audio is processed in memory by Silero and Whisper. Kuali stores the transcript and meeting record, not an audio recording.

What happens when someone joins late?

Kuali registers the participant, plays the disclosure for them, records that notice in the consent log, and begins processing their separate voice stream.

Are summaries required?

No. Live and stored transcription work locally without an LLM. Summary and task delivery can be disabled entirely.

Three simple steps

Create. Paste. Authorize. Done.

Kuali shows every click, obtains the application ID itself, and prepares the required scopes and permissions. You never build an OAuth URL or edit a configuration file.

Open the Discord setup guide