Documentation
Installation
curl -fsSL https://nui.cat/install.sh | sudo sh The install script auto-detects your distro:
- Debian 13+ / Ubuntu 24.04+ — apt repository
- Fedora 40+ — RPM download
- Arch / Manjaro — AUR (
nuicat-bin) - Other distros — AppImage fallback
Minimum glibc 2.39. Debian 12 (bookworm) is not supported.
Getting started
After installation, the daemon starts automatically as a systemd user service. On first run it opens your browser to log in.
-
Log in via
nui login(or let the daemon open it automatically) - Hold Caps Lock and speak — release to inject text
- Tap Caps Lock for toggle mode (continuous dictation until you tap again)
Shortcut modes
Two mutually exclusive shortcut modes, switchable in nui settings:
Caps Lock mode (default)
- Hold Caps Lock — push-to-talk
- Tap Caps Lock — toggle continuous dictation
- Caps Lock LED lights up while recording
Space mode
- Hold Space — push-to-talk (types space instantly, backspaces if held long enough to dictate)
- Shift+Space — toggle continuous dictation
Transcription engines
Local
On-device transcription. Audio never leaves your machine. Auto-uses Vulkan GPU acceleration on NVIDIA, AMD, or Intel GPUs. Falls back to CPU if no GPU available.
Cloud
Fast cloud transcription. Default when no discrete GPU is detected. Audio is not stored.
Engine is auto-detected on first run based on your hardware. Change
it anytime in nui settings.
CLI commands
| Command | Description |
|---|---|
nui | Run the daemon |
nui settings | Open the settings window |
nui login | Log in via browser |
nui logout | Clear credentials |
nui status | Check if the daemon is running |
nui start | Start the systemd service |
nui stop | Stop the systemd service |
nui bench | Benchmark transcription latency |
Settings
Open settings with nui settings or from the system tray.
Shortcut
Choose between Caps Lock and Space as your dictation trigger. See the shortcut modes section above for how each works.
Engine
Switch between local (on-device, private) and cloud (works on any hardware, requires internet). Auto-detected on first run based on your hardware.
Auto mode
When enabled, presses Enter after each dictation ends. Useful for chat apps where you want to send messages hands-free.
Start at login
Automatically start nui.cat daemon when you log in.
Microphone
Select which microphone to use for recording. Defaults to your system default input device.
Sound effects
Toggle audio feedback (start/stop beeps) on or off. When enabled, a volume slider lets you adjust the beep volume.
Desktop support
- Wayland and X11
- Ubuntu, Fedora, Arch, Pop!_OS, Omarchy...
- GNOME, KDE Plasma, COSMIC, Hyprland, Sway, and any wlroots-based compositor
- System tray integration (StatusNotifierItem)
Troubleshooting
Shortcut not working
The daemon needs access to input devices. The installer adds
your user to the input group — you may need to log out and back in for it to take effect.
No system tray icon
The tray icon requires a StatusNotifierItem-compatible panel. The daemon works fine without it.
Check logs
journalctl --user -u nuicat -f Privacy & Telemetry
nuicat collects minimal operational data to run the service. Here's exactly what we collect and what we don't.
What we collect
- Transcription metadata: duration, engine type (cloud/local), timestamp — for billing and quota enforcement.
- Performance data: transcription latency, audio payload size — for monitoring service quality.
- Client info: app version, platform (e.g. "wayland/cosmic") — for compatibility and debugging.
- Error reports: error type and message (no audio content, no transcription text) — for diagnosing failures.
- Country code: 2-letter ISO code derived from your IP address by our CDN. Your IP address is not stored.
- Email: for account identity and communication.
What we never collect
- Transcription text: local transcriptions never leave your machine. Cloud transcriptions are processed by our cloud provider and not stored by us.
- Audio recordings: audio is processed in real-time and discarded. We do not store, log, or retain any audio.
- IP addresses: only the country code is derived and stored. Your IP is not logged or persisted.
- App usage: we do not track what applications you use, what you type, or any screen content.
- Behavioral data: no analytics SDKs, no tracking pixels, no third-party data collection.
Who can see it
Usage and error data is visible only to the nuicat admin for operational purposes (service monitoring, debugging, abuse prevention). No data is shared with third parties.
Found a bug or have a feature request? Open an issue on GitHub, join the Discord, or email hey@nui.cat.