see.computer

Dictation and takes for the Mac

Stop describing your screen. Let your agent see it.

see.computer is the fastest way to show your agent what it needs. Speak, and the words land at your cursor. Add Shift, and your screen goes with them. Free and open source under MIT. Fully local. No account.

Download for Mac View source DMG. macOS 14, Apple Silicon.
agent Globe+Shift released
Pasted at the cursor
> "The sidebar overlaps the table once the window is narrower than about 900 pixels. The shot is at 1200, the clip is me dragging it down."

shots/001.png, clips/001 (14 frames)
~/Documents/see.computer/2026-09-07T14-02-11/take.md
What the agent opens
2026-09-07T14-02-11/
├── take.md
├── transcript.json
├── shots/
│   └── 001.png
└── clips/
    └── 001/
        ├── clip.mov
        └── frames/  14 jpg

Ultra fast

200 mskey-up to paste

That is a six-second sentence on an M3 Max. The engine warms the moment the key goes down, so by the time you let go most of the work is done. It runs on the CPU. Nothing is uploaded.

Shares context with your agent, the fast way

Hold Globe+Shift, talk over what is on screen, let go. The screen and your voice become a folder with take.md, the transcript with word timings, screenshots, and every clip already split into JPEG frames. The agent opens the exact frame where you said "this one" without decoding a video.

The paste carries the words too, so a web chat box with no file access still gets them.

Cleans it up

um, uh and hm are dropped and the next word takes the capital. Spoken numbers come out as figures. twenty-five thousand becomes 25,000, five percent becomes 5 %.

Words the model has never heard go in vocabulary.md and are pushed into the decoder while it is still choosing.

Gestures

Three gestures on the Globe key

The default trigger is Fn (Globe), the same key Apple and Wispr Flow use for dictation. Nothing to open, no window to find.

  1. Hold Globe. Speak. Let go.

    Hold Globe

    The text is pasted at your cursor, in any app that has one. A terminal, a chat box, a commit message.

  2. Double tap Globe. Speak. Tap once more to finish.

    Tap twice Globe

    A locked take, for narration that runs longer than you want to hold a key. Tap once to finish and paste. Esc throws it away. A lit ring around the pill while it is locked.

    Inside a locked take, hold Globe again and add Shift for shots or clips.

  3. Hold Globe and Shift. Let go to stop.

    Hold Globe + Shift

    The screen and the microphone are recorded while you hold. On release they are packaged into a take folder and the paste lands at your cursor.

    Release before about 0.6 seconds and the take is discarded, so a slipped key leaves nothing behind.

Other keys. Left Option and Right Option are available as the trigger in the tray. Locking and recording follow whichever key you pick.

If Globe starts Apple's Dictation. macOS may have the Globe key set to start its own Dictation. Set it to Do Nothing under System Settings > Keyboard.

Takes

A take is a folder an agent can read

Agents read files. They do not decode QuickTime. So a take is laid out for a reader with a file tool and nothing else. Hold Globe+Shift, talk through what is on screen, let go. The recording is written under a timestamp in ~/Documents/see.computer/, and a short paste lands at your cursor.

The paste is the narration in quotes, a blank line, then the names of the captures and the path to take.md. A coding agent with file access follows the path and opens the frame that was on screen when you said "this one". A web chat box that cannot open your disk still gets the words in quotes. Both get the same paste.

take.md
The narration and the captures in one file. Point an agent here and it has the whole story.
transcript.json
Word timings, so a reader can line up "the second field" with the frame on screen at that moment.
shots/
Screenshots as PNG.
clips/001/frames/
JPEG frames of the clip. The .mov sits next to them for a human.

What lands on disk

~/Documents/see.computer/2026-09-07T14-02-11/
├── take.md            start here
├── transcript.json    word timings
├── shots/             PNG screenshots
│   └── 001.png
└── clips/
    └── 001/
        ├── clip.mov
        └── frames/      JPEG frames

What gets pasted

"The sidebar overlaps the table once the window is narrower than about 900 pixels. The shot is at 1200, the clip is me dragging it down."

shots/001.png, clips/001 (14 frames)
~/Documents/see.computer/2026-09-07T14-02-11/take.md

Already have a .mov? see-computer clip <mov> packages it into a take the same way.

Cleanup

What gets fixed before it pastes

Spoken text is not written text. Hesitation, spoken numbers and project names the model has never seen are each handled before Cmd+V, so the agent reads a sentence and not a transcript.

