MCPcopy Index your code
hub / github.com/YarivGilad/careless-whisper

github.com/YarivGilad/careless-whisper @v0.5.6

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.5.6 ↗ · + Follow
138 symbols 305 edges 33 files 3 documented · 2%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

careless-whisper

Careless Whisper

A lightweight, always-on desktop app for local voice-to-text transcription. Lives in the system tray / menu bar, records on a global hotkey, transcribes locally with Whisper, and pastes the result into your focused app. No cloud. No data leaves your machine.

Supports macOS and Windows.

Website: yarivgilad.github.io/careless-whisper

Download

Get the latest version from the Releases page:

Platform File
macOS (Intel + Apple Silicon) .dmg
Windows .exe installer or .msi
Linux .deb or .AppImage

Install

macOS

  1. Download the .dmg file above.
  2. Open it and drag Careless Whisper to your Applications folder.
  3. Launch from Applications (or Spotlight).

The app has no Dock icon — it lives in the menu bar (top-right of your screen).

"Careless Whisper is damaged and can't be opened"

Don't worry — the app is perfectly fine! macOS shows this warning for apps that aren't code-signed with Apple's $99/year Developer certificate. This is standard for open-source projects that are trying to be given away for free and avoid the Apple penalty for creative generosities. Until this project gets funded (don't hold your breath — it's a weekend side project), macOS users are welcome to run this one-time fix in Terminal:

If you dragged the app to Applications:

xattr -cr "/Applications/Careless Whisper.app"

If you're running it straight from the DMG:

xattr -cr "/Volumes/Careless Whisper/Careless Whisper.app"

After that, the app will open normally.

Windows

  1. Download the installer from the Releases page.
  2. Run the installer and follow the prompts.

The app lives in the system tray (bottom-right of your screen).

First launch

The Settings window will open automatically because no model is downloaded yet.

  1. Pick a model and click Download (the base model is a good starting point — ~142 MB, fast).
  2. Wait for the download to finish.
  3. Your OS will ask for Microphone access the first time you record — allow it.
  4. macOS only: Go to System Settings → Privacy & Security → Accessibility and enable Careless Whisper so it can paste text into other apps.

Record and transcribe

  1. Click into any text field in any app (your target).
  2. Press the hotkey (default: Cmd+Shift+Space on macOS, Ctrl+Shift+Space on Windows) — a small recording indicator appears.
  3. Speak.
  4. Press the hotkey again to stop — the transcribed text is pasted directly where your cursor was.

The hotkey, language, and other options can be changed from Settings in the tray menu.

Default Hotkey

Cmd+Shift+Space (macOS) / Ctrl+Shift+Space (Windows) — press to start recording, press again to stop, transcribe, and paste.

Whisper Models

On first launch the app will prompt you to download a model. Models are stored locally on your machine.

Model Size Speed
tiny ~75 MB Fastest
base ~142 MB Fast (recommended)
small ~466 MB Moderate
medium ~1.5 GB Slow
large-v3 ~3 GB Slowest

Permissions

macOS

  • Microphone — to record your voice
  • Accessibility — to paste transcribed text into other apps (System Settings → Privacy & Security → Accessibility)

Windows

  • No special permissions needed.

Building from Source

For developers who want to build the app themselves

Prerequisites

  • Rust (via rustup)
  • Node.js + pnpm
  • macOS: Xcode Command Line Tools
  • Windows: Visual Studio Build Tools (C++ workload)

Development

pnpm install
pnpm tauri dev

On Windows, disable the Metal feature (macOS-only GPU acceleration):

pnpm tauri dev -- --no-default-features

Production Build

pnpm tauri build

Tech Stack

  • Tauri v2 — Desktop framework (system tray, global hotkeys, IPC)
  • Rust — Backend (audio, transcription, clipboard, OS integration)
  • whisper-rs — Local Whisper inference via whisper.cpp bindings (Metal GPU on macOS, CPU on Windows)
  • cpal — Cross-platform audio capture
  • React + TypeScript — Frontend (overlay, settings)
  • Vite — Frontend bundler

Project Structure

src-tauri/src/
├── audio/          # Mic capture + resampling
├── transcribe/     # whisper-rs wrapper
├── hotkey/         # Global hotkey registration
├── output/         # Clipboard + paste simulation
├── models/         # Model download & management
├── config/         # Settings persistence
├── tray.rs         # System tray setup
└── commands.rs     # Tauri IPC handlers

src/
├── components/     # Overlay, Settings, ModelManager
├── hooks/          # Tauri event subscriptions
└── styles/         # CSS

Extension points exported contracts — how you extend this code

Window (Interface)
(no doc)
src/App.tsx
ToastProps (Interface)
(no doc)
src/components/Toast.tsx
Settings (Interface)
(no doc)
src/components/Settings.tsx
ModelInfo (Interface)
(no doc)
src/components/ModelManager.tsx

Core symbols most depended-on inside this repo

resample_to_16k
called by 11
src-tauri/src/audio/resample.rs
get_frontmost_target
called by 9
src-tauri/src/output/paste.rs
decode_audio_file
called by 8
src-tauri/src/audio/decode.rs
model_path
called by 7
src-tauri/src/models/downloader.rs
generate_wav
called by 5
src-tauri/src/audio/decode.rs
refresh
called by 4
src/components/ModelManager.tsx
useTauriEvents
called by 4
src/hooks/useTauriEvents.ts
hide_overlay
called by 4
src-tauri/src/commands.rs

Shape

Function 124
Class 5
Interface 4
Method 3
Enum 2

Languages

Rust83%
TypeScript17%

Modules by API surface

src-tauri/src/commands.rs26 symbols
src-tauri/src/models/downloader.rs19 symbols
src-tauri/src/config/settings.rs15 symbols
src-tauri/src/audio/decode.rs10 symbols
src-tauri/src/lib.rs9 symbols
src-tauri/src/audio/resample.rs9 symbols
src/components/Settings.tsx7 symbols
src/components/ModelManager.tsx6 symbols
src-tauri/src/output/paste.rs5 symbols
src/App.tsx4 symbols
src-tauri/src/audio/volume.rs4 symbols
src-tauri/src/tray.rs3 symbols

For agents

$ claude mcp add careless-whisper \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page