Whisperly for developers

Dictation built for developers

Speak your prompts, PRs, and standups. Whisperly clears the filler and drops finished text into any Mac app.

Free forever, no credit card · works in any Mac app · macOS 13+

CursorCursorauth.py⌘I
Review my changes to @auth.py and @flow_state.ts. Make sure the Supabase client retries on a 401 and we don't leak the refresh token in logs. Add tests for the token-refresh edge cases, then update the README to explain why we dedupe by request id.
∞ Agentclaude-4-sonnet ▾Skip permissions
What you'll dictate

Three jobs, one hotkey

Most of the day is talking to your tools. Whisperly turns that into clean text, right where you work.

Prompt your AI

Speak the whole prompt

Say the whole ask out loud instead of typing paragraphs at your agent. It lands as clean text, not transcription noise.

CursorClaude CodeCodexVS CodeClaudePerplexity
ClaudeClaude
Write a migration to add a nullable dedupe_key column to usage_events, backfill it from request_id for the last 30 days, then add a partial unique index on it. Keep the whole thing reversible and idempotent, and leave a note in the PR describing the rollout order so we run it on staging first.
Sonnet 4.5
Ship the write-up

PRs, commits, tickets

Dictate the summary while it's fresh. The false starts get stripped, so it reads like you wrote it clean.

GitHubLinearJiraNotionIntelliJ IDEA
GitHubOpen a pull request
Add rate limiting to the upload endpoint
Caps uploads at 10 per minute per user to protect the worker pool. Returns 429 with a Retry-After header so clients back off cleanly instead of hammering the queue.
  • New middleware on /upload, before auth
  • Configurable via RATE_LIMIT_RPM
  • Counters in Redis, keyed per user
Tested with a burst script: the 11th request in a window returns 429 as expected.
Talk through updates

Standups & blockers

Say what's blocking you and what's next. It comes out crisp and ready to send, in ten seconds.

SlackDiscordMessagesWhatsApp
Slack#engineering
Safiya10:24

any update on the v1.3 cutover? i'm blocked on it for the demo tomorrow

Ran out of compute on Baseten, but we'll still get v1.3 out to prod by end of day tomorrow.
BIS</>

It learns your vocabulary

The names generic dictation trips on: your repos, services, acronyms. Add them once and they land right in every prompt and PR, synced across your devices.

SupabasePostgresKubernetesasyncpgOAuthgRPCKafkawebhookyour-repo-name
What lands in the box

Cleaned up, it reads shipped.

A real spoken update going in, clean text coming out. Same words, none of the mess.

What you say

so uh basically i refactored the the auth middleware, moved the token refresh into like a separate helper, and um the supabase client now retries on a 401, can you review it when you get a sec

What Whisperly writes

I refactored the auth middleware and moved token refresh into a separate helper. The Supabase client now retries on 401. Could you review it when you get a chance?

Why it fits

Built for how developers work

  • Learns your vocabularyAdd your repos, services, and acronyms once. They spell right in every prompt and PR, and sync across your devices.
  • Reads like clean proseUms, false starts, and repeats are stripped. Your PR and your prompt read finished, not dictated.
  • Works in your editor and terminalCursor, VS Code, iTerm, any focused field. No plugin, no extension, no per-app setup.
  • Your audio is never storedSpeech becomes text, then the audio is gone. No history of your dictations is kept.

Dictate at the speed you think

Hit the hotkey, say the prompt, keep your hands on the problem. Clean text lands where your cursor is.

Free forever, no credit card · 2,000 words a week · 14-day Pro trial when you need more