- Notifications
You must be signed in to change notification settings - Fork0
Fully local, privacy respecting, programmable Linux voice assistant
License
lavafroth/tempest
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Poor man's linux voice automation.
- Wake phrase "Tempest rise" and sleep phrase "Tempest rest"
- Shortcut customization using config files
- Recording built into the binary
- Sending fuzzy questions to an LLM through Ollama's API
- Built-in understanding of fuzzy terms (similar sentences are treated as equal)
- Static builds
- Rust toolchain, either via your package manager orrustup
- C++ standard library
clang
cmake
pkg-config
libvosk
inLD_LIBRARY_PATH
- Audio library for your OS (linux distros have package names like
alsa-dev
,alsa-lib
oralsa
)
If you use Nix flakes, runnix develop
in the project directory to get a dev shell with the dependencies installed.
git clone https://github.com/lavafroth/tempestcd tempest
Change the bindings in the config file to suit your needs.
Run the following to build the daemon and the client:
cargo build --workspace --release
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.
sudo ./target/release/tempest-daemon
This will give a token to authenticate with the daemon.
If you have the daemon running in the background, in a different terminal tab, run
./target/release/tempest-client \the_token_from_the_daemon
wherethe_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.
./target/release/tempest-client
On first run, the client will prompt you to download models.
About
Fully local, privacy respecting, programmable Linux voice assistant