You run this on a computer at home. It is not a website that holds your audio.

A computer you leave turned on helps. A graphics card makes transcription much faster. A writing model for cleanup is optional; without it you still get the raw transcript.

Get it running

git clone https://github.com/Catalyst-Forge-LLC/dictawhisper.git
cd dictawhisper
cp config.example.json config.json
# point it at your speech setup, names you say often,
# and (optionally) which computer should tidy the text
pnpm install
pnpm run doctor
pnpm dev

Open http://localhost:7777. Record, or drag a file onto the page. You do not need an extra sync tool for that.

pnpm run doctor is a checkup. It names what is missing up front instead of failing later without explanation. If the cleanup model cannot be reached, that is a warning rather than an error, and notes still get written.

Optional: sync a phone folder

If you already record on your phone, install Syncthing (or any folder sync tool) on both devices and share a folder to your workstation.

Add that directory to "roots" in config.json:

"watch": {
  "roots": ["C:\\Users\\YOU\\VoiceNotes"]
}

Files arriving via folder sync wait 30 minutes after the last write before organizing into YYYY/MM/ and transcribing, so recordings never process mid-transfer.

Optional: read from your phone on Tailscale

If you want to open the inbox from a phone or laptop away from your desk, install Tailscale on both devices.

Set "http": { "tailscale": true } in config.json (or DICTA_TAILSCALE=1) and start the app. The checkup and startup logs print your private link. Open that from any device on the same Tailscale. There is no login on the app: access is limited to your tailnet.

Already have a pile of recordings?

pnpm retranscribe
pnpm retranscribe --dir="./notes/2026/08" --limit=5 --reclean

That walks existing notes, newest first. Every flag is in the GitHub README.