Nixi
A desktop voice assistant for Linux. Trigger Nixi, ask a question or give a command, and it handles it — change the volume, set a wallpaper, take a screenshot, control media, or answer general queries using Gemini.
What It Does
- System control — volume, brightness, mute, media playback, screenshots, wallpaper changes, app launcher.
- General queries — ask anything. Nixi uses Gemini and can search the web for live information like weather, news, and prices.
- Vision — say "open your eyes", "where should I click", or "why is this red" and Nixi asks permission to screenshot your screen, then describes what it sees. Approval is via desktop notification with a configurable timeout.
- Voice interaction — manual trigger-to-record mechanism, speech-to-text, and text-to-speech. No constant background listening/wake-word overhead.
Installation & Setup
Option 1: Global Installation (Recommended)
Install Nixi globally on your system using pipx:
pipx install nixii
This will automatically expose the commands globally. Run any command once to automatically initialize your configuration directory:
nixi-server
Now, configure your API keys by editing ~/.config/nixi/.env:
GOOGLE_CLOUD_API_KEY=your-vertex-express-mode-key
SARVAM_API_KEY=your-sarvam-key
Option 2: Local Development Setup
If you'd like to run or develop Nixi locally, install uv and sync dependencies:
uv sync
Run any command once (e.g. uv run nixi-server) to auto-generate your config, then add your API keys to ~/.config/nixi/.env.
Run
Note: If you are using the local development setup, prefix all of the following commands with
uv run(e.g.,uv run nixi-server).
First, discover your desktop environment (keybinds, scripts, wallpapers):
nixi-server --discover
Then start the server:
nixi-server
Next, start the voice daemon (which runs as a background process listening for manual trigger events):
nixi-voice
To interact with Nixi, trigger the recording. You can bind keys or desktop shortcuts to run these commands:
- Trigger Recording (Toggle): Start or stop recording your query.
nixi-voice trigger - New Session: Start a fresh conversation session and trigger recording.
nixi-voice new
Run the command once to start recording, speak your request, and run it again to stop and process the audio!
Configuration
Nixi resolves its config in this order:
--config <path>CLI flag$NIXI_CONFIGenvironment variable~/.config/nixi/nixi.toml(user config)example_config/nixi.toml(repo default)- Code defaults (no file needed)
The system prompt lives in code. Set agent_name in your TOML to change the
persona — the prompt template uses it automatically.
Edit your TOML to configure audio thresholds, STT, TTS, model settings, vision, and local actions.
Metadata
Release files for nixii 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| nixii-0.1.0.tar.gz | 1.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nixii-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.7 MB
Release files / nixii-0.1.0.tar.gz
| Download URL | nixii-0.1.0.tar.gz |
|---|---|
| Size | 1.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c1075d8bdbd90fa67593e473eb736114bcc4d99d8067386517326c2cf4034c20
|
|
BLAKE2b-256 checksum How to use checksums |
a1fbff612558e6ff7a59b5a3c04464102374c361d8c10af448660f6897354f67
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / nixii-0.1.0-py3-none-any.whl
| Download URL | nixii-0.1.0-py3-none-any.whl |
|---|---|
| Size | 1.4 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
34eb24f0778280c549d1162c8f3eb7e5e8ec66f57e5ed200ec20715c9a5afeca
|
|
BLAKE2b-256 checksum How to use checksums |
3f60d14d58fd8840896ab6e272cdbe2dfe3396b287f74994db87d8931b97651b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|