Talk, and it types.
Hold fn and speak. Release, and the words land where your cursor already was — in any app. Press esc to throw a dictation away.
More than 60 languages, switching mid-sentence. Optional AI cleanup that keeps your words.
Szept is dictation and screen capture for the Mac, built for working with AI agents. One payment gets you the source code too — so your agent can take the app wherever you want it to go.
$9.99 for the first 100 buyers then $25 one payment, no subscription
Unretouched screen recording — the pill over the desktop, and the words landing where the cursor was.
Nothing to switch to, nothing to copy and paste. Szept shows up for a few seconds and gets out of the way.
Hold fn and speak. Release, and the words land where your cursor already was — in any app. Press esc to throw a dictation away.
More than 60 languages, switching mid-sentence. Optional AI cleanup that keeps your words.
Screenshot a window or a region and mark it up. Scroll a long page into one image. Record the screen as MP4 or GIF.
Pin to screen, image to text, QR codes, translation.
With a capture on screen, hold fn and say what you want. Szept pastes your words and the file into the app you started from.
Nothing is sent until you press return.
There is no Whisper build in here and no Electron around it. Speech recognition happens in the cloud, on your Soniox key, so the app stays small, the Mac stays quiet, and an hour of talking costs cents — billed by Soniox to you, never by us. Measured on the shipping build, not estimated.
Two charts, both to scale, and both about the same decision: speech recognition happens on Soniox's servers, on your key, so you pay cents instead of buying a model with disk and RAM.
Bars are to scale, and Szept's is a sliver on purpose: it keeps no model on disk and none in memory. Model sizes from whisper.cpp's own model repository.
Measured with footprint and top on the shipping build: 0.0% of a core across five one-second samples, and 82 idle wakeups in fifteen minutes — about a tenth of a wakeup a second, against Finder's 34,389. The 180 ms runs from letting go of the key to Soniox’s final text, measured against the live service.
No window to switch to. The pill lives at the bottom of the screen for a few seconds and never takes the keyboard away from the app you are in.
Words darken as they are confirmed. Nothing is pasted until you let go.
An agent can write a dictation app in an afternoon. What it can't know is everything that only breaks on someone else's Mac — the things this app learned over six months and 129 commits.
A sandboxed Mac app can't add itself to the Accessibility list. Onboarding points to a switch the user will never find.
SwiftPM's Bundle.module finds its resources on the machine that built the app — and fatal-errors everywhere else.
An ad-hoc signature changes on every build, so macOS shows Accessibility granted while the app is still refused.
ScreenCaptureKit doesn't resend an unchanged frame, so "wait for three identical frames" never fires on a live stream.
Every one of these is written down in CLAUDE.md, next to the code — the first file your agent reads.
A signed, drag-to-install DMG: drag it to Applications and hold fn. macOS 14 or later, Apple silicon. Signed with Developer ID and notarized by Apple, so it opens like any other download.
The complete Swift project in a private GitHub repository: the app, its tests, and the scripts that build, sign and package it.
CLAUDE.md with 78 pitfalls, 5 design specs, 12 implementation plans and 638 tests — the context that makes an agent useful on day one.
Every release for twelve months, as a new DMG and in the repository. After that, everything you have stays yours.
Three windows out of the app: the searchable history, what cleanup does to your words, and the languages it listens for.
The Szept Source License is based on the PolyForm Internal Use License. Plain words here; the legal text is one click away.
Read the licenseThe first 100 buyers get it at $9.99. After that it is $25, for the same thing.
Renew updates for $9.99 a year — or don't. Nothing you have stops working.
Checkout by Polar. Taxes handled. You'll be asked for your GitHub username.
You'll also need a Soniox account for speech recognition. You paste your own key; real-time speech is about $0.12 per hour of talking, billed by Soniox. Szept never charges for it.
The pill taking a sentence, those words landing in a Claude Code prompt, and the numbers above — measured, not drawn. Every frame is the real app on a real Mac.
No voice-over yet, and no music — the picture is finished first.
No. The app works the moment you install it. The source is there for the day you want your agent to change something.
Yes. The app is signed with a Developer ID certificate and notarized by Apple, so it opens like any other download: macOS asks once whether to open an app from the internet, and you choose Open. If it ever says the app is damaged, the download was corrupted — fetch it again rather than working around the warning.
Yes. Speech recognition sits behind one Swift protocol, ASREngine. Point your agent at it and at the Soniox implementation next to it.
Nothing breaks. You keep the app, the code and every update you received. Renew when you want the next year of releases.
Not under this license. If you've made something other people should have, write to mariusz@szyma.co.
Audio goes to Soniox, under your own account. AI cleanup, if you turn it on, sends text to the provider you choose. The developer runs no servers and receives nothing.
Write to mariusz@szyma.co within 14 days of buying and you get the full amount back, no questions asked. I would rather lose the sale than have you regret it.
The same sentence is a chat line, an email paragraph, or a command that has to keep its hyphens. Szept reads the app you are dictating into — and, in a browser, the page’s own address — and hands that to the cleanup, so the shape of the text fits the place it lands in.
Press fn to dictate into this window.
Nothing here is a recording: the pill, the cleanup and the text are drawn in the page. The sign-off is the one you would store in Settings, and it is only ever used for email.
Mail, Outlook, Thunderbird, Spark, or webmail in a browser: the text arrives broken into paragraphs and ends with the sign-off you stored in Settings. It never invents a greeting, a name or a sign-off of its own.
Slack, Messages, WhatsApp, Telegram, Discord: one short paragraph, no greeting and no sign-off. A signature in a Slack thread is somebody else’s name in your message.
VS Code, Xcode, Cursor, any JetBrains IDE, iTerm2, Terminal, Warp: identifiers, commands, paths and flags come out exactly as spoken. Their punctuation is not “fixed” into prose, because that is how a command stops working.
TextEdit, Notes, Pages, Word, Obsidian, Notion, Craft: paragraphs break where you paused, a heading appears only if you dictated one, and nothing signs itself.
The wand pulses and the pill reads Cleaning up… while the model works, the microphone meter goes dark because the microphone is shut, and the end of a dictation is a screen of its own: Pasted, or Cleaned up and pasted when the words really were rewritten.
Hold fn and press ⌘ when you want this one dictation tidied without changing the mode, and the next one goes back to what you saved. Modifiers, not a letter: nothing is typed into your document while you ask.
Email — Apple Mail, Gmail, Outlook, Thunderbird, Spark, Mimestream, MailMate, and in a browser: mail.google.com, gmail.com, outlook.live.com, outlook.office.com, outlook.office365.com, mail.yahoo.com, mail.proton.me, mail.zoho.com, mail.icloud.com, icloud.com/mail, fastmail.com, app.tuta.com, mail.tutanota.com, poczta.interia.pl, poczta.wp.pl, poczta.onet.pl, poczta.o2.pl, mail.gazeta.pl, mail.gmx.com, mail.com.
Chat — Slack, Messages, WhatsApp, Messenger, Telegram, Discord, X, Signal, Teams, Element, Viber.
Code — VS Code, Xcode, Cursor, Zed, Sublime Text, iTerm2, Terminal, Warp, Hyper, kitty, Alacritty, and every JetBrains IDE.
Documents — TextEdit, Notes, Pages, Word, Obsidian, Notion, Craft, Bear, Ulysses.
Everything else is left exactly as it was before any of this existed — and if Szept guesses an app wrong, Settings shows what it decided (Safari → Email, from the window address) and lets you override it for that app.