Skip to content
Guides

Discord voice transcripts and meeting notes in OpenClaw

Explicit capture, what recording does and does not grant, the batch pipeline and its limits, and the occupancy-driven note-taking bot

6 min read

Presence and recording are two decisions in OpenClaw’s Discord voice support. Auto-join controls where the bot is and whether it converses; it does not start durable recording. Capture starts explicitly, with the transcripts agent tool or a configured auto-start source, and the docs are precise about what a recording does and does not grant. Here is how capture attaches, the permission boundary, the batch pipeline and its fallback, the limits, the join and stop semantics, and the meeting-notes recipe.

Starting capture

  • An authorised agent starts capture with a start action naming the provider, account, guild and channel; capture subscribes to that exact target until stopped, attaches to an existing matching voice connection without changing conversation or occupancy ownership, waits through empty rooms when the target is an occupancy-managed auto-join, follows same-channel connection recovery, and never moves a connection to another channel.
  • Recording records participants independently of command access: guild and channel users and roles, the command owners and wake-name gates still control conversation, tools and active-run controls, and recording grants none of them. Speech during protected playback is recorded without interrupting playback or triggering a reply, and someone already speaking when the subscription starts is recorded without conversational input until a fresh receive stream begins.
  • Full coverage requires batch audio understanding: one per-speaker audio stream and batch transcription with the receiver’s user id, an independently resolved display label and the audio-ingress time; authorised speakers can also feed realtime conversation from the same decoded audio, recording continues when realtime connections are busy, and continuous speech is split into bounded uploads that are segments of one session, not separate meetings.
  • Realtime-only setups can record final text from their active per-speaker connections when batch transcription is disabled, but that limited route covers only speakers admitted to conversation and cannot produce fallback text for mixed input, failed or oversized audio or continuity resets, so the status command shows a coverage warning and points operators to configure audio transcription; starting capture with audio understanding disabled requires an active realtime conversation.
Tell participants that the bot captures and stores transcripts before enabling it.

Limits, joins, stops

Conversation authorisation and replies run separately from recording: each voice connection permits eight unfinished voice requests with at most one mebibyte of decoded audio waiting per request, batch requests keep at most one mebibyte of transcript text and a thousand segments, reaching a limit discards that voice request while recording continues, and pending recording work is capped across the Gateway process at 128 chunks and 64 mebibytes of audio, a budget that survives reconnections. If transcription or note saving cannot keep up, the affected receive stream stops while the capture stays registered; a failed or omitted transcription, a chunk that lost command access or a discarded fragment below the minimum duration leaves successful notes saved but does not trigger a reply, and a completed transcription with no text is allowed. With no auto-join target or active conversation in that guild, a manual capture joins silently in transcript-only mode and a later join command enables conversation on that connection; a capture for another channel stays registered without taking over. Stopping uses the tool’s stop action with the returned session id, works while disconnected, never disconnects a conversation-owned connection, revokes pending publication so old audio cannot enter a new capture, and starting a new capture for the same source transfers the subscription without reconnecting. Continuous capture can span several room occupations until stopped, and summaries are never posted to Discord automatically.

Meeting notes

  • The recipe keeps a note-taking bot in a voice channel only while humans are present: enable Discord voice, configure an authenticated speech-to-text provider under the media models with audio enabled, and add an occupancy-driven auto-start source naming the provider, guild and channel; the bot needs connect permission and the voice-states intent, the channel must sit inside any allowed-channels list, and the recipe uses the transcripts auto-start, not the conversational auto-join.
  • With several accounts, an account id selects the voice-enabled bot, and at most one occupancy-driven entry per account and guild is honoured, since the bot cannot capture two channels in one guild. The bot joins on human arrival, including a room already occupied at startup, waits thirty seconds after the last human leaves before leaving and generating notes, and a session stopped less than ten minutes ago can reopen for the same source after a restart or short gap while preserving its id, start time and utterances.
  • Notes include participants, an overview, decisions, action items and risks, generated with the agent’s utility model, falling back to its primary model and then to deterministic heuristic notes; stored notes are read with the transcripts tool, the CLI or the Control UI meetings page, and a summarise action regenerates them from the stored transcript.

OpenClaw in Discord voice channels covers the conversational side these captures can attach to, and OpenClaw on Discord the channel and its intents.

Why the separation

Keeping recording apart from conversation authorisation means a room can be transcribed faithfully even when only some speakers may talk to the agent, and it means a recording never becomes a back door to tools or active runs. OpenClaw memory explained is where durable knowledge from meetings can be promoted afterwards, and OpenClaw models and providers the utility and primary models the notes fall through.

On Diali

On Diali meeting notes would land in the assistant’s transcripts store on its volume, and the same consent point applies: tell the room before the bot listens. Hosted OpenClaw on Diali is the assistant and Diali security describes the boundary around that store.

  • Capture is explicit; auto-join is only presence.
  • Recording grants nothing; conversation stays authorised separately.
  • Thirty seconds of grace, then the notes.
Get started

Stop reading about it, build one

Set up an agent, pick a channel, and have it working inside the app you already keep open.