{"repo":"lavafroth/tempest","free":true,"listed":false,"github":"https://github.com/lavafroth/tempest","clone":"git clone https://github.com/lavafroth/tempest.git","description":"Fully local, privacy respecting, programmable Linux voice assistant","language":"Rust","stars":49,"topics":["automation","privacy","rust","selfhost","selfhosted","voice","voice-assistant","ai"],"license":"MIT","category":"workflow-automation","readme_excerpt":"Tempest Poor man's linux voice automation. Goals - [x] Wake phrase \"Tempest rise\" and sleep phrase \"Tempest rest\" - [x] Shortcut customization using config files - [x] Recording built into the binary - [x] Sending fuzzy questions to an LLM through Ollama's API - [x] Built-in understanding of fuzzy terms (similar sentences are treated as equal) - [ ] Static builds Getting started Prerequisites - Rust toolchain, either via your package manager or rustup - C++ standard library - clang - cmake - pkg-config - libvosk in LD LIBRARY PATH - Audio library for your OS (linux distros have package names like alsa-dev , alsa-lib or alsa ) If you use Nix flakes, run nix develop in the project directory to get a dev shell with the dependencies installed. Building Change the bindings in the config file to suit your needs. Run the following to build the daemon and the client: Daemon The daemon is optional and is only needed if you want phrases in your bindings to perform keyboard shortcuts. Since performing keystrokes is a privileged action, you must run the daemon as root. This will give a token to authenticate with the daemon. Client If you have the daemon running in the background, in a different terminal tab, run where the token from the daemon is the token provided by the daemon. You can alternatively run the client as standalone. However, config bindings with keyboard shortcuts will not work. On first run, the client will prompt you to download models.","default_branch":null,"files":null,"tree":[],"storefront":"/r/lavafroth","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/lavafroth/tempest/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}