Hacker News new | ask | show | jobs
Show HN: Fono – dictation/assistant for Linux in one Rust binary (github.com)
1 points by bogdan_r 20 days ago
Hello everybody,

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`

1 comments

Ups, formatting got messed up in my post.

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!