I built this tool initially to dictate to my computer because the alternatives weren't very attractive to me. There was an Electron app that was eating a lot of my RAM and had too much GUI. There was another one with lots of separate dependencies and it looks like it's going to take a while to figure it out, and a project that was a bunch of Python scripts. Anyways, without giving it too much consideration, I decided to build my own... how hard can it be? :)
So, the initial idea was that it's supposed to be light, self-contained and easy to use. And that escalated quickly because it turned out to be a very fun and rewarding project.
And I am happy to present to you Fono. * One Rust binary, ~22 MB for CPU and ~60 MB for the GPU build, with basic glibc deps. Inside its belly, it has * Transcription: It does dictation through STT, optionally a cleanup with a small LLM and then it injects the text in the clipboard, at the cursor or both * Assistant: STT -> LLM -> TTS. * You can pick various backends or models for STT, cleanup, assistant, and TTS. I am planning to add more. * It can run completely locally or with different cloud providers. * Run it headless on your big PC, and all local clients find it through mDSN
... and I guess another nice thing that maybe some of you might want to check out.
I am sure that there are bugs, but I would be happy to squash some if anybody would post issues on GitHub.
And obviously, I am putting it here because I would like some honest feedback.
Install: `curl -fsSL https://fono.page/install | sh`
bogdan_r•49m ago
Some more things:
1. Obviously, it's OpenSource
2. Works on both X11 and Wayland. Ubuntu's Mutter has a philosophy where it limits a lot of functionality for the sake of security, and that necessitates a bit of gymnastics to automatically inject at the cursor.
3. I was also exploring the idea of doing a Windows / Mac build :) It should be possible, but I would need to install some Windows. All my computers are Linux.
4. I was VERY strict with what dependencies I am pulling in. That's why there is not GTK menu. It has a tray menu, though, and can also easily be configured with the CLI.
5. It tries to estimate the best model for your hardware automatically. I did 900+ bench tests to tune that algorithm.
6. I just landed MCP support today so your coding agent can talk through it. I am publishing the build in the next few minutes.
Happy to answer any questions. Have fun!