Back to catalog

claude-stt

by jarrodwatts

Pending

Speech-to-text input for Claude Code with live streaming dictation

283stars
27forks
Python
Added 1/17/2026
IDE Extensionsaccessibilityclaude-codeclaude-code-plugindictationmoonshinespeech-to-textsttvoice
Installation
# Add to your Claude Code skills
git clone https://github.com/jarrodwatts/claude-stt
README.md

Claude STT

Speech-to-text input for Claude Code. Hold a hotkey, speak, and your words appear in the input field — all processed locally.

License Stars

Claude STT in action

Install

Inside a Claude Code instance, run the following commands:

Step 1: Add the marketplace

/plugin marketplace add jarrodwatts/claude-stt

Step 2: Install the plugin

/plugin install claude-stt

Step 3: Run setup

/claude-stt:setup

Done! Press Ctrl+Shift+Space to start recording, press again to stop and transcribe.

Note: Setup installs dependencies (uv if available, otherwise a local .venv), downloads the Moonshine model (~200MB), and checks microphone permissions.


What is Claude STT?

Claude STT gives you voice input directly into Claude Code. No typing required — just speak naturally.

| What You Get | Why It Matters | |--------------|----------------| | Local processing | All audio processed on-device using Moonshine STT | | Low latency | ~400ms transcription time | | Push-to-talk | Hold hotkey to record, release to transcribe | | Cross-platform | macOS, Linux, Windows | | Privacy first | No audio or text sent to external services |

How It Works

Press Ctrl+Shift+Space → start recording
        ↓
Audio captured from microphone
        ↓
Press Ctrl+Shift+Space → stop recording
        ↓
Moonshine STT processes locally (~400ms)
        ↓
Text inserted into Claude Code input

Key details:

  • Audio is processed in memory and immediately discarded
  • Uses Moonshine ONNX for fast local inference
  • Keyboard injection or clipboard fallback
  • Native system sounds for audio feedback

Configuration

Customize your settings anytime:

/claude-stt:config

Options

| Option | Values | Default | Description | |--------|--------|---------|-------------| | hotkey | Key combo | ctrl+shift+space | Trigger recording | | mode | toggle, push-to-talk | toggle | Press to toggle vs hold to record | | engine | moonshine, whisper | moonshine | STT engine | | moonshine_model | moonshine/tiny, moonshine/base, other Moonshine model IDs | moonshine/base | Model size | | output_mode | auto, injection, clipboard | auto | How text is inserted | | sound_effects | true, false | true | Play audio feedback | | max_recording_seconds | 1-600 | 300 | Maximum recording duration |

Settings stored in ~/.claude/plugins/claude-stt/config.toml.


Requirements

  • Python 3.10-3.13
  • ~200MB disk space for STT model
  • Microphone access

Platform-Specific

| Platform | Additional Requirements | |----------|------------------------| | macOS | Accessibility permissions (System Settings > Privacy & Security) | | **Linux...