New
Apps 1,325Makers 1,323This week 1,325
Promote your app−30%
1views in
the last 30 days

OpenRamble

Free, open-source, local dictation app for Mac. Hold a key, speak and let go, and your words...

Built with Claude Code

by mikwiseman · Unclaimed · from SGSingapore · added Oct 29, 2026
no ratings0 comments

OpenRamble is a free, open-source, local dictation app for Mac. Hold a key, speak and let go, and your words appear as text at the cursor in any app.

OpenRamble's speech-to-text runs offline with Parakeet Ultra, a model built on NVIDIA Parakeet TDT 0.6B v3, so your voice and text never leave your Mac. OpenRamble removes filler words such as "um" and "uh" without rewording you. It also records meetings and your screen and transcribes the audio locally. The code is MIT licensed, and there is no account and no subscription.

Download OpenRamble for Mac

OpenRamble is free and needs macOS 14 or later on an Apple Silicon Mac. Support for Intel Macs is experimental. Each build is signed with an Apple Developer ID and notarized by Apple.

How it works

  1. Hold Right Command.
  2. Speak.
  3. Let go. OpenRamble turns your speech into text on your Mac and pastes it at your cursor.

Double-press the key to dictate hands-free, and press it once more to finish. One dictation, from pressing the key until you let go or finish, is called a take. Press Escape to cancel a take.

Install

  1. Download the DMG from the latest release and drag OpenRamble to Applications.
  2. Open OpenRamble. It offers to download the speech model, which is about 490 MB, and it starts the download only when you click. It then asks for Microphone and Accessibility access.

OpenRamble is in public beta. It installs an update only after you click.

What OpenRamble does

Dictation in any app

OpenRamble's voice typing works in any app that accepts text, from Mail, Slack and browsers to Cursor, VS Code and the terminal.

  • Hold to talk (push-to-talk). The default key is Right Command, and you can choose Fn, Right Option, Right Control, Left Command, Left Option or Left Control instead.
  • Hands-free. Double-press the key to dictate without holding it. In Settings, you can also let hands-free dictation finish when you stop talking.
  • Long dictation. You can dictate for longer than five minutes, and OpenRamble starts transcribing while you are still speaking.
  • Personal dictionary. Tell OpenRamble how a word sounds and how to write it. A built-in list already covers common technical terms. You can also import and export your dictionary as a file.
  • Your clipboard comes back. Once the text has been read, usually a quarter of a second after the paste, OpenRamble puts back what was on your clipboard, images included. If no app reads the text within three seconds, OpenRamble puts your clipboard back, tells you the text was not inserted and keeps it for Insert Last Dictation. Dictated text is marked so that it stays off Universal Clipboard and out of clipboard managers that respect the standard privacy markers.
  • History. Replay, copy or delete recent dictations, or recognize one again. If a paste fails, choose Insert Last Dictation from the OpenRamble menu in the menu bar.
  • VoiceOver. With VoiceOver on, OpenRamble plays a short tone when the microphone opens instead of a spoken announcement, so VoiceOver's speech does not end up in your dictation.

Clean Verbatim removes filler words without rewording you

Clean Verbatim removes filler words such as "uh" and "um", short stutters such as "the the", restarts such as "a, uh, a", and anything you take back with "scratch that". It only deletes words, and it never rewords, reorders or adds one, so OpenRamble never paraphrases you unless you ask. Clean Verbatim is a set of written rules, not an AI model.

You say OpenRamble types
Um, so the deploy failed, uh, scratch that, the deploy passed. The deploy passed.
Uh, I need you to um, fix the login bug, um, and then update the readme. I need you to fix the login bug and then update the readme.
It's a, uh, a leak. It's a leak.
Мы, э, думаем, что, ээ, надо подождать. Мы думаем, что надо подождать.
Um 5 Uhr treffen wir uns im Büro. Um 5 Uhr treffen wir uns im Büro.

