Types your speech as text
Hold right Option and speak. Senti drops filler words, fixes capitals and types the rest. Fully local.
Hold a key, speak, and Senti types your words into whatever app you are in. Audio never leaves your Mac, and text comes back in about 0.2 to 0.8 seconds.
Hold right Option and a small pill shows a live waveform while you speak. Let go and the text lands in the app in front. The menu-bar icon sets the speed and restarts the engine.
Hold right Option and speak. Senti drops filler words, fixes capitals and types the rest. Fully local.
Hold right Command and say a rough idea. Senti writes it as a prompt for the app you will paste into.
Select text, hold Fn and say what to change, such as “make this a bullet list”.
Press Control, Option and V. Senti reads a screenshot with your instruction and writes at the cursor.
While you hold the key, sox records the microphone. Let go and the recording stops.
A whisper.cpp server on 127.0.0.1 keeps the model in memory, so it answers in under a second.
It strips filler words, fixes capitals and applies your dictionary, so “cloud md” becomes CLAUDE.md.
Senti pastes into the app in front. The audio is deleted when the turn ends, even when it fails.
Senti reads which app is in front. The same request comes out tagged for Claude and shorter for ChatGPT.
4 terminals are 4 contexts, read from each window title. No screenshots and no extra API call.
Off by default. Turned on, Prompt mode reads a capped digest from the folders you list, and logs every use.
Dictation is free and needs no key. Prompt, Command and Context call OpenAI with your own API key, kept in ~/.config/senti/openai-key and readable only by you. It goes to OpenAI and nowhere else.
The default is gpt-6-luna: a prompt rewrite takes about 2 seconds and costs a fraction of a cent. For harder prompts, set WF_TEXT_MODEL and WF_VISION_MODEL in ~/.config/senti/config.sh.
| Model and what to use it for | Price per 1 million tokens, in and out |
|---|---|
gpt-6-lunaThe default. Fast, and the cheapest | $0.10 in, $0.50 out |
gpt-6.1-terraA step up for trickier prompts and screenshots | $1.00 in, $5.00 out |
gpt-6.1-solComplex prompts, near top-tier quality | $2.00 in, $10.00 out |
gpt-6-astraThe most capable, for when quality matters more than cost | $10.00 in, $50.00 out |
US dollars per 1 million tokens. Prices checked 11 November 2026 on OpenAI's pricing page.
Dictation is transcribed on 127.0.0.1. The AI modes send text, and a small screenshot when screen context is on, only when you press their key.
$0
for dictation, with no API key
2 s
a prompt rewrite in Prompt mode
574 MB
speech model, checked against its checksum
You need a Mac with Apple Silicon and Homebrew. The installer adds whisper-cpp, sox, resvg and Hammerspoon with Homebrew and downloads the speech model (574 MB), checked against its checksum. Leave out --yes and it asks before each step.
$ git clone https://github.com/Leonardo-Engineering/Senti.git ~/code/senti
$ cd ~/code/senti && ./install.sh --yes
→ missing tools
brew install whisper-cpp sox resvg
brew install --cask hammerspoon
→ speech model (ggml-large-v3-turbo-q5_0.bin, 574 MB, runs on this Mac)
✓ model verified
→ scripts, config, dictionary, prompts
→ microphone-permission helper (Swift/AVFoundation)
→ Hammerspoon config
→ warm-whisper launchd service
→ icons (vector → resvg → iconutil)
→ Senti.app (menu-bar launcher)
No. Dictation runs on a whisper.cpp server bound to 127.0.0.1. Only the AI modes send text, when you press their key.
Only for Prompt, Command and Context. Dictation is free and needs no key.
Dictation is free. The AI modes call gpt-6-luna at $0.10 in and $0.50 out per million tokens. A prompt rewrite costs a fraction of a cent.
Macs with Apple Silicon and Homebrew. Xcode Command Line Tools are optional; they build the microphone prompt helper.
Yes. Add a line to replacements.txt with what it hears and what to type, such as cloud md|CLAUDE.md. Every dictation applies it.
base.en answers in about 0.3 seconds. large-v3-turbo is slower and better with names. Switch in the menu bar.