press Ctrl twice · talk · it types

Voice typing for Linux that cleans up your words

Double-tap Ctrl in any app and talk. Your words land where your cursor is, and every time you pause, the sentence is tidied up: the "um"s go, the punctuation arrives, and it reads the way you meant it. The speech recognition runs on your own machine, and it works under Wayland and X11.

Free to start. For 64-bit Intel and AMD machines.
Built for Wayland

It types everywhere, even where Wayland says no

Most dictation tools broke when Linux moved to Wayland: the compositor no longer lets one app watch keys or type into another. Talk goes underneath. The trigger key and the typing both use the kernel's own input layer, so they work in every app on GNOME, KDE and Hyprland alike, the same way a physical keyboard does.

Private by design

Your voice is transcribed on your own device. It never leaves your machine to become text.

Any app

Talk types into whatever field has your focus: mail, chat, documents, your AI tools.

Cleaned as you pause

Each finished sentence lands polished: capitals, punctuation, no fillers, phrased how you asked.

Every alphabet

Text is inserted in a way that keeps any script intact, whatever language you speak.

Install

Ubuntu and other Debian based systems

sudo apt install ./talk_amd64.deb

The package sets up the input permissions Talk needs to trigger and type. Log out and back in once after installing, then launch Talk from your app grid, sign in, and download the speech pack for your language.

Omarchy / Arch

One command. Everything set up.

A deb can't configure itself on Arch, so this script does what the Ubuntu installer does for you: unpack Talk, install the runtime packages, and grant the input access dictation needs to type. No group, no logout.

curl -fsSL https://talk.letbe.ai/install-omarchy.sh | bash

Then run talk-desktop. Sign in, pick your spoken language, download the pack, and double-tap Ctrl in any text field.

Prefer to do it by hand?

# unpack the app
mkdir -p /tmp/talk && cd /tmp/talk
ar x ~/Downloads/talk_amd64.deb
sudo tar -C / -xf data.tar.gz

# runtime packages
sudo pacman -S --needed wl-clipboard wtype webkit2gtk-4.1 gtk3 libayatana-appindicator gtk-layer-shell pipewire-alsa gst-plugins-base gst-plugins-good gst-libav gstreamer

# input access: the 'input' group owns /dev/uinput AND /dev/input, so it grants
# both typing and the trigger. (uaccess can't: /dev/uinput has no seat.)
sudo tee /etc/udev/rules.d/99-talk-uinput.rules <<'RULE'
KERNEL=="uinput", MODE="0660", GROUP="input", OPTIONS+="static_node=uinput"
RULE
echo uinput | sudo tee /etc/modules-load.d/talk-uinput.conf
sudo modprobe uinput
sudo udevadm control --reload-rules && sudo udevadm trigger
sudo gpasswd -a "$USER" input

Log out and back in once (for the input group), then run talk-desktop.

Good to know

How Talk behaves on Linux

Sentences, not letters. On Linux your words appear a finished sentence at a time, each one landing when you pause, already cleaned up.

It types while it listens. Double-tap Ctrl to stop dictation before you click elsewhere, so your words only ever land where you meant them.

Your clipboard is safe. Talk briefly uses the clipboard to insert text so every alphabet arrives intact, and puts your own clipboard back when it is done.

If typing does nothing: you are probably not in the input group yet. Log out and back in once after installing.

Why the trigger is a double-tap of Ctrl: single keys collide — F8 jumps to the browser's address bar, F9 is bound by Omarchy, function keys vary by keyboard. A lone modifier does nothing in any app, is on every keyboard, and two quick taps never fire by accident. You can rebind to any key in Talk's settings; on Hyprland, hyprctl binds shows what a key is already used for.