SpeechButton 3D key

Blazing Fast
Speech to Text.

Push-to-talk for macOS. Never lose the first word — recording starts in 7ms. 110x realtime transcription. 100% local, 25 languages.

 Download for macOS Free 15 min/day · macOS 14+ · Apple Silicon

Why SpeechButton

Everything runs on your Mac. No accounts, no servers, no cloud.

🔒

100% Private & Local

Your voice never leaves your Mac. Transcription runs entirely on the Apple Neural Engine via CoreML. No internet required.

🌍

25 Languages

Auto-detect and transcribe English, Spanish, French, German, Russian, Ukrainian, and 19 more languages. Switch mid-sentence.

7ms Instant Capture

Press the key — recording starts in 7 milliseconds. Other apps take 200ms+ and lose the first word. SpeechButton captures everything from the very first syllable.

💫

Works Everywhere

Text pastes at your cursor in any app: Terminal, VS Code, browsers, Slack, email. Optional auto-send (Enter) for chat and command-line workflows.

Voice Activity Detection

Talk to AI agents.
Hands free.

SpeechButton transcribes in chunks as you speak. Every time you pause briefly, the chunk is transcribed and pasted instantly. When you finish talking, almost all text is already there.

With auto-Enter enabled, a longer silence (3s) sends the full message automatically. Hold the hotkey, talk to Claude Code or ChatGPT, pause briefly between thoughts — chunks appear in realtime. Stop talking for 3 seconds — message is sent. No keyboard needed.

# Hands-free voice activity detection
[vad]
enabled = true
chunk_silence_sec = 0.7    # pause → transcribe chunk

[global]
auto_send = true
send_delay_sec = 3.0      # 3s silence → auto-Enter
1
You speak
"Deploy the latest build to staging..."
2
Brief pause (0.5s)
Chunk 1 transcribed & pasted instantly
3
You continue speaking
"...and run the integration tests after"
4
Another pause → chunk 2 pasted
Previous text already there, only last chunk to process
3s silence → auto-Enter
Full message sent. Zero wait time — text was already pasted in chunks.

Built for Power Users

Hands-free agent workflows, voice-driven automation, and programmable text pipelines.

🗣

Hands-Free with VAD + Auto-Enter

Voice Activity Detection sends text as you speak. Combined with auto-Enter, you can talk to AI agents (Claude Code, ChatGPT, Slack bots) without touching the keyboard at all.

🛠

Text Config File

All settings in a single config.toml file. AI agents can configure SpeechButton programmatically — no GUI needed. Changes apply instantly without restart.

Text Transform Pipeline

Process text before it's pasted: run it through a script, send it to an LLM API, or transform it locally. Get cleaned-up, formatted, or translated text — all from your voice.

🔌

Hotkey Channels

Hold Command, then press 1, 2, or 3 to route your speech to different destinations. Send voice to one agent, then switch to another with a different channel — perfect for multi-agent workflows.

🔗

Webhook & File Output

Send transcribed text to a webhook URL for integrations, or log everything to a file for history and audit. All outputs work simultaneously — paste, file, webhook, and exec at once.

📱

iPhone as Wireless Mic

Use your iPhone as an external microphone. With keep_hot = true the mic stays always-on — no 300ms wake-up delay when you start talking. Same blazing fast response, even over wireless.

{}

Text & JSON Output

Choose output_format = "text" for plain text or "json" for structured data with timestamps, language, and confidence — ideal for programmatic pipelines.

~/.config/speechbutton/config.toml
# Default: paste raw text at cursor
[[hotkey]]
key = "RightCommand"
name = "default"

# Command+1: clean filler words via Python before pasting
[[hotkey]]
key = "RightCommand"
name = "ai-cleanup"
channel = "1"
transform = "python3 ~/scripts/clean_filler.py"

# Command+2: translate to English via LLM API
[[hotkey]]
key = "RightCommand"
name = "translate"
channel = "2"
transform = "python3 ~/scripts/translate_en.py"

# Command+3: send to Slack via bash script
[[hotkey]]
key = "RightCommand"
name = "slack-post"
channel = "3"
exec = "bash ~/scripts/slack-post.sh"
output_format = "json"       # structured output with timestamps

# Output destinations (all work simultaneously)
[output]
paste = "accessibility"      # paste at cursor
file = "/tmp/speechbutton_log" # transcription history
webhook = "http://localhost:8080/transcription"

# Per-device settings (match by name)
[[device_rule]]
match = "iPhone"
keep_hot = true              # always-on mic → no 300ms wake delay

How It Works

Three steps. Zero configuration.

Step 1

Hold the Key

Press and hold Right Command (or your custom hotkey). The menu bar mic starts pulsing.

🗣
Step 2

Speak

Talk naturally in any supported language. Voice Activity Detection sends text as you talk.

Step 3

Release

Let go of the key. Text is instantly pasted wherever your cursor is. Done.

Simple Pricing

Start free. Upgrade when you need more.

Free
$0
forever
  • 15 min/day transcription
  • All models & 25 languages
  • 100% local & private
  • Push-to-talk & VAD
  • Auto-paste & auto-send
Download Free
Most Popular
Pro Monthly
$7.99 /month
cancel anytime
  • Unlimited transcription
  • Everything in Free
  • Hotkey channels & routing
  • Priority support
Start Free Trial
Save 25%
Pro Yearly
$71.88 /year
$5.99/mo · billed annually
  • Unlimited transcription
  • Everything in Free
  • Hotkey channels & routing
  • Priority support
Start Free Trial

Both plans: 100% local. Your voice never leaves your Mac. No cloud. No data collection.

SpeechButton

Start Talking, Stop Typing

Download SpeechButton and get instant speech-to-text on your Mac. Free 15 minutes/day. Pro: unlimited.

 Download for macOS

Requires macOS 14 Sonoma or later · Apple Silicon (M1+)