Issue · · Open-source voice AI

Speak.
It types.It answers.

Fono is an open-source, complete voice-AI stack — speech-to-text, natural voices, a local LLM, wake word, and speaker ID — in one small binary for Linux, macOS, and Windows. Press a key and speak: your words are typed into the focused window, an assistant answers out loud, or your coding agent takes instructions. Everything runs locally by default; every stage can switch to a cloud provider. It also serves Wyoming for Home Assistant and an OpenAI/Ollama-compatible API for your network. GPL-3.0, zero telemetry.

Talk to your computer. Fono types into any appanswers out loud, drives your coding agent locally or serves your whole network.
It is a complete, open-source voice-AI stack in one small binary. Local by default. Cloud when you choose.

$ curl -fsSL https://fono.page/install | sh
Star on GitHub
License
GPL-3.0-only · audit every byte
Runs on
Linux · macOS & Windows (experimental)
Binary
~22 MB CPU · ~60 MB Vulkan GPU
Telemetry
None. Ever.
№01 · Manifesto

Ten things, done well.

Voice on the desktop has been Electron apps with subscriptions or Python scripts that never quite work. Fono is a third option: the whole voice stack, one small binary.

01

Local first.

Whisper, a built-in llama.cpp LLM, and three text-to-speech engines run on your machine. Audio never leaves the box unless you opt in. Your voice stays yours.

02

Cloud fast.

One command swaps any stage to Groq, OpenAI, Gemini, Anthropic, Cerebras, Deepgram, ElevenLabs and more. Bring your own key. No restart.

03

It answers.

Hit F8 and ask. The reply is spoken back, streamed sentence by sentence. Prefer no keys? Say the wake phrase, or hold a realtime back-and-forth conversation.

04

It knows your voice.

Enroll voices and Fono knows who's speaking. It has state of the art EER, quick and easy enrolment, auto calibration and it allows unlocking functions with authorized voices.

05

Agents, by voice.

Talk to Claude Code, Cursor, or Forge through MCP: the agent listens, works, and talks back. Different programs use different voices, and skills tune how chatty the agent is.

06

Hardware aware.

fono setup probes your machine and picks the right model size, backed by 900+ benchmark runs, not guesses. The installer grabs the Vulkan build if you have a GPU.

07

It serves.

One box can voice your whole LAN. Use Wyoming for Home Assistant, an OpenAI and Ollama-compatible API for editors and Open WebUI. Clients find it over mDNS.

08

Various visualizations.

Fono shows an overlay when you interact with it so you can visualize the audio and the thinking. There are different styles such as bars, oscilloscope, FFT, heatmap and others.

09

Web settings.

Every option is a searchable page the daemon serves itself, loopback-only and off until you open it. No config file to learn. Click around the demo →

10

Open source.

GPL-3.0-only. Single Rust binary. No telemetry. No accounts. No upsell. Read the code, fork it, make it yours. Every line is auditable.

№02 · Install

Sixty seconds.

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

One-liner · Linux · macOS · Windows
$ curl -fsSL https://fono.page/install | sh
Detects your OS and CPU, grabs the Vulkan build if you have a GPU, starts the daemon, and opens the setup wizard in the same terminal. Inspect the script before piping.
Debian / Ubuntu
sudo apt install ./fono_0.17.0_amd64.deb
Slackware / NimbleX
installpkg fono-0.17.0-x86_64-1.txz
Arch / Manjaro
sudo pacman -U fono-0.17.0-1-x86_64.pkg.tar.zst
Other Linux
bare binary from Releases
macOS (Apple Silicon, experimental)
binary from Releases · then: fono install
Windows (experimental)
fono-v0.17.0-x86_64.exe · then: fono install
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 + TTS, no restart
$ fono use tts local    # or swap one stage at a time
$ fono keys add GROQ_API_KEY
№03 · Pipeline

Four small pieces.

Two pipelines share the first half. Each stage is swappable between local and cloud.

01

Capture

Mic audio via PipeWire, PulseAudio, ALSA, or native macOS/Windows. VAD trims silence before anything moves on.

02

Transcribe

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

03

Cleanup

Optional small LLM strips filler, restores punctuation, fixes names. Runs locally or on the cloud.

Think

The built-in engine reasons locally or pick a cloud LLM for more intelligence, streaming tokens as they come.

04

Type

Text lands in the focused window via paste injection. Universal on X11. No clipboard hijack, no per-app integration.

Speak

Kokoro, Piper, or Supertonic on-device or cloud TTS. The reply streams back through your speakers.

