Quick start
pnpm dev
Open http://localhost:7777.
- Talk. Hit Record, or drag an audio file onto the page.
- Browser files start immediately. Optional ffmpeg denoise, then Whisper (model loaded once) writes a sidecar
.json. - ollanet cleans the text and adds tags onto the same JSON. Raw speech is kept.
- Notes are grouped by month. Cleaned text is the default; raw speech is one click away. Playback follows the cleaned paragraphs.
If LocalBerth is installed, 7777 is the dictawhisper slip and 8008 is dictawhisper-api (loopback; not --lan).
Optional phone folder
If you also watch a phone folder (Syncthing or any folder sync), those files wait 30 minutes after the last write so the transfer can finish, then dated names are filed into YYYY/MM/ on that watch root.
Browser record/drop → drop folder → immediately ─────────────┐
Optional phone folder → watch roots → settle 30m → YYYY/MM/ ┼─→ whisper → sidecar.json → ollanet → UI
Force / retranscribe ─────────────────────────────────────────┘
Add the directory to "roots" in config.json:
"watch": {
"roots": ["C:\\Users\\YOU\\VoiceNotes"]
}
Optional Tailscale
To reach the UI from a phone on your Tailscale:
"http": { "tailscale": true }
or DICTA_TAILSCALE=1. Doctor and startup print the MagicDNS / 100.x URL. There is still no login: only devices on that tailnet should be able to open it. The inbox is not bound to 0.0.0.0 or your LAN.
See Run for the other commands.