whis
App Listed
Voice-to-text CLI for terminal users
- Downloads
- 658
- Dependents
- Not applicable
- Stars
- 128
- Forks
- 17
- Contributors
- 6
- Commits
- 381
- Latest release
- 0.7.2 ·
About
![]()
Your voice, piped to clipboard.
Website
·
Desktop
·
Mobile
·
Releases
Why?
- Built for AI workflows — speak your prompt, paste to OpenCode, Claude, Codex, ...
- Cloud or local — OpenAI, Mistral, Groq, Deepgram, ElevenLabs, or free with local Whisper
- Simple — record → transcribe → clipboard
Quick Start
# Install
cargo install whis-cli
# Setup (interactive wizard)
whis setup
# Run
whis # Press Enter to stop — text copied!
Screenshot

Usage
# Record once
whis
# Background service mode
whis start # Start background service
whis toggle # Toggle recording (bind to your compositor hotkey)
# Post-process with AI (presets define the transformation)
whis --post-process
# Use with terminal AI assistants
claude "$(whis --as ai-prompt)" # Start session with voice prompt
whis --as ai-prompt --print # For shell mode (outputs to stdout)
# Presets
whis --as email # Use preset
whis preset # List all
whis preset new xyz # Print template for new preset
whis preset edit xyz # Edit in $EDITOR
# Transcribe existing audio
whis -f recording.wav
# Help - for you or your helper
whis --help
Installation
cargo install whis-cli
Read the full README
Or download binaries from GitHub Releases.
Requirements
- API key from OpenAI, Mistral, Groq, Deepgram, or ElevenLabs — or use local Whisper/Parakeet (no API key needed)
- Linux only: Vulkan SDK for local transcription
sudo apt install libvulkan-dev vulkan-tools glslc libshaderc-dev # Ubuntu/Debian sudo pacman -S vulkan-headers vulkan-tools shaderc # Arch - Linux (X11/Wayland), macOS, or Windows
For hotkey mode (Linux, pick one):
# Option 1: Compositor keybinding (no permissions needed)
# GNOME: Settings > Keyboard > Custom Shortcuts → whis toggle
# Sway: bindsym Ctrl+Alt+w exec whis toggle
# Hyprland: bind = CTRL ALT, W, exec, whis toggle
# Option 2: Direct capture
sudo usermod -aG input $USER && logout
# Then: whis start
Desktop & Mobile
Development
git clone https://github.com/frankdierolf/whis.git
cd whis
just # List all commands
just install-cli # Build and install CLI
See CONTRIBUTING.md for full setup instructions.
Architecture

