Issue · · Local-first dictation for Linux

Speak.
It types.

A lightweight dictation system for Linux, macOS, and Windows. Local for privacy. Cloud for performance. LLM cleanup. State‑of‑the‑art on whatever silicon you have.

$ curl -L https://fono.page/install | sh
Star on GitHub
Author
Bogdan Rădulescu & contributors · open source
License
GPL-3.0-only · audit every byte
Runs on
Linux · X11 today, Wayland in progress
Roadmap
macOS · Windows
Telemetry
None. Ever.
№01 · Manifesto

Six things, done well.

Dictation on Linux has been Electron apps with subscriptions or Python scripts that never quite work. Fono is a third option.

01

Local first.

Whisper runs on your machine. Audio never leaves the box unless you opt in. Your voice stays yours.

02

Cloud fast.

One command swaps in Groq, OpenAI, Cerebras, Anthropic, or Deepgram. Bring your own key. No daemon restart.

03

LLM cleanup.

Optional pass strips filler, restores punctuation, fixes proper nouns. Local or cloud, your call.

04

Hardware aware.

fono setup probes your machine, picks the right model size, and binds the hotkeys. Two minutes flat.

05

Press once.

F9 toggles recording, F8 is push-to-talk. Text lands in the focused window: terminal, browser, IDE, chat.

06

Open source.

GPL-3.0-only. Single static Rust binary. No telemetry. No accounts. No upsell. Ever.

№02 · Install

Ninety seconds.

One curl, one binary, /usr/local/bin. Distro-native packages below if you prefer.

One-liner · any Linux
$ curl -L https://fono.page/install | sh
Detects your arch, fetches the latest release binary, installs to /usr/local/bin/fono. Inspect the script before piping.
Arch / Manjaro
sudo pacman -U fono-0.2.0-1-x86_64.pkg.tar.zst
Debian / Ubuntu
sudo apt install ./fono_0.2.0_amd64.deb
Slackware / NimbleX
installpkg fono-0.2.0-x86_64-1.txz
Other Linux
bare binary from Releases
macOS
planned · Linux first
Windows
planned · Linux first
First run · hot-swap
$ fono setup            # picks local vs cloud, installs models
$ fono                  # starts the daemon (tray + hotkeys)
$ fono use cloud groq   # swap STT + LLM, no restart
$ fono keys add GROQ_API_KEY
№03 · Pipeline

Four small pieces.

Each stage is swappable. Stay local end-to-end, or stream any one stage to the cloud.

01

Capture

PipeWire, PulseAudio, or ALSA. VAD trims silence before bytes ever leave the mic.

02

Transcribe

whisper.cpp on-device, or Groq · OpenAI · Cerebras · Deepgram on the wire.

03

Cleanup

Optional small LLM strips filler, restores punctuation, fixes names. Local or cloud.

04

Type

Shift+Insert paste lands text in the focused window. Universal on X11. No clipboard hijack.

№04 · Compatibility

Runs on your Linux.

Linux first. macOS and Windows next. If your distro boots, Fono should run.

Display server
X11Wayland (in progress)
Audio backend
PipeWirePulseAudioALSA
STT providers
whisper.cpp (local)GroqOpenAICerebrasDeepgram
LLM providers
Local (llama-cpp)GroqOpenAIAnthropicCerebras
Tested distros
ArchDebian / UbuntuSlackware / NimbleXany glibc Linux (bare binary)

Stop typing.
Start saying.

Fono is free, open source, and waiting for you to press the hotkey.

$ curl -L https://fono.page/install | sh
Star on GitHub