The second row is what Parakeet wrote when a Mac voice read the sentence aloud.

  • If a word might be one you meant, it stays. In the last row, the German "um" means "at", so OpenRamble keeps it.
  • If a take was only a correction, OpenRamble pastes nothing and tells you so. The take stays in History.
  • Meeting transcripts drop filler words but keep "scratch that" and one-word replies, because in a meeting those are things a person said.

Clean Verbatim was scored blind on 160 examples that were set aside while it was built. AI models wrote the examples and, for each one, the version a careful editor would produce by deleting words only. Two AI judges checked each example, and only the examples they both agreed on were kept. Clean Verbatim's output matched the editor's version exactly for 86.9% of the examples, and 0 of the 160 examples lost a real word. PR #73 describes the method.

Clean Verbatim removes filler words in English, Russian, German and French, and stutters in English and Russian. "Scratch that" works in English.

Dictation for Claude Code and the terminal

OpenRamble pastes into Claude Code, Codex, Cursor and any terminal the same way it pastes into any other app. Its cleanup and other text fixes, including dictionary matches by sound, leave text in backticks, file paths and code identifiers alone. A dictionary entry that matches a word exactly applies there too. The openramble command-line tool and the openramble-transcribe skill let an agent transcribe audio files, as described below.

OpenRamble also checks which app you are dictating into, and it decides from that whether to add line breaks or press Return.

  • Terminals and code editors get one line. Terminal, iTerm2, Warp, Ghostty, Cursor, VS Code, Xcode and apps OpenRamble does not know never get a line break you did not ask for, because a line break in a terminal can run a command.
  • "Send it." presses Return in a terminal. End a take with "Send it." as its own sentence, and OpenRamble presses Return after the text, so you can send a prompt to Claude Code or Codex without pressing Return yourself. If you say "send it" in the middle of a sentence, it stays as text. OpenRamble never presses Return outside a terminal.
  • Writing apps get paragraphs. In Mail, Notes, Slack, browsers and document editors, say "New paragraph." to start a new paragraph, or pause for about a second and a half after a sentence.

Voice commands

OpenRamble acts on the spoken commands below.

Say What happens Where it works
"new line", "новая строка" or "с новой строки" at the end of a take Ends the text with a line break Any app
"New paragraph." or "Новый абзац." Starts a new paragraph Mail, Notes, Slack, browsers and document editors
"Send it.", "Press enter.", "Отправь." or "Энтер." as the last sentence Presses Return after the text Terminal apps only
"Scratch that", right after the words you want to remove Removes the sentence or phrase you said just before it Dictation in any app, in English

Meeting recorder

  • OpenRamble records your microphone and what your Mac plays. It transcribes both on your Mac while you record and labels them You and Others.
  • Press Control-Command-R (⌃⌘R) in any app to start or stop a recording, and you can change the shortcut. You can also start, pause, resume and stop a recording from the menu bar.
  • You can rename a recording, copy the transcript, or export a Markdown transcript or an M4A audio file.
  • OpenRamble does not tell the other people in a call that you are recording. In many places recording a conversation without everyone's consent is illegal, so asking them is your responsibility.

Screen recording

Choose Record Screen to record your screen, optionally with your microphone, your Mac's audio and a camera bubble that you can move and resize while you talk. OpenRamble saves an MP4 video next to the audio and the transcript on your Mac. OpenRamble does not upload the video, make a share link or store it in the cloud. To put a copy somewhere else, choose Save Video.

Transcribe audio files from the command line

The openramble command-line tool comes inside the app. To install it, open Settings → Setup → Install command-line tool, which creates a link at ~/.local/bin/openramble without administrator rights. If your shell cannot find openramble, add ~/.local/bin to your PATH.

openramble interview.m4a > transcript.txt
openramble interview.m4a --format srt > subtitles.srt
openramble *.m4a --format json --output-dir transcripts
openramble --check-model
  • It writes plain text, JSON with word timestamps, SRT subtitles or VTT subtitles.
  • It uses the model the app installed and downloads nothing, and the app can stay closed.
  • With --output-dir, it never overwrites a file, and only you can read what it writes.
  • Dictation in the app comes first, so the tool pauses while you dictate and then continues.
  • Its output is the model's text, without the app's dictionary or cleanup.

