Skip to content

Search is only available in production builds. Try building and previewing the site to test it out locally.

DocGraph can listen and speak — entirely on your machine, like everything else. Dictate notes hands-free with a local Whisper model, or have any page read back to you with a local Kokoro voice. No audio, and no transcript, ever leaves your computer — the only network request voice ever makes is the one-time, consent-gated model download.

Settings → AI → Voice: the enable toggle, three selectable speech-to-text model sizes, a microphone test, and the text-to-speech voice model.

Voice is off by default. One Voice button sits in the page toolbar on every page except whiteboards. Click it for a small menu:

  • Dictate here — speak into the page.
  • Listen to page — have the page read aloud.

With voice off, the menu shows Turn on voice… instead, which opens Settings → AI → Voice; turn on the Enable voice toggle there. In <>Source, Dictate here is greyed out with the hint “Switch to Edit to dictate”. Listen to page works in either view. The chat composer gets a Dictate button as well.

The first time you use either feature, DocGraph asks to download its model — a one-time, per-model consent dialog naming the exact size and source, after which everything runs offline.

Open the Voice menu and choose Dictate here (or right-click in the page and choose Dictate here) to start recording. While it records, the Voice button itself becomes Stop & insert. A small overlay tracks the state — Recording… with Stop & insert and Cancel, then Transcribing… while Whisper runs on-device:

The recording overlay: a red "Recording…" indicator with Stop & insert and Cancel buttons.

Stop, and the transcript is inserted at your cursor the same way a paste is — at the caret if you have one, or appended to the end of the page otherwise. Dictation works on both HTML and Markdown pages.

Speech-to-text is English only. If Whisper doesn’t catch any words — too quiet, too far from the mic, or a language it can’t transcribe — you get an honest message rather than a silent no-op:

An error banner reading "Voice error: Didn't catch any speech — speak a bit louder/closer. (The model is English-only.)"

There’s no live partial transcript while you talk, and no punctuation commands (“period”, “new line”) — it’s push-to-talk, whole-recording transcription, verbatim.

Three model sizes are available in Settings → AI → Voice, trading download size for accuracy: Tiny (~74 MB, fastest), Base (~141 MB, balanced — the default), and Small (~465 MB, most accurate). Switch anytime; only your selected model needs to be downloaded.

The chat panel has its own mic. With voice enabled and a chat model chosen, a Dictate button sits in the composer toolbar next to Agent. Click it to start recording (the button reads Stop), click again to stop: it shows Transcribing… while Whisper runs on-device, then adds the transcript to the end of whatever is already in the message box. The message is not sent; read it, edit it, and press ↵ yourself. It uses the same speech model, is English only, and is push-to-talk like page dictation.

Open the Voice menu and choose Listen to page to narrate the current page with a local voice. While it plays, the Voice button becomes Pause narration (then Resume narration), with a separate Stop narration button beside it:

The toolbar mid-narration: a pause icon and a stop icon in place of the Voice button.

Read-aloud narrates the whole current page — there’s no read-selection option — and skips anything inside an encrypted section. A note encrypted as a whole file is read only while it’s unlocked; while it’s locked, DocGraph tells you to unlock it first. One English voice (Kokoro’s af_heart) ships today; adjust its playback speed (0.5×–2×) in Settings → AI → Voice. The same voice also narrates AI chat replies if you turn on Speak AI replies (Markdown formatting is stripped first, so you don’t hear asterisks and hashes).

SettingWhat it does
Enable voiceMaster on/off for both dictation and read-aloud. Off by default.
Speech-to-text modelTiny / Base / Small, English only. Download and switch anytime.
Input deviceWhich microphone to record from — defaults to System default.
Test microphoneRecord, then Stop & transcribe: shows the transcript (or no speech detected) on-device, without leaving Settings.
Voice model (TTS)Kokoro, downloaded once (~89 MB).
VoiceThe narration voice — currently one option, af_heart.
SpeedNarration playback speed, 0.5×–2× (default 1.00×).
Speak AI repliesAuto-narrate the assistant’s chat answers as they finish. Off by default. Below it, a note says whether your chat model suits being spoken to — it warns about reasoning models and large (13B+) models that make you wait for each reply.
  • English only, for both dictation and narration — no other languages or voices ship today.
  • No live partial transcript. Dictation is push-to-talk: nothing appears until you stop, and the whole recording is transcribed at once.
  • No punctuation or formatting commands. What you say is what gets typed, literally.
  • Dictation needs the editing view. In <>Source, Dictate here is greyed out — switch to Edit to dictate.
  • Model downloads have no progress bar or resume — one download per model, shown as a spinner until it completes.