№04 · Compatibility

Runs on your machine.

Linux first, daily-driven. macOS and Windows are new ports, labelled experimental until they've earned it. If your distro boots, Fono should run.

Systems
Linux · X11 & WaylandmacOS · Apple SiliconWindows
Audio backend
PipeWirePulseAudioALSA
Speech-to-text
whisper.cpp (local)GroqOpenAIGeminiDeepgramCartesiaAssemblyAISpeechmaticsElevenLabs
LLM
llama.cpp (built in)OllamaGroqOpenAIAnthropicCerebrasGeminiOpenRouter
Text-to-speech
Kokoro (local)Piper (local)Supertonic (local)OpenAIGroqGeminiCartesiaDeepgramElevenLabsOpenRouter
It serves
Wyoming (Home Assistant)OpenAI-compatible APIOllama-compatible API
Tested distros
Debian / UbuntuSlackware / NimbleXany glibc Linux (bare binary)
№05 · Questions

Things people ask.

Short, honest answers. If yours isn’t here, open an issue on GitHub.

Does Fono work offline?

Yes. The default configuration runs whisper.cpp on your machine. Audio never leaves the box unless you explicitly opt into a cloud provider.

Can Fono answer questions, or is it dictation-only?

Both. F7 is dictation — your words land in the focused window. F8 is the voice assistant — Fono transcribes your question, runs it through its built-in local LLM (llama.cpp compiled in, no extra installs) or a cloud LLM, and speaks the reply through Kokoro, Piper, or Supertonic on-device — or a cloud voice. Same daemon, same hotkey muscle memory, different brain.

Does Fono work on Wayland?

Yes. Both X11 and Wayland are supported as first-class targets. Paste injection is universal on X11; on Wayland Fono uses the standard portals.

Which Linux distributions are supported?

Any glibc Linux. Native packages exist for Debian/Ubuntu, Slackware/NimbleX, and Arch/Manjaro. Everything else uses the bare static binary from GitHub Releases.

Is there telemetry or analytics?

No. None. The daemon makes no analytics calls. The only outbound traffic is to the cloud STT, LLM, or TTS provider that you explicitly configured.

Can it start hands-free, without a hotkey?

Yes. Fono can idle and listen for a spoken wake phrase; detection runs locally and is off until you enable it. There's also a realtime mode for back-and-forth conversation — just keep talking.

Can Fono tell who is speaking?

Yes. Enrol a voice once and Fono recognises it on-device, tagging each history entry with the speaker's name. The voiceprint never leaves your machine — only the recognised name is saved.

Can I drive coding agents by voice?

Yes — early preview. Fono exposes an MCP voice loop: Claude Code, Cursor, Forge, and other MCP-capable agents can take your spoken instructions and talk back when they need input or finish a task.

Can other apps and machines use Fono?

Yes. Fono serves the Wyoming protocol (Home Assistant discovers it over mDNS as a speech-to-text, text-to-speech, and wake-word provider) and an OpenAI and Ollama-compatible API on port 11434 for editors, Open WebUI, and anything that speaks those APIs. Inbound API keys gate LAN access.

How fast is local, really?

On a laptop CPU the local assistant's first spoken word lands in about a third of a second, and the engine runs 2–4× ahead of Ollama on identical weights. The model picker is backed by 900+ benchmark runs, not guesses.

How do I switch from local Whisper to a cloud provider?

Run fono use cloud groq — one key covers STT, polish, assistant, and TTS — or swap a single stage with fono use stt deepgram. Add your API key with fono keys add PROVIDER_API_KEY. No restart needed; fono use local brings everything back home.

Are macOS and Windows supported?

Yes, as experimental ports. Each release ships a Metal-accelerated Apple Silicon binary and a Windows .exe that uses the GPU when a driver is present. Linux remains the daily-driven primary; issue reports on the new ports are genuinely useful.

Can I self-host Fono on my LAN?

Yes. Run Fono in server mode on the fastest machine on your network. Other clients, including Home Assistant, discover the server automatically over mDNS.

Does Fono use the GPU?

Yes. The GPU build uses Vulkan and works on nearly all NVIDIA, AMD, and Intel GPUs from the last few years — the installer picks it automatically when it detects one. With a mid-range card, larger Whisper models transcribe your speech almost instantly.

What’s the φ in the favicon?

The Greek letter phi. “Fono” comes from the Greek root φων- meaning voice or sound — the same root in phonetics, phonograph, telephone, and symphony.

Stop typing.
Start saying.

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

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