⚡ 65 developer tools, always updated, new upstream releases land in apt within hours. Join the Discord

🎁 The apt mirror needs a subscription. Try every tool free for 14 days, no card needed. See pricing · 🆓 There is an always-free mirror · 🔐 apt returning 401?

🎙️ Install Latest Handy on Debian

A free, open source and offline speech-to-text desktop app

Latest version: 0.9.8 · updated 2026-10-29
SourceVersion
deb.griffo.io0.9.8 ✅
Official Debian🚫 not packaged
← Back to home
📌 Installing on a specific release? Debian 12 (bookworm) · Debian 13 (trixie) · Debian 14 (forky) · Debian Sid

What is Handy?

Handy is a free, open source speech-to-text application that works completely offline. It waits in the background with a tray icon; press a global keyboard shortcut, say what you want to write, and Handy transcribes it on your own machine and pastes the text into whatever window has focus: an editor, a terminal, a chat client, a browser form. Nothing is sent to a cloud service. The speech models (OpenAI's Whisper in several sizes, and NVIDIA's Parakeet, which is fast on a plain CPU) are downloaded once from inside the app and then run locally, with voice activity detection trimming the silence before the model hears it. It is a Tauri application written in Rust by CJ Pais, MIT licensed, and it works on both X11 and Wayland desktops.

🚀 Why Latest Versions Matter: Handy is young and moves fast: new models, better accuracy settings and fixes for particular microphones, compositors and keyboard layouts land in most releases. Debian does not package Handy at all, so without this repository the only way to stay current is to download every new release by hand. Here a normal apt upgrade does it, on every machine you dictate on.

⚡ Key Features of Handy

⌨️ One Shortcut, Any App

Press the global shortcut, speak, press it again (or hold it in push-to-talk mode and let go) and the transcription is pasted into the focused window. There is no special box to dictate into; anything that accepts typing accepts Handy.

🔒 Completely Offline

Audio is recorded, transcribed and thrown away on your own computer. No account, no API key, no subscription, and no network once a model is on disk.

🧠 Whisper and Parakeet

Pick the model that suits the hardware: Whisper Small, Medium, Turbo or Large, GPU accelerated where a GPU is available, or Parakeet, tuned to run quickly on the CPU and able to detect the language by itself.

🔇 Voice Activity Detection

Silero VAD filters out silence and background noise before the audio reaches the model, so the pauses while you think do not turn into stray words.

🐧 X11 and Wayland

Works on both display servers, typing the result into the focused application through small input helpers the package pulls in: xdotool on X11, wtype and wl-clipboard on Wayland, and ydotool for GNOME.

🧩 Open and Extensible

MIT licensed and built to be forked: the Rust backend and the web interface are small enough to read, and the settings cover the microphone, the shortcut, the model and the language.

🚀 Always ahead of the official archives: Debian and Ubuntu freeze package versions when a release ships. This repository publishes new upstream releases typically within hours. A simple apt upgrade keeps you on the latest version.

📦 Installation from deb.griffo.io

Run the commands

Step 1: Add Repository

sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(. /etc/os-release; echo ${DEBIAN_CODENAME:-${UBUNTU_CODENAME:-$VERSION_CODENAME}}) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt update
install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(. /etc/os-release; echo ${DEBIAN_CODENAME:-${UBUNTU_CODENAME:-$VERSION_CODENAME}}) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt update
sudo apt install extrepo
sudo extrepo enable griffo
sudo apt update

🆓 There is an always-free mirror. deb-free.griffo.io serves packages free forever, no account, no subscription, at most 2 months behind upstream, security fixes immediately. It currently carries cliamp, Ghostty, lazydocker, Oh My Posh, Uncloud and Zed; Handy is not one of them, so the repository above is the only way to get it today, ask and it can be enrolled.

How the free mirror works →

🧩 About the extrepo option. extrepo is Debian's own tool for external repositories: it writes the sources file and installs the signing key for you, checking the key against signed metadata first. This repository is registered with it as griffo, and the always-free mirror as griffo-free, so on Debian (bookworm, trixie, forky and sid) the commands above are the whole setup.

extrepo sets up the sources file and the key only, so a subscription's credentials still go in /etc/apt/auth.conf.d/deb.griffo.io.conf. Ubuntu is not covered, because extrepo publishes metadata for Debian suites only: there, use the sudo or root commands.

Step 2: Install Handy

# Install latest Handy
sudo apt install handy

# Verify installation
dpkg -s handy | grep Version
# Install latest Handy
apt install handy

# Verify installation
dpkg -s handy | grep Version

Step 3: First run

# Start Handy from your application menu, or from a terminal
handy