No.SaidPastedPass
01SaidUm, so twenty-five thousandPastedSo 25,000filler, numbers
02Saidtwo hundred and seventy ninePasted279numbers
03SaidFable five point onePastedFable 5.1numbers, decimal
04Saidfive percentPasted5 %numbers, percent
05Saidtwo millionPasted2 millionnumbers
06SaidIt is, uh, like, fine.PastedIt is, like, fine.filler, "like" stays
07SaidsevenPastedsevenleft alone
08SaidHm.Pastednothing pastedfiller

Hesitation

um, uh and hm are dropped, together with the comma or full stop stuck to them. The next word takes over the capital. "like" and "actually" stay, because they are usually real words. A dictation that was only a hum pastes nothing.

Numbers

Ten and above become digits. Zero to nine stay words unless they carry a percent sign or a decimal point.

Vocabulary

Put the words the model misses in ~/Documents/see.computer/vocabulary.md, one per line. They are boosted inside the decoder while it is still choosing, not substituted afterwards. A term only gets its bonus when the model was already considering it, so a long list stays safe. A bonus can win a close call, not overturn a confident one. The file is re-read on change. No restart.

The pill and the tray

One chip says what the microphone is doing

A dark chip at the bottom of the screen. It appears when you hold the trigger and goes away when you let go. Cyan bars while listening, red while recording, a lit ring while a take is locked, so a live microphone never looks idle.

If no text field could take the paste, the pill stretches into a card with the text and a Copy button. Nothing is lost.

The tray

Recent
Recent dictations and recordings. Click one to copy it again.
Trigger
Fn (Globe), Left Option or Right Option.
Folder
Where takes and history are written.
Launch at login
On or off.
History
One markdown file per day in ~/Documents/see.computer/. Plain text, never pruned for you. Turn it off with "Save Dictation History".
Permissions
Shortcuts to each System Settings pane.

If iCloud Desktop & Documents sync is on, those text files sync like any other document. The promise about audio still holds. Audio never leaves the machine.

The pill stretched into a card. A waveform glyph, the dictated sentence, a Copy button, and a dismiss cross on a dark rounded bar.
A real capture. Nothing had focus, so the text waits on the card with a Copy button.

Listening

Globe held. Bars follow the microphone.

Recording

Globe and Shift held. Screen and voice captured.

Locked

Double tapped. Hands free. Tap to paste, Esc to discard.

Move the sidebar under the table below 900 pixels.

Nothing focused

No cursor to paste into. The text waits here instead.

Permissions

Four prompts from macOS, and why each one

An app that pastes text and reads a bare modifier key needs more than the average menu bar utility. Each permission is asked the first time the feature that needs it runs, so the first launch has no surprises.

Accessibility
To press Cmd+V for you. That is how the text reaches the cursor.
Input Monitoring
To notice a bare modifier key being held down. That is what hold-to-talk is.
Microphone
To hear you. Audio is transcribed on the CPU and never uploaded.
Screen Recording
For the Globe+Shift take only. Dictation works without it.asked the first time you record

Free and open source

Free. Open source. Yours to read.

MIT licence, source on GitHub. The app runs on your Mac and stays there. No account, no analytics, no network calls other than the one model download on first launch.

Coming soon: cloud links. Share a take as a link with someone who is not at your Mac. The local app stays free.

  • Speech model on the CPU. NVIDIA Parakeet TDT 0.6b v3, INT8 ONNX, 670 MB, downloaded once into ~/Library/Application Support/see.computer/models/.
  • 25 languages. Bulgarian, Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, German, Greek, Hungarian, Italian, Latvian, Lithuanian, Maltese, Polish, Portuguese, Romanian, Russian, Slovak, Slovenian, Spanish, Swedish, Ukrainian.
  • Built with Tauri v2 and Rust. One controller thread owns the state. The menu is a native AppKit glass panel.
  • Takes and history are plain files in ~/Documents/see.computer/. Read them, grep them, delete them.

Requirements and download

A DMG, or cargo

macOS 14 or later on Apple Silicon. Open the DMG, drag the app to Applications, hold Globe. The model downloads on first launch.

Free and open source, MIT. No account.

From source

cd src-tauri
cargo tauri build --debug --bundles app

Command line, inside the bundle

see-computer transcribe <wav>
see-computer clip <mov>

The same model and the same take packaging, callable from a script.