Skip to content

Fully local, privacy respecting, programmable Linux voice assistant

License

Notifications You must be signed in to change notification settings

lavafroth/tempest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tempest

Poor man's linux voice automation.

Goals

  • 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

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

git clone https://github.com/lavafroth/tempest
cd 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
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.

sudo ./target/release/tempest-daemon

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

./target/release/tempest-client \
the_token_from_the_daemon

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.

./target/release/tempest-client

On first run, the client will prompt you to download models.

About

Fully local, privacy respecting, programmable Linux voice assistant

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published