# The first run walks you through choosing a model; it is downloaded
# once, and every transcription after that runs offline on this machine

# The helpers that type the text (xdotool, wtype, wl-clipboard) came
# with the package. GNOME on Wayland needs ydotool and its daemon instead;
# check that it is installed (it is recommended, where the suite has it)
apt policy ydotool

🎯 Basic Usage Examples

Dictating:

# 1. Put the cursor where the text should go: an editor, a terminal, a chat box
# 2. Press the shortcut set in Handy's settings and speak
# 3. Press it again (or let go of it in push-to-talk mode)
# The transcription is pasted where the cursor was

# Handy keeps running in the tray; start it again if you closed it
handy

Choosing the microphone:

# List the capture devices the kernel sees
arecord -l

# The input names PipeWire or PulseAudio show in Handy's settings
pactl list short sources

# Check the level of the default input before blaming the model
arecord -d 5 /tmp/test.wav && aplay /tmp/test.wav

Keeping it current:

# Handy updates with the rest of the system
sudo apt update && sudo apt upgrade

# Which version is installed, and which is the newest available
apt policy handy

# Remove it again
sudo apt remove handy
# Handy updates with the rest of the system
apt update && apt upgrade

# Which version is installed, and which is the newest available
apt policy handy

# Remove it again
apt remove handy

🔧 Tool Integrations

Handy needs no integration with anything: if an application accepts typed text, it accepts dictation. What matters is the desktop around it:

  • X11: xdotool is a dependency of the package, so text reaches the focused window with nothing extra to install
  • Wayland: wtype and wl-clipboard come with the package too. Some compositors do not hand global shortcuts to applications; if the shortcut does nothing on yours, check the compositor's keyboard settings
  • GNOME on Wayland: GNOME, the default on Ubuntu 26.04, does not accept wtype, so Handy needs ydotool with its daemon running there. The package recommends ydotool on the suites that ship it (Debian trixie does not); the Linux notes in Handy's README cover starting the daemon
  • dotool: Handy can use it too, but it is in no Debian or Ubuntu archive: install it yourself and add your user to the input group
  • Audio: Handy records through PipeWire or PulseAudio like any desktop app; pick the input device in its settings, and a headset microphone beats a laptop's built-in one for accuracy
  • Hardware: the Whisper models use the GPU when one is available and get slow on a CPU at the larger sizes; on a laptop without a capable GPU, Parakeet is the fast choice
  • Your tools: dictate commit messages in a terminal such as kitty or Ghostty, prose in Zed, replies in ZapZap or a browser, and prompts for an AI assistant, all with the same shortcut

🚀 Why Choose deb.griffo.io?

📊 Repository Comparison:
  • Official Debian: does not package Handy, apt install handy fails on a stock system
  • Upstream downloads: a .deb or AppImage from the GitHub releases page, current on the day you fetch it, and fetched again by hand for every release after that
  • Building from source: a Rust toolchain, a JavaScript toolchain for the interface, the WebKitGTK and audio development packages Tauri needs, and a long compile
  • deb.griffo.io: latest version with automatic updates

📦 Package Build Repository

The Debian packages are automatically built and maintained in this GitHub repository:

🔗 Related Packages

Also available from deb.griffo.io:

🎯 Perfect for: writers and developers who would rather talk than type, anyone with RSI or another reason to rest their hands, people who want dictation without sending their voice to a cloud service, and everyone tired of typing long chat replies, commit messages and AI prompts.

💝 Support This Project

If this repository saves you time and effort, please consider supporting it!

⭐ Star on GitHub 🐦 Share on Twitter

Just after the command? See apt install handy, one page covering Debian and Ubuntu.

📦 Recent releases from this repository

📚 Release-specific install guides

❓ Frequently asked questions

Is Handy in the official Debian repositories?

No, Handy is not packaged in the official Debian archives. This repository is currently the only apt source, serving Handy 0.9.8.

How do I install the latest Handy on Debian?

Add the deb.griffo.io repository once using the instructions above, then run: sudo apt install handy. New releases arrive through the normal sudo apt upgrade.

Are the packages signed and how are they built?

Every package is signed with the repository's GPG key (EA0F721D231FDD3A0A17B9AC7808B4DD62C41256) and built from upstream releases in public GitHub packaging repositories that anyone can inspect.

Which Debian releases are supported?

Debian 12 Bookworm, Debian 13 Trixie, Forky and Sid.

Start your 14-day free trial

Enter your email and we will send your apt credentials within minutes. No card needed.

This becomes your apt login. If you stay, pay with the same address and nothing on your machines changes.

One trial per email address. Two days before it ends we email you a link to keep access. If you do nothing, access stops and nothing is charged.