Nixii
A desktop voice assistant for Linux. Trigger Nixii, 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. Nixii 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 Nixii 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 Nixii 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:
nixii-server
Now, configure your API keys by editing ~/.config/nixii/.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 Nixii locally, install uv and sync dependencies:
uv sync
Run any command once (e.g. uv run nixii-server) to auto-generate your config, then add your API keys to ~/.config/nixii/.env.
Run
Note: If you are using the local development setup, prefix all of the following commands with
uv run(e.g.,uv run nixii-server).
First, discover your desktop environment (keybinds, scripts, wallpapers):
nixii-server --discover
Then start the server:
nixii-server
Next, start the voice daemon (which runs as a background process listening for manual trigger events):
nixii-voice
To interact with Nixii, trigger the recording. You can bind keys or desktop shortcuts to run these commands:
- Trigger Recording (Toggle): Start or stop recording your query.
nixii-voice trigger - New Session: Start a fresh conversation session and trigger recording.
nixii-voice new
Run the command once to start recording, speak your request, and run it again to stop and process the audio!
Configuration
Nixii resolves its config in this order:
--config <path>CLI flag$NIXII_CONFIGenvironment variable~/.config/nixii/nixii.toml(user config)example_config/nixii.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.1
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.1.tar.gz | 1.3 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nixii-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.7 MB
Release files / nixii-0.1.1.tar.gz
| Download URL | nixii-0.1.1.tar.gz |
|---|---|
| Size | 1.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e8975250e924e80bfe863d24f850d85540b727b06cfce825f4c5b1bf09338d2f
|
|
BLAKE2b-256 checksum How to use checksums |
3b1a68e31346785b58b655260e97d82bcc80d77e95630dae1361b3d4bb46dafb
|
| 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.1-py3-none-any.whl
| Download URL | nixii-0.1.1-py3-none-any.whl |
|---|---|
| Size | 1.4 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
37372f9ff38a13767961490c17c66cd3c424cc65da393486481cdbb36903102b
|
|
BLAKE2b-256 checksum How to use checksums |
ad40ebb6d77c2723a256b126acacec71e64d13aa44e19c9cd9b9815a909f7bcd
|
| 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}
|