Just say it,
and write well.
Press Right Alt and say what you want. A clean prompt lands in Claude Code, Codex, Kiro, or anywhere else you can type.
- Free and open source
- Fully custom prompts
- Self-host it for your team
✻ Welcome to Claude Code!
/help for help, /status for your current setup
cwd: C:\Users\me\shop
> The login form validation is broken, take a look
●Read(src/pages/Login.tsx)
⎿ Read 86 lines
●Update(src/pages/Login.tsx)
⎿ Updated src/pages/Login.tsx with 4 additions and 1 removal
●Fixed the form validation. All tests pass. What next?
Pull the retry logic into a hook, set the timeout to 30 seconds, and add unit tests.
? for shortcuts⏵⏵ accept edits on (shift+tab to cycle)
Check the release scriptsOpenCommit
Read the release scripts first
Explored 2 filesrelease_preflight.ps1, publish_update.ps1
Read 12 files. Ready when you are.
Before the release, check three things: 1. The version number 2. That all tests pass 3. The changelog
GPT-6.1 SolMedium
Localmain
design.md
1# Design
2
3## Overview
4Notes are read far more than written,
5so the list page needs a cache.
6
7## Cache
8- Approach: TBD
9- Invalidate on save
Notes cache designVibeSpec
Write a design doc for this feature
The design doc is ready. The cache approach is still open. Which one do you want?
requirements.mddesign.md
For the cache in the design doc, start with an in-memory cache and switch to Redis later.
AutopilotClaude Sonnet 5.5
Think out loud. No draft needed.
Ums, slips and changes of mind get cleaned up for you.
-
What you said
So, um,I thinkthe, uh,the new build is ready for testing, you know.What gets typed
I think the new build is ready for testing.
-
What you said
Let’s meet at
ten, no, actually make iteleven tomorrow.What gets typed
Let’s meet at 11 tomorrow.
-
What you said
Check the
cooper nettiesconfig before we deploy.What gets typed
Check the Kubernetes config before we deploy.
Illustrative. Real results depend on the speech model and the AI model you choose.
Write the prompt, get the text you want.
Four built-in presets with their full prompts open to edit, or write a new one from scratch.
- Every built-in prompt is visible. Change any line.
- Write your own: commit messages, translation, an email tone.
- Give a preset a shortcut and switch any time.
Cleanup presets
New cleanup preset
Copies the preset below as a starting point.
One sentence, four presets
What you said on the left, and what each preset types on the right.
What you said
Um, so I fixed the form validation on the login page, and uh, added the unit tests too, can you tell the product team it’s ready for testing tomorrow.
-
Intent cleanupBuilt in
Clear, concise writingFixed the login page form validation and added unit tests. Please tell the product team it’s ready for testing tomorrow.
-
Faithful cleanupBuilt in
Your wording, errors fixedI fixed the form validation on the login page and added the unit tests too. Can you tell the product team it’s ready for testing tomorrow?
-
Commit messageCustom
Your own promptfix(login): repair form validation and add unit tests
-
Into ChineseCustom
Your own prompt登录页的表单校验已修复,单元测试也补上了。请告诉产品团队明天可以提测。
Per-app rules
Switch apps and the matching preset is used automatically.
Teams
Outlook
Kiro
Codex
VS Code
Cursor
- Notepad
WeChat
QQ
- Add an app
Self-host it for your team or company.
The server is open source and runs on your own machine. The whole team shares one, and audio and text never leave your network.
- One Docker Compose command
- Teammates just enter its address
- Concurrency limits and quotas built in
git clone https://github.com/crosswk/SayIt.git
cd SayIt/server
cp config.example.yaml config.yaml
cp .env.example .env
docker compose up -d --build
| Audio length | ASR latency |
|---|---|
| 30 seconds | ~0.8 s |
| 1 minute | ~1.6 s |
| 5 minutes | ~3.0 s |
You choose where your speech is recognized.
Only two things differ: where the audio goes, and whose model hears it.
-
Local mode
Works offline
Your PCYou talkOn your PCAudio never leaves your PC
- Cost
- Free
- Setup
- Download one model, from 240 MB
- Speed
- 9 s of speech in under 1 s on a CPU
Models
Qwen3-ASR
SenseVoice
Fun-ASR
Nemotron
Parakeet
-
Cloud API mode
The big providers’ models
Your PCYou talkProviderAudio goes straight to the provider, not through SayIt
- Cost
- Pay the provider for usage
- Setup
- That provider’s API key
Providers
Doubao
Qwen
Xiaomi MiMo
OpenAI
Gemini
Groq
OpenRouter
- OpenAI-compatible
-
Server modeDefault
Talk right after install
Your PCYou talkServerAudio goes to the server you connect to and is not kept
- Cost
- The trial server is free, with limits
- Setup
- Nothing
Which server
- SayIt trial serverQwen3-ASR 1.7B, the default after install
- Your company’s serverOn your own network, see Self-hosting above
AI cleanup
After recognition a language model polishes the text, in every mode. Pick any of these, including Ollama on your PC.
DeepSeek
Qwen
Doubao
Zhipu GLM
Xiaomi MiMo
Groq
Ollama
- OpenAI-compatible
App walkthrough
The SayIt main window, rebuilt for the web. Every button works.
Try
Just say it, and write well
Press Right Alt to start dictating, press again to stop and insert.
Last transcript
Three things: 1. Fix the login bug. 2. Push it to GitHub. 3. Tell me the results.
History
Today
-
Raw transcript:So three things, fix the login bug first, uh, then push it to GitHub, and then tell me the results.
-
Raw transcript:Um that’s too much detail, just take these two sections and summarize each one in a few bullet points.
-
Raw transcript:Um, so pull the retry logic into a hook, set the timeout to twenty, no wait, thirty seconds, and add unit tests.
-
Raw transcript:Let’s meet at ten, no, eleven tomorrow, and bring the, uh, the new design.
No matching records
Voice engine
Choose where speech becomes text, and set up the recognition service.
Mode
ReadySpeech recognition (ASR)
Click a card to use it; its provider and key apply together. Timings come from a real run on the built-in test audio.
Hotwords
Add names and technical terms so they come out right.
- Qwen3-ASR
- Claude Code
- Kubernetes
- pgvector
- SayIt
- Kowalski
- Redis
- Vercel
AI cleanup
How AI cleans up recognized text: the switch, prompt presets and per-app rules.
Cleanup styles
Pick or customize how AI handles your dictation.
- Intent cleanupBuilt-inYou refine dictated text. The input is a raw speech-recognition transcript; turn it into clear, accurate and concise text. Edit it here. It applies right away.
- Faithful proofreadBuilt-inYou proofread dictation faithfully. Fix recognition errors, formatting and technical terms while keeping the speaker’s wording and tone. Edit it here. It applies right away.
- Chinese to EnglishBuilt-inThe input is a Chinese transcript. First fix recognition errors in Chinese, then translate it faithfully into natural English. Edit it here. It applies right away.
- ConversationalBuilt-inKeep it sounding like speech. Only remove obvious fillers and repetition. Edit it here. It applies right away.
AI providers
Pick and configure the services that do the AI cleanup.
AI services
Click a card to use it; its address, key and model apply together.
About
Settings
Interface language
Changes only the app interface. Recognition language is set separately.
Keyboard shortcuts
Press Esc while recording or processing to cancel. Nothing is inserted, and the recording isn’t kept.
Microphone
Preferences
App
Appearance
App theme
Overlay
Waveform
Overlay length
Overlay preview
Usage
Using SayIt since 2026-08-02 — 72 days so far
Time of day
Late nightMorningAfternoonEvening
Processing mode
Prompt preset
Takes per app
Diagnostics
System status
- Processing modeCloud API
- ASROpenAI (gpt-4o-transcribe)
- Local engineVulkan · Process memory 612 MB · transcribe.cpp 0.4.2
- Compute deviceNVIDIA GeForce RTX 4060 (discrete GPU, 8 GB)
- AI cleanupDeepSeek (deepseek-v4-flash)
Common problems
The transcript wasn’t inserted after recognition finished
- Click the text box first so the cursor sits inside it.
- Don’t switch windows while holding the shortcut: the cursor must still be in the text box when you release it.
- Nothing works anywhere: security software is usually the cause. Add SayIt to its trusted list.
- Games and installers fail: they run as administrator, so run SayIt as administrator too.
- Only one app fails: SayIt can’t recognize its text box yet. Use the copy button on the card to grab the text.
Still stuck? Use "Report a problem" below and pick "Text not inserted".
Runtime log
Showing the most recent 200 KB of logs
20:31:02 [hotkey] hands-free start key=RightAlt20:31:02 [recorder] Recording started mic="Microphone Array"20:31:08 [asr] openai ok chars=96 asr_ms=84020:31:09 [llm] deepseek-v4-flash ok ms=56620:31:09 [inject] gate=uia sent=4 target=WindowsTerminal.exe20:42:15 [mic] low input level, rms=0.00620:42:19 [asr] openai ok chars=41 asr_ms=70221:03:47 [llm] request timed out after 15s, fell back to raw text21:03:47 [inject] gate=caret sent=4 target=slack.exe
Try it in your browser
Talk for a few seconds. The recording is sent to the SayIt trial server.
- Cleaned up into written text as you stop
- Up to 5 minutes per take
- Nothing to install, no sign-up
…
Result
Press the button on the left and talk. Your text will appear here.
Raw transcript
Questions, answered.
Is it free?
Yes. SayIt is free and open source, with no account to create. Only in Cloud API mode do you pay, and then you pay your provider directly for what you use.
Are my recordings kept?
Your history and recordings stay on your own PC. In Local mode the audio never leaves it; in Cloud API mode it goes straight to your provider; in Server mode the server recognizes it and does not keep it.
Is there a Mac or phone version?
Not yet. SayIt runs on Windows 10 and Windows 11 only.
Do I have to replace my keyboard or input method?
No. SayIt only takes a shortcut. Keep typing as you do now, and press the shortcut when you want to talk.
Does it work in Claude Code, Codex and Kiro?
Yes. Text lands at the cursor, so terminals, IDEs, browsers and chat apps all work. The built-in conversational preset is made for instructing AI tools, and presets can switch per app.
How does the shortcut work?
Press Right Alt once to start and again to finish, and the cleaned-up text is typed for you. You can also set a separate hold-to-talk key, and either one can be another key or a mouse side button.
Do I need a powerful PC?
No, and no GPU either. Server mode and Cloud API mode ask nothing of your PC. Local mode runs on the CPU and uses a GPU when there is one.
Which languages does it understand?
English, Chinese and a mix of the two all work well. For other languages it depends on the model: Nemotron 3.5 on your PC covers 32, and cloud providers such as OpenAI and Gemini cover more.
How do we run it inside our company?
Set up one NVIDIA GPU server with 16 GB of VRAM or more and start it with one Docker Compose command. Teammates enter its address under Voice engine → Server mode.
How does it compare with Typeless or Wispr Flow?
It does the same job. They are subscription cloud services; SayIt is free and open source, lets you write your own prompts, and can recognize speech on your PC or your company’s network. It is Windows only for now.