Run openramble --help for every option.

Claude Code and Codex. The skill in skills/openramble-transcribe lets an agent transcribe a local audio file with OpenRamble. Copy or link the folder to ~/.claude/skills/openramble-transcribe for Claude Code or ~/.agents/skills/openramble-transcribe for Codex, and then ask the agent to use openramble-transcribe.

Meeting pages. The skill in skills/openramble-meeting-page turns a meeting into one HTML page with the outcome, the decisions, the tasks by owner, the open questions and the full transcript. Every item links to the sentence it came from, so you can check it, and the page names a speaker only when a separate audio file, a recording channel or a label in the transcript shows who spoke. It works from Zoom's per-participant audio files, a single recording, an OpenRamble recording or a transcript with speaker labels. It transcribes with the openramble tool on your computer, or with your own OpenRamble server when you set OPENRAMBLE_SERVER and OPENRAMBLE_SERVER_KEY, and it sends audio nowhere else. The page makes no network requests and works offline. Install it the same way as openramble-transcribe. The example page shows a synthetic meeting.

Privacy

Your voice and text never leave your Mac. OpenRamble turns speech into text on your Mac without the network, so dictation works offline once the model is installed. OpenRamble has no account, no analytics, no telemetry, no crash reporting service and no cloud sync, and it never writes dictated text, words or keystrokes to its logs.

"Learn from your edits" is off by default. When you turn it on, OpenRamble reads the text field it pasted into 8 seconds and 25 seconds after the paste, so that it can learn a word you corrected. It reads no other field.

When OpenRamble uses the network

The Mac app connects to the internet only to download the speech model and to check for and download updates.

Action When Goes to What the service can see
Download the speech model When you start a download GitHub Releases, with Hugging Face as a fallback Your IP address and the download request
Check for updates About once a day, unless you turn it off in Settings → About GitHub Pages Your IP address and the app version
Download an update Only after you click GitHub Releases Your IP address and the download request

The update check sends no report about your Mac, its system version or its language. OpenRamble downloads fixed versions of the model files and checks each file against its SHA-256 checksum before it installs the model. The early Windows and Linux version connects to the internet only to download the speech model when you start the download. The Linux transcription server in apps/cli accepts connections from your own applications and makes none.

You can verify the network limits yourself. On every pull request and every push to main, an automated check runs scripts/check-network-surface.sh. The check fails the build if any app code uses a network API outside the model download code, the update code and one file that opens local recordings for playback. With a model installed, the first script below runs recognition with the network blocked. The second script records every network call and fails if recognition makes one.

./scripts/test-zero-network.sh
./scripts/test-zero-network-trace.sh

What OpenRamble keeps on your Mac

OpenRamble stores audio and text from your dictations and recordings only on your Mac, in ~/Library/Application Support/OpenRamble:

  • Dictation history. OpenRamble keeps your recent dictations with their audio, so you can replay, copy or delete them. It keeps the last 5 by default, and you can change that to 10, 20 or 50 in Settings → Dictation History → Keep. When a new dictation pushes an old one past the limit, OpenRamble deletes the old one's text and audio. A dictation you star with "Keep this one" does not count toward the limit and stays until you delete it. Each dictation also notes the kind of app it went to, such as mail, chat or terminal, never the app's name, so recognizing it again shapes the text the same way. You can also delete one dictation or all of them at any time. OpenRamble also keeps a take in which it recognized no words, so you can play it or recognize it again. Such takes never push out a dictation, because they have their own limit of the same number. A take that heard only silence is not kept.
  • Recordings. OpenRamble keeps each meeting or screen recording with its audio, its transcript and any screen video. The audio takes about 230 MB per hour while you record, and about 43 MB per hour after OpenRamble compresses it once the transcript is done. A recording stays until you delete it, and deleting it moves it to the Trash. Your Mac's backups include your recordings but skip the folders that hold temporary dictation audio.