License
MIT
Compatibility
- Runs on
- GPU support unknown
What shows it
- no dependency or feature matches a backend row
- Native code
- Required
- Binds native code: alsa-sys
- Python bindings
- No Python binding crate found
- License
- MIT
Compare with similar projects
Order: strongest tier first, then most downloads, then name, with unmeasured values last. A library counts downloads over 30 days. An app counts binary downloads per release. An app with none counts its crate downloads over 30 days. ML Rust runs this catalogue, so its closest project always gets a row.
| Project | Downloads | Dependents | Stars | Latest release | Runs on (GPU) | Native code | License |
|---|---|---|---|---|---|---|---|
|
Voice-to-text CLI for terminal users |
658 binary downloads per release | Not applicable | 128 | 0.7.2 | GPU support unknown | Binds native code: alsa-sys | MIT |
|
Rust interface for the WebRTC Voice-Activity-Detction Module |
60,022 downloads over 30 days | 7 | 31 | 0.4.0 | GPU support unknown | Build uses a native toolchain: cc | MIT |
|
jpreprocess Listed
Japanese text preprocessor for Text-to-Speech application (OpenJTalk rewrite in rust language). |
14,491 downloads over 30 days | 7 | 61 | 0.15.0 | GPU support unknown | No native code found | BSD-3-Clause |
|
A simple text-to-speech client for Azure TTS API. Python bindings |
488 binary downloads per release | Not applicable | 496 | 6.1.0 | GPU support unknown | No native code found | MIT |
|
Voice for the Linux desktop: dictation, read-aloud (TTS), and voice-driven LLM commands, with Groq, OpenAI, Deepgram, and local Whisper backends |
61 binary downloads per release | Not applicable | 149 | 0.2.0 | CUDA, Vulkan | Binds native code: alsa-sys, mac-notification-sys, wayland-sys (feature overlay), whisper-rs-sys (feature local-whisper) | MIT |
|
cohere-transcribe-rs Listed
Rust implementation for the CohereLabs/cohere-transcribe-03-2026 speech-to-text model. Includes a CLI and an OpenAI-compatible API server. |
0 downloads over 30 days | 0 | 101 | 0.1.1 | CUDA | Binds native code: torch-sys (feature tch-backend). Build uses a native toolchain: cmake | Apache-2.0 |
|
voxr New
Audio and speech on boostr: compressed-audio decode, resampling, DSP and grapheme to phoneme, with speech synthesis (Kokoro, VITS), voice cloning (VoxCPM2), transcription with word timings (Whisper), voice activity (Silero) and audio-text scoring (CLAP), on CPU or CUDA. |
642 downloads over 30 days | 2 | 2 | 0.9.1 | CUDA | No native code found | Apache-2.0 |
Why ListedNo archive, New or Featured rule places it, so it is Listed.
What it lacks for Featured
- The check holds no value for Homebrew installs on request over 365 days, Repology repository families, Docker pull growth over 90 days. A gate that lacks its signal does not pass.
What else the check found
- The last activity is on 26 Jan 2026, 287 days ago. The rules expect an update within 365 days. Dormancy rule
Not measured: Homebrew installs on request over 365 days, Repology repository families, Docker pull growth over 90 days.
Exact rules: Listed, Featured app. The check on applied thresholds version 9.
Every rule outcome, as the check records it
expected-interval: app: E = 365 daysdormancy: last activity 2026-01-26, 287 days ago, E = 365: activefeatured: not featured: unknown homebrew_on_request_365d, repology_families, docker_pull_growth_90dlisted: listed: no archive, new or featured rule applies
Measurements and sources
Each signal row shows the raw value, its source and the fetch date. The Sources list gathers every distinct source on this page. Movement needs more history.
Sources6 sources
- Description: the GitHub repository description
- GitHub releases, fetched
- crates.io database dump, fetched
- GitHub repository, fetched
- crates.io package, fetched
- GitHub contributors, fetched
Adoption658 binary downloads per release4 not measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Active dependents | Not measured | Yes | ||
| New dependents (365 days) | Not measured | Yes | ||
| Peak active dependents | Not measured | Yes | ||
| Active dependents as a share of the peak | Not measured | Yes | ||
| Binary downloads per release | 658 | GitHub releases | Yes |
MaintenanceLatest human commit: 9 months ago4 not measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Latest human commit | 2026-01-26 | GitHub repository | Yes | |
| Latest release | 2026-01-20 | GitHub releases | Yes | |
| First release | 2026-01-15 | GitHub releases | Yes | |
| Latest version | 0.7.2 | crates.io database dump | No | |
| Days the oldest outside issue waits for a reply | 289 | GitHub repository | Yes | |
| Maintainer replies over 365 days | 34 | GitHub repository | Yes | |
| Repository archived | false | GitHub repository | Yes | |
| Repository gone | false | GitHub repository | Yes | |
| Release commit or manifest in the repo | true | crates.io package | No | |
| Published docs | Not measured | Yes | ||
| Latest release fails cargo check | Not measured | Yes | ||
| Build check date | Not measured | Yes | ||
| Build check toolchain | Not measured | Yes |
SecurityNot measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Unpatched vulnerabilities past the grace window | Not measured | Yes | ||
| RustSec unmaintained advisory | Not measured | Yes | ||
| Deprecation notice | Not measured | Yes | ||
| Deprecated requirement | Not measured | Yes |
Distribution2 releases, 4 downloads over 30 days6 not measured
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| Releases | 2 | crates.io database dump | No | |
| Downloads over 30 days | 4 | crates.io database dump | No | |
| Binary downloads over the last 3 releases | 1976 | GitHub releases | Yes | |
| Homebrew installs on request over 365 days | Not measured | Yes | ||
| Repology repository families | Not measured | Yes | ||
| Docker pull growth over 90 days | Not measured | Yes | ||
| Docker pulls at the growth baseline | Not measured | Yes | ||
| Every version a prerelease | false | crates.io database dump | Yes | |
| Every version 0.0.x | false | crates.io database dump | Yes | |
| Every version yanked | Not measured | Yes | ||
| Crate deleted from crates.io | Not measured | Yes |
Repository128 stars, 17 forks, 6 contributors, 381 commits. Stars alone never qualify a project.
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| GitHub stars | 128 | GitHub repository | Yes — one part of the repository route | |
| GitHub forks | 17 | GitHub repository | Yes — one part of the repository route | |
| Contributors with a GitHub account | 6 | GitHub contributors | Yes — one part of the repository route | |
| Commits on the default branch | 381 | GitHub repository | No | |
| Repository's main crate left out of the entry | whis | crates.io database dump | Yes |
Facts that never count
| Signal | Value | Source | Fetched | Counts |
|---|---|---|---|---|
| License | MIT | crates.io database dump | No | |
| Runs on, from listed crates and their direct dependencies | GPU support unknown | crates.io database dump | No | |
| What shows each backend | no dependency or feature matches a backend row | crates.io database dump | No | |
| Native code, from listed crates and their dependencies | Binds native code: alsa-sys | crates.io database dump | No | |
| Python bindings, from direct dependencies of listed crates | No Python binding crate found | crates.io database dump | No | |
| Crates that depend on a listed crate directly | Not measured | No |
Corrections and review history
No correction applies to this entry.
Judgments
A judgment enters only through an approved issue and a merged pull request.
No judgment applies to this entry.