Complete installation instructions for different operating systems and environments.
Audetic now ships verified binaries for Linux and macOS. Install or reinstall the service with one command—no Rust toolchain, git clone, or manual builds required:
curl -fsSL https://install.audetic.ai/cli/latest.sh | bashThe installer:
- Detects your OS/architecture and selects the matching artifact.
- Verifies SHA-256 (and optional signatures) before extracting.
- Installs the
audeticbinary into/usr/local/bin(or a custom prefix). - Drops the systemd user unit plus config scaffolding under
~/.config/audetic. - Seeds
update_state.jsonso the built-in auto-updater can take over. - Is idempotent—rerun anytime to repair, reinstall, or switch channels.
latest.sh --channel beta # jump to another release channel
latest.sh --clean # remove previous binary/service before reinstalling
latest.sh --dry-run # fetch & verify artifacts without touching the system
After install:
- The installer automatically enables/starts the systemd user service (unless
--no-startwas set). Usesystemctl --user status audetic.serviceto confirm. - Add a keybind in Hyprland (or your compositor) that calls
curl -X POST http://127.0.0.1:3737/toggle. - Edit
~/.config/audetic/config.tomlif you need custom providers, models, or behavior tweaks.
When should I use this?
Only when you need to hack on Audetic itself or build for a platform that doesn't have pre-built binaries yet. Everyone else should stick with thelatest.shinstaller above.
All systems require:
- Rust toolchain (1.70+)
- Whisper implementation (see Whisper Installation Options)
- Text injection tool:
ydotool(recommended) orwtype - Clipboard tools:
wl-clipboard(Wayland) orxclip/xsel(X11) - Audio dependencies: ALSA libraries
- curl for API communication
sudo pacman -S rust ydotool wtype wl-clipboard alsa-lib curl cmake make gccsudo apt update
sudo apt install cargo libasound2-dev wl-clipboard curl cmake build-essential
# Install ydotool (may need to compile from source)
sudo apt install ydotool || {
git clone https://github.com/ReimuNotMoe/ydotool.git
cd ydotool && mkdir build && cd build
cmake .. && make -j$(nproc)
sudo make install
}sudo dnf install rust cargo ydotool cmake gcc-c++ alsa-lib-devel curl openssl-develAudetic requires a text injection method. See the Text Injection Setup Guide for detailed configuration.
Quick setup for ydotool (recommended):
# Enable ydotool user service
systemctl --user enable --now ydotool.service
# Add to shell profile
echo 'export YDOTOOL_SOCKET="/run/user/$(id -u)/.ydotool_socket"' >> ~/.bashrc
source ~/.bashrcAudetic supports multiple Whisper implementations:
Use the optimized fork with automatic build:
git clone https://github.com/matsilva/whisper.git ~/.local/share/audetic/whisper
cd ~/.local/share/audetic/whisper
./build.shThis downloads and quantizes the large-v3-turbo model automatically.
pip install -U openai-whispergit clone https://github.com/ggerganov/whisper.cpp.git
cd whisper.cpp
make
./models/download-ggml-model.sh base# Clone the repository
git clone https://github.com/silvabyte/Audetic.git
cd Audetic
# Build release version
cargo build --release
# Install binary
sudo cp target/release/audetic /usr/local/bin/
sudo chmod +x /usr/local/bin/audeticCreate the configuration directory and file:
mkdir -p ~/.config/audeticAudetic will create a default config on first run, or you can create one manually:
Zero-config cloud transcription - no API key or local setup required:
[whisper]
provider = "audetic-api" # Default: hosted service, no setup needed
language = "en"
[wayland]
input_method = "ydotool" # Recommended (auto-detected first)
[behavior]
auto_paste = true
preserve_clipboard = false
delete_audio_files = true
audio_feedback = true[whisper]
provider = "openai-cli"
model = "base"
language = "en"
# command_path is auto-detected if whisper is in PATH
[wayland]
input_method = "ydotool" # Recommended (auto-detected first)
[behavior]
auto_paste = true
preserve_clipboard = false
delete_audio_files = true
audio_feedback = true[whisper]
provider = "whisper-cpp"
model = "large-v3-turbo"
language = "en"
command_path = "/home/user/.local/share/audetic/whisper/build/bin/whisper-cli"
model_path = "/home/user/.local/share/audetic/whisper/models/ggml-large-v3-turbo-q5_1.bin"
[wayland]
input_method = "ydotool" # Recommended (auto-detected first)
[behavior]
auto_paste = true
preserve_clipboard = false
delete_audio_files = true
audio_feedback = trueCreate a user service for automatic startup:
mkdir -p ~/.config/systemd/userCreate ~/.config/systemd/user/audetic.service:
[Unit]
Description=Audetic Voice Transcription Service
After=graphical-session.target
[Service]
Type=simple
ExecStart=/usr/local/bin/audetic
Restart=always
RestartSec=5
Environment="RUST_LOG=info"
MemoryMax=6G
CPUQuota=80%
[Install]
WantedBy=default.targetEnable and start the service:
systemctl --user daemon-reload
systemctl --user enable --now audetic.serviceAudio groups: User services cannot add supplemental groups the account does not already have. Most setups that use PipeWire/ALSA through the desktop stack work without any extra privileges. If you need direct ALSA device access, add yourself to the
audiogroup (followed by a re-login) or, forlatest.sh --system, addSupplementaryGroups=audiovia a systemd drop-in.
Add to your Hyprland config (~/.config/hypr/hyprland.conf):
bindd = SUPER, R, Audetic, exec, curl -X POST http://127.0.0.1:3737/toggle
For Omarchy users:
bindd = SUPER, R, Audetic, exec, $terminal -e curl -X POST http://127.0.0.1:3737/toggle
GNOME requires special setup due to security restrictions:
sudo pacman -S ydotool # or appropriate package manager
# Create user service
mkdir -p ~/.config/systemd/userCreate ~/.config/systemd/user/ydotoold.service:
[Unit]
Description=ydotoold user daemon
After=graphical-session.target
[Service]
Type=simple
ExecStart=/usr/bin/ydotoold -P 660
[Install]
WantedBy=default.target# Add environment variable
echo 'export YDOTOOL_SOCKET="/run/user/$(id -u)/.ydotool_socket"' >> ~/.bashrc
source ~/.bashrc
# Enable services
systemctl --user daemon-reload
systemctl --user enable --now ydotoold.service
systemctl --user enable --now audetic.service[wayland]
input_method = "ydotool" # Recommended (auto-detected first)- Open GNOME Settings
- Go to Keyboard → Keyboard Shortcuts → View and Customize Shortcuts
- Go to Custom Shortcuts
- Add new shortcut with command:
curl -X POST http://127.0.0.1:3737/toggle - Set your preferred key combination (e.g., Super+R)
- Test service:
systemctl --user status audetic.service - Test API:
curl -X POST http://127.0.0.1:3737/toggle - Test provider:
audetic provider test(validates transcription setup) - Test recording: Press your configured keybind
- Check logs:
make logsorjournalctl --user -u audetic.service -f
- Check logs:
make logsorjournalctl --user -u audetic.service -e - Check status:
make status - Verify binary path:
which audetic - Test config:
audetic --verbose
- Check microphone permissions
- Verify audio device:
arecord -l - Ensure the desired input device is set as the system default (Audetic uses whatever CPAL reports as default)
- Verify ydotool service:
systemctl --user status ydotool.service - Check socket:
ls -la /run/user/$(id -u)/.ydotool_socket - See Text Injection Setup
- Large Whisper models need 3-5GB RAM
- Adjust
MemoryMaxin the service file (or remove it entirely) - Use smaller models if needed
- Ensure ydotoold is running as user service (not system)
- Verify YDOTOOL_SOCKET environment variable
- wtype will NOT work on GNOME - use ydotool only
Audetic now includes two parallel update paths:
-
Background auto-updater: runs inside the daemon, checks
https://install.audetic.ai/cli/versionevery few hours, downloads new binaries into~/.local/share/audetic/updates, swaps them atomically, and restarts the service (unlessAUDETIC_DISABLE_AUTO_RESTART=1is set). Auto-updates respect~/.config/audetic/update_state.jsonand can be disabled. -
Manual CLI control via the built-in subcommand:
# Show current vs remote version without installing
audetic update --check
# Force an immediate install (even if versions appear equal)
audetic update --force
# Switch channels for subsequent checks
audetic update --channel beta
# Toggle background updates
audetic update --disable
audetic update --enableBecause latest.sh is idempotent, you can also rerun it at any time to jump to a specific channel or repair a broken install:
curl -fsSL https://install.audetic.ai/cli/latest.sh | bash -s -- --channel beta --cleanRemove Audetic with the dedicated uninstall script:
curl -fsSL https://install.audetic.ai/cli/uninstall.sh | bash# Preview what will be removed (no changes made)
curl -fsSL https://install.audetic.ai/cli/uninstall.sh | bash -s -- --dry-run
# Skip confirmation prompt
curl -fsSL https://install.audetic.ai/cli/uninstall.sh | bash -s -- --yes
# Keep your config and transcription history
curl -fsSL https://install.audetic.ai/cli/uninstall.sh | bash -s -- --keep-config --keep-database
# Also remove temp audio files from /tmp
curl -fsSL https://install.audetic.ai/cli/uninstall.sh | bash -s -- --remove-tempBy default, the uninstaller removes:
/usr/local/bin/audetic(CLI binary)/usr/local/bin/audetic-*.bak(backup binaries from auto-updates)~/.config/systemd/user/audetic.service(systemd unit)~/.config/audetic/(config and update state)~/.local/share/audetic/(database and update cache)
Use --keep-config, --keep-database, or --keep-updates to preserve specific artifacts.