Other local data How long it stays
Speech model Until you delete it in Settings
Audio saved after a technical failure, so a take is not lost Up to 10 WAV files, for at most 7 days and about 1 GB
Technical journal, with no speech or text in it On by default, for 7 days and at most 5 MB, and cleared when you turn it off
Settings and dictionary Until you change or delete them
The copy of text that could not be pasted, kept for Insert Last Dictation In memory only, until a later dictation is pasted, you delete its History entry, or you quit. Dictation history keeps its own copy.

To report a problem, choose Settings → About → Save Error Report. OpenRamble saves a ZIP file on your Mac, and you decide whether to send it to the developer. The file holds technical events, timings, error codes, the app and macOS versions, the app's architecture (arm64 or x86_64), and up to five recent Apple crash reports rebuilt without your file paths or device identifiers. It never holds audio, transcripts or clipboard contents, and OpenRamble does not upload it. docs/diagnostics.md lists exactly what it contains.

The Linux transcription server

openramble serve in apps/cli is a separate program you run on your own Linux server so your other applications can turn audio into text. Unlike the Mac app, it receives audio over the network. Your applications send each file to it, and a reverse proxy on the same machine provides HTTPS. It accepts connections on one local port and opens none. It writes each upload and its decoded audio only to temporary files that have no name on disk, and the system frees them when the request ends, even if the server crashes. Its ssh client, transcribe-stdin, keeps an upload it receives the same way until it has sent it. It keeps no audio, no transcripts and no history. Its log records the caller's key label, lengths, timings and status codes, never text, words, key terms or file names. The automated network check allows exactly one file, apps/cli/src/listen.rs, to accept connections, and forbids the unsafe code a raw socket would need and any dependency not on its list; the systemd service blocks every address outside the machine, for the server and for the ffmpeg decoder it runs. docs/server.md describes its API and how to run it.

How OpenRamble compares

The table lists facts from each app's own website or repository, checked on 20 October 2026. Prices and features change, so check the linked pages before you decide.

App Where speech becomes text Price Open source Platforms
OpenRamble On your Mac, with no cloud option Free Yes, MIT Mac, plus an early Windows and Linux version (see FAQ)
macOS Dictation On the Mac for general text where supported. Keyboard settings show whether it stays on the Mac. Free, built in No Apple devices
Wispr Flow In the cloud Subscription, with 2,000 free words a week on desktop No Mac, Windows, iOS, Android
Superwhisper On the device or in the cloud, depending on the model Free tier, then a subscription or a lifetime license No Mac, Windows, iOS, Android
MacWhisper On the Mac, with optional cloud models Free, or a one-time Pro license No Mac
VoiceInk On the Mac One-time license, or free if you build it from source Yes, GPL-3.0 Mac with Apple Silicon, iOS
Handy On the computer Free Yes, MIT Mac, Windows, Linux
Aqua Voice Not stated. Aqua uses its own Avalon model, and its site describes no local mode. Subscription, with 1,000 free words No Mac, Windows, iOS, Android

OpenRamble does not rewrite your text with an AI model, and it has no voice commands for editing selected text. Some apps in the table can rewrite your text with an AI model if you turn that on, such as VoiceInk's Cloud Enhancement and Handy's post-processing.

Accuracy and speed

All numbers below come from one MacBook Pro with an M4 Pro chip and 24 GB of memory on macOS 27.0.1. They use recorded read speech, not live dictation, so they describe recognition and not the time until text appears in an app. The method, the data and every raw output are in the model comparison, the scorecard baseline and the October 2026 product benchmark.

Word error rate (WER) is the share of words that are wrong, missing or added compared with a human transcript, so lower is better. FLEURS is a public speech dataset from Google. The hour rows join public recordings with short pauses between them, so they are not natural meetings.

| Test | Parakeet v3, th

Description taken from the repository README.

Ratings

–
0 ratings
5 0
4 0
3 0
2 0
1 0

Rate this app

Sign in to rate

Comments 0

Sign in to comment

No comments yet.

Related apps

#dictation · #macos · #voice