Skip to content
SayCtrl

Voice dictationfor the AI era.

Hold fn and talk — your words land at your cursor in any Mac app. Say “take a screenshot” or “attach the PDF from downloads” mid‑sentence, and that lands too.

Speak. It’s written. Name it. It lands.

Now you

Pick something to say.

The screenshot really is this page, and the link really is this tab.

Mail — New Message
To:alex@studio.co
📸 Screenshot taken

That picture is this page, taken the instant you said the words.

Every dictation app types what you said.
This one also does what you asked.

All of this sits on top of ordinary dictation — say a command mid-sentence and its result lands right where you said it.

Pictures of your screen, pasted where you said the words.

Messages
Here's the bug I mentioned — — it happens on every refresh.
📸 Screenshot taken
take a screenshot

The screen your mouse is on, taken the instant you say the words. SayCtrl hides its own pill first, so it never appears in its own screenshot.

Also understood

grab a screenshotcapture a screenshottake another screenshotscreenshot this page

What lands is what
you meant to say.

The “um”s and the false starts go before the text is pasted.

What you said

so I think we should, we should probably just um ship the thing on Friday you know and then like see what happens

Auto cleanup

False starts and self-corrections go too.

What was typed

Slack — #engineering

So I think we should probably just ship the thing on Friday, you know, and then see what happens.

If the cleanup can’t verify itself, your raw words land.

  • Spoken lists become real lists

    “First of all… second of all…” lands numbered — never structure you didn’t speak.

  • Paragraphs where you changed subject

    A new topic gets a blank line. A short dictation stays one paragraph.

  • Spoken formats, written correctly

    • sorower at gmail dot comsorower@gmail.com
    • twenty five dollars$25

    Only when you clearly said it that way.

  • The app you’re in picks the register

    Personal, Work, Email, Agents — tone moves punctuation and layout, never your words.

  • Code editors are left strictly alone

    Xcode, VS Code, JetBrains, Sublime, Neovim: never tidied, never switchable.

  • Words land while you’re still talking

    Live streaming answers in about 150 ms, so letting go of fn pastes what is already written.

Download a model.
Never pay again.

Pick Local in Settings, press Download once, and the audio never leaves your Mac again.

  • No terminal, no Python, no server — the engines ship inside the app.
  • Checksum-verified on download, deletable any time.
  • Metal-accelerated on Apple silicon.
  • Say “use the local model” to switch mid-flow.

Works with the Wi-Fi off.

Models on this Mac

Settings › Transcription
  • Parakeet v3 Small

    356 MB · 25 languages · streams live

    freeDownload
  • Parakeet v3

    669 MB · 25 languages · streams live

    freeDownload
  • Parakeet v3 Full

    1.3 GB · 25 languages · streams live

    freeDownload
  • Whisper Small

    488 MB · 99 languages

    freeDownload
  • Whisper Turbo

    574 MB · 99 languages

    freeDownload
  • Whisper Large

    1.6 GB · 99 languages

    freeDownload

Weights land in ~/Library/Application Support/SayCtrl/Models, never in the app bundle.

It learns you.

From what you fixed, on this Mac.

  • Dictionary

    It first typed

    Slack

    Let’s ship say control on Friday.

    you fixed it once

    Every time since

    Let’s ship SayCtrl on Friday.

    Fix a word once — your names and jargon land right from then on.

  • Neighbours

    It first typed

    Notes

    open it in the art browser

    fixed with its neighbour

    Every time since

    open it in the Arc browser

    Remembered with the word beside it, so plain “art” still types as art.

  • Screen

    It would have typed

    Mail — Reply

    Thanks Shevaun, sending it now.

    it read the window first

    It typed

    Thanks Siobhán, sending it now.

    It skims the front window before you speak, so what’s on screen is heard right.

  • Phrases

    You said

    Safari

    Reach me at my email address.

    expanded in full

    It typed

    Reach me at sorower@sayctrl.com

    Say the short thing, type the long thing — spelled right, always.

Nothing of yours
leaves this Mac
unless you send it.

Audio goes to the provider you chose, for transcription, and nowhere else.

No subscription
Bring your own API key and pay cents an hour, at cost.
No telemetry
No analytics, no crash pings, nothing phoned home.
Offline when you want it
Run a local model and the audio never leaves your Mac.
Your files stay yours
Keys, transcripts and clips live in ~/.config/sayctrl.

Hold fn and say it.

It’s a small download and it lives in your menu bar.