Skip to content
Halopen

Version history

Halopen ships in calm, deliberate updates.

We don’t announce every internal change. When a release is large enough for a customer to notice, it shows up here.

  1. v1.8.49 · 2 days ago current

    A press with nothing said no longer types your own dictionary words

    • A short press where nothing was said could come back as words from your personal dictionary, or a phrase of Halopen's own instructions to the transcriber, and type them where you were working. When a quiet press comes back as only those words, Halopen now types nothing. The text stays on Paste last transcript in case you did say it softly.
  2. v1.8.48 · 3 days ago

    After the trial, every mode needs Pro

    • When a 14-day trial ends, Halopen now asks for Pro before recording in on-device mode too, the same as in Cloud mode. It asks before it starts listening, so nothing you say is recorded and then refused.
    • If Halopen cannot reach its licence service, it still records, so a subscriber who is offline is never locked out.
  3. v1.8.47 · 6 days ago

    Dictations where you restart a sentence read as one sentence

    • Since 1.8.44 a dictation with pauses is also read as a whole, so a pause no longer ends your sentence. When you started a phrase again ("that we, that we know"), Halopen took the dropped false start for a lost word and went back to the pause-by-pause text, stops and all. It now recognises false starts and fillers, and keeps the whole reading.
    • Long single sentences are no longer mistaken for unpunctuated text.
    • Keep the audio of your recent dictations now keeps every dictation you deliver, not only the ones that failed to paste.
  4. v1.8.46 · last week

    Names from your dictionary are spelled your way in long dictations

    • Since 1.8.44 a dictation with pauses is read once as a whole, and across a long one that reading could drift to a common spelling of a name in your personal dictionary. Where the two readings disagree on a dictionary word, Halopen now keeps your spelling. Only those words change.
  5. v1.8.45 · last week

    Keep the audio of your recent dictations, if you want it

    • Halopen deletes a dictation’s recording as soon as its text is delivered, so when one comes out wrong there is nothing to check it against. A new setting, off by default, keeps the audio of your last 50 dictations on your Mac.
    • The recordings are never uploaded. The oldest is deleted when a new one arrives, turning the setting off deletes them all, and so does Erase all Halopen data. Settings → Privacy → Stored on this Mac.
  6. v1.8.44 · last week

    A pause no longer ends your sentence

    • Halopen transcribes while you speak by cutting the dictation at each pause, and the transcriber punctuated every piece as if it were finished: a full stop, a question mark or a closing quote before you were done. Halopen now also has the whole dictation read once when you let go, and uses that reading, so the punctuation comes from the whole sentence.
    • The pieces still check the words. If the whole reading is missing something a piece heard, Halopen reads that piece again and keeps the earlier text when it holds up. On four recordings of our own speech, 15 of 15 runs of the three ordinary ones came back as one correctly punctuated text; a script that speaks the words “comma” and “period” aloud came back as before.
    • The cost: a dictation with a pause in it arrives about half a second to a second later, and its audio is transcribed twice by the same OpenAI model. Cloud transcription only. Each dictation’s Audit Log row says which reading was used.
  7. v1.8.43 · last week

    Halopen now checks whether a pause ended your sentence

    • When you pause mid-sentence, the transcriber can write a full stop you did not say and start the next words with a capital. Nothing in the audio tells the two apart, so Halopen now asks a second model, while you are still speaking, whether the words after the pause carry on the sentence. If they do, the full stop goes and the sentence is joined.
    • It is right most of the time, not every time: on our own dictations it removed most of the full stops nobody spoke and wrongly joined two sentences about once in eight of the joins it made. The pause just before you let go is not checked, because the answer would arrive after your text.
    • Only that punctuation changes; every word stays as you said it. Verbatim with Cloud transcription only. The text either side of the pause goes to OpenAI, each check is a “Pause check” row in the Audit Log, and you can turn it off in Settings → Transcription.
  8. v1.8.42 · last week

    Fewer full stops where you only paused

    • After a pause mid-sentence, Halopen could still write a full stop or a question mark and then carry on in lowercase: “It was lower today than it was. any other day this week”. Those are now joined back into the one sentence you said.
    • This does not catch every case yet. A pause can still leave a full stop when the next words could start a sentence of their own. Your words are untouched: this changes punctuation at a pause, nothing else.
  9. v1.8.41 · 2 weeks ago

    A pause no longer ends your sentence

    • When you paused mid-sentence, Halopen could put a full stop or a question mark where you paused and carry on as if a new sentence had begun: “the resume that I sent. to the job”. It now joins those back into the one sentence you said.
    • A question that you paused in the middle of keeps its question mark at the end, where before it could finish with a full stop. And “The”, “That” and “Of” no longer pick up a capital letter in the middle of a sentence.
    • Your words are untouched: this changes punctuation and capital letters at a pause, nothing else.
  10. v1.8.40 · 2 weeks ago

    Waking up offline no longer signs you out

    • If your Mac woke from a long sleep before its internet connection was back, Halopen could not renew your sign-in, mistook that for being signed out, and opened the sign-in window — even though your account was fine. Halopen now treats that as what it is: a network problem. You stay signed in, your recording is kept, and if the on-device model is installed the dictation is transcribed on your Mac instead. Once the connection returns, the sign-in renews by itself.
  11. v1.8.39 · 2 weeks ago

    Your dictionary stays out of your pauses

    • Halopen transcribes while you speak, in pieces cut at each pause, and each piece is read with your personal dictionary as a spelling hint. When a piece held nothing but a short “hmm” between two pauses, the transcription model could fill it with words from that hint — so a long, thoughtful dictation could arrive with names from your dictionary that you never said. A sound that short is no longer sent as a piece of its own; it travels with the sentence after it. And if a piece ever comes back as nothing but dictionary words, Halopen reads the whole recording again instead of typing it. That second read is slower, and it only happens on the take that needs it.
  12. v1.8.38 · 3 weeks ago

    A setup you can follow

    • Setting up Halopen used to ask you to change what the fn key does in your Mac’s Keyboard settings. That was never needed — holding fn starts Halopen whatever that setting says — so the step is gone, from the app and from the download guide. The two permissions macOS does require now come one at a time: each screen shows the exact switch to look for and opens the right page of System Settings for you, and the setup window moves aside so it is not sitting on top of it. If you said no to the microphone the first time, setup now tells you plainly that macOS needs Halopen to restart, and picks up where you left off.
  13. v1.8.37 · 4 weeks ago

    One transcription per dictation again

    • Yesterday’s release starts reading the whole recording alongside the live connection when that connection is slow to answer, so a stall can no longer be added on top of the fallback. That still holds — the slowest takes got roughly twice as fast. But the threshold for “slow” was set far too low, so Halopen was quietly doing the work twice on most ordinary dictations. Measured against real use, it now waits a full second before starting the second read, which is longer than nine takes in ten need. Nothing about the speed of a stalled take changes.
  14. v1.8.36 · last month

    A stalled connection no longer adds its wait to the fallback

    • Halopen transcribes while you speak, and reads the whole recording as a fallback if the live connection does not answer. Nine times in ten your words are already transcribed before you let go of the key. When the connection stalls, though, Halopen used to wait for it and only then start the fallback — so a three-second sentence could take five seconds to appear. The fallback now starts as soon as the live connection is late, and the two run at the same time, so a stall can no longer be added on top. Takes where the connection answers normally are untouched and make no extra request.
  15. v1.8.35 · last month

    Sentences that read like sentences

    • Halopen transcribes your words in pieces while you speak, cutting at each pause, and each piece came back capitalised as though it began a new sentence. The last two releases fixed that for a list of words that are never anybody’s name — but a list like that can never be finished, and stray capitals kept getting through. So it now works the other way round: a word that continues the sentence before it is written in lower case unless something actually shows it to be a name. Your personal dictionary shows it, a capital the same dictation already used mid-sentence shows it, and your Mac’s own name recognition shows it. Where nothing does, the sentence wins — a correctly built sentence matters more than a capital letter on a word that might have been a name.
  16. v1.8.34 · last month

    More of the stray capitals, none of your names

    • A second pass over the words Halopen re-cases when a piece of speech continues the sentence before it. Words like “Breaks”, “Something”, “Made” and “My” were still arriving capitalised in the middle of a sentence; they are never anybody’s name, so they are now written the way you said them. Everything that is a name — people, places, products, and the items on a menu — keeps its capital, and the list is checked against real dictations rather than guessed at.
  17. v1.8.33 · last month

    A slice heard as the wrong language no longer reaches your cursor

    • Halopen transcribes your words in pieces while you speak, and tells the speech model which language you are dictating in. A piece can be about a second long, and a second of speech is not always enough for the model to place a language — so, rarely, a few words came back written in another alphabet in the middle of an English sentence. Halopen now notices when a piece comes back in a writing system your language does not use, and reads the whole recording instead, where there is enough context to get it right. That takes a moment longer and cannot lose a word. If you dictate in Chinese, Japanese, Korean, Russian, Greek, Hebrew, Arabic, Thai or an Indic language, nothing changes — your own writing system is never questioned, and accents, punctuation and emoji were never affected.
  18. v1.8.32 · last month

    No more capitals in the middle of a sentence

    • Halopen transcribes your words in pieces while you speak, cutting at each pause. Every piece came back capitalised as though it began a new sentence, and a pause is usually in the middle of one — so a long dictation arrived with a capital at every seam and no full stop before it. Halopen now knows when a piece continues the sentence before it, and writes the first word the way it would have been written mid-sentence. Only words that are never a name are ever changed: your own names, places, products and every form of “I” keep their capital exactly as before, and no word is ever added, dropped or altered — only the case of one letter.
  19. v1.8.31 · last month

    Less waiting after you let go

    • Halopen transcribes as you speak, and only falls back to reading the whole recording when it cannot be sure the last moment before you let go was finished. It was falling back far too readily: any sound at all above the room’s own floor counted, including the room itself. It now recognises the room — quieter than the floor Halopen already treats as a pause, and more than twenty decibels below your own voice in that same take — and stops paying for the slow path when there is nothing there. On a recording measured in a room at that level, every take took the fast path instead of none of them, with no word lost. A sound that might be a softly spoken last word still takes the slow path, every time.
    • Long dictations no longer wait on the paragraph layout. Halopen works out where the paragraph breaks go while you are still speaking, which costs you nothing. When that did not produce an answer it used to ask again after you let go and wait up to a second and a half for it — a wait that, measured over four days of real use, produced paragraphs five times out of thirty-two and was paid on the takes that were already the slowest. Your words now arrive as soon as they are ready.
  20. v1.8.30 · last month

    Your dictionary stays out of your dictations

    • Halopen sends your personal dictionary to the speech model as a hint, so it spells your names right. Very occasionally the model repeated that hint back as if you had said it, and a list of your own saved terms landed in the middle of a dictation. Halopen now recognises its own hint coming back and removes it before anything reaches your cursor. Terms you actually say are untouched — the check only removes text that matches the hint Halopen itself wrote.
  21. v1.8.29 · last month

    Words you did not say, and words we did not keep

    • Halopen no longer tells the speech model to expect shell commands when you dictate into a terminal. That hint was meant to help with file paths; what it actually did was put the occasional command — an “npx”, a “cd” — into ordinary sentences, because a model told to expect shell words will write one when the audio is unclear. Dictating into a terminal today is mostly plain English aimed at an AI assistant, so the hint is gone.
    • Takes transcribed on the live connection now record their text in the audit log, the way takes transcribed from the complete recording always have. Since the live connection became the default, most takes were logging the call without the words — so if Halopen ever typed something you did not say, there was nothing to go back and check. There is now.
  22. v1.8.28 · last month

    Names you fix once, Halopen keeps

    • Correct a name Halopen got wrong and it remembers your spelling. For a few seconds after Halopen types, it can read back that stretch of the field to see whether you replaced a word it misheard; if you did, what you typed goes into your dictionary and a pill tells you, with one click to undo. The reading happens on your Mac, in both modes, nothing is sent anywhere, and nothing but the term is kept. Password fields are never read. You can turn it off in Settings → Vocabulary.
    • Pauses in a room that never goes quiet — a TV, a fan — are read against the room’s own level, so a long dictation is cut where you actually paused.
  23. v1.8.27 · last month

    Your words land about a second after you let go

    • Halopen now transcribes while you are still talking, for everyone. Most of the work is done by the time you let go, so text lands in about a second on a typical take, down from nearly two (measured on our own dictations). A take the live connection cannot fully account for is transcribed from the complete recording, exactly as before. You can turn it off in Settings → Transcription.
    • Long dictations — 90 words or more, in Verbatim — now come back in paragraphs, with a list where you enumerate things. Only the layout changes; every word is the one you said. To find the breaks, the sentences’ text goes to OpenAI, the same service that transcribes them, and each call appears in the audit log. The setting sits beside the first one.
    • Names from your personal dictionary are far more often spelled the way you wrote them, including when the speech model hears them run together or split apart.
    • A TV in the room no longer puts stray words in your document: a press that heard only background is held back instead of pasted, and the TV after your last word is no longer transcribed on its own.
    • Also in this release: audio kept for Retry now expires on time, even through a quiet week; a recording made On your Mac is never uploaded when you retry it; pressing again right after letting go starts a new take; and Halopen has its own start and stop sounds, with a choice of sets and a volume slider.
  24. v1.8.26 · last month

    The check added last week was throwing away long dictations

    • Version 1.8.25 added a check that stops Halopen typing an answer instead of your words. It compared the cloud transcript against the draft your own Mac makes while you speak, and stopped when the two disagreed. The comparison was wrong, and it was wrong in a way that only showed up on long takes: your Mac’s recogniser stops early on a long hold, so the draft it produced was short — and short was read as disagreement, even when every word of it matched perfectly. Roughly half of all long dictations were at risk. If you held the key for a minute or two and got “dictation didn’t come through”, this was why.
    • The comparison now asks the question it should have asked from the start: do the words your Mac heard still appear in what came back? A draft that stopped early answers yes. An answer to your question answers no, because an answer does not contain the request that produced it. Long dictation works again, and the protection that was the point of 1.8.25 is intact — it still catches every case we have on record.
    • Halopen also updates itself now, quietly, instead of asking. Updates install when you are not mid-dictation and never interrupt a take. You can turn it off in Settings → Updates.
    • Two smaller corrections, both in the app’s own account of your subscription: the upgrade window had been quoting prices retired in May, and the app described a trial as a paid plan. It now says which you are on, and how long is left.
  25. v1.8.25 · last month

    Sometimes Halopen typed an answer instead of your words

    • You spoke, and what appeared at your cursor was a reply to what you said — not what you said. A request for a guide came back as a guide. A question asked with music playing came back as a description of the music. It arrived looking exactly like a transcript, in whatever you were writing, and the only way to catch it was to read it.
    • The cause is that the speech model Halopen uses in Cloud mode is a general-purpose model rather than a plain recogniser. When dictation is itself shaped like a request — and a lot of dictation is, because people talk to their tools — it occasionally stops transcribing and answers instead.
    • Halopen now checks the result before it reaches you, in two ways. It recognises the shapes an answer takes. And it compares against the draft your own Mac transcribed while you were speaking — a plain speech recogniser, which can only report words it heard and can never write an essay about them. When those two accounts of the same audio disagree, Halopen stops.
    • Your audio is kept when that happens, never discarded: a notice appears and one click retries it. You may occasionally see “dictation didn’t come through” where you would previously have seen a wrong paste. That is the trade, and it is the right way round — a retry costs a moment, and words you never said, typed into your own document, can cost a great deal more.
  26. v1.8.24 · last month

    Live text while you speak, and a paste that stopped dawdling

    • Halopen now begins transcribing while you are still talking, instead of waiting for you to finish and then starting from scratch. On a long take that is most of the wait gone. It also opens its connection at the moment you press the key, so the upload is not paying for a handshake after you have already stopped.
    • Three defects in that new path were found and fixed before it shipped — each of which could have dropped words silently, which is the one failure Halopen will not tolerate.
  27. v1.8.23 · last month

    Dictation stopped paying for work it was supposed to skip

    • An optimisation meant to skip audio compression on short takes had never once fired in production — every dictation ever made paid for an encode it was designed to avoid. One two-word take took almost ten seconds to appear. Compression is now sized to the take rather than to a flat guess, and a wedged audio codec can no longer park a dictation indefinitely.
  28. v1.8.22 · last month

    One dropped connection could switch dictation off

    • Halopen could stop dictating entirely and tell you only “The request timed out.” Every so often it checks your account in the background. If that one check timed out — a few seconds of bad Wi-Fi was enough — Halopen concluded it no longer knew whether you were allowed to dictate, and quietly refused every press after that. You’d hold the key, say your sentence, let go, and nothing would happen. Again. And again.
    • The message was the worst part of it: a timeout reads like your internet, so the natural thing to do is shrug and try again — and trying again did nothing, because the state was stuck. It cleared on its own eventually, up to half an hour later, which made the whole thing look random rather than like something with a cause.
    • Two things changed. A dropped connection no longer counts as news about your account — Halopen keeps what it already knew and tries again on its own schedule. And if Halopen genuinely cannot reach us, it now records anyway rather than refusing you: your press always starts the take. Nothing about capturing your voice ever needed the network, and from now on it doesn’t wait for it.
  29. v1.8.21 · 2 months ago

    See exactly what Halopen keeps — and erase it

    • Settings → Privacy now has “Stored on this Mac”: what Halopen is holding on your disk, how much of it there is, and a Clear next to each one. Dictation history and audit log, saved audio from failed takes, recovered text — with live counts and sizes, plus Show in Finder if you would rather look yourself.
    • There is also one “Erase all Halopen data…” button. It removes your dictation history, saved audio and recovered text, and tells you plainly what it does not touch: you stay signed in, your settings and personal dictionary are kept, and the on-device model stays installed. Nothing here is ever uploaded — this was always your disk, and now you can see it.
    • And Halopen finally has a way to reach us from inside the app: “Get help…” in the menu, which opens an email with the diagnostic details we would otherwise have to ask you for — app version, macOS version, transcription mode. No transcripts, no audio, no file paths.
  30. v1.8.20 · 2 months ago

    Cloud stops swallowing the first press

    • If you use Cloud transcription and left Halopen running for a while — overnight, or through a long afternoon — a press could do nothing at all. You’d hold the key, say your sentence, let go, and get silence. Press again and it might work. Nothing told you which press counted.
    • Halopen lives in the menu bar, which means it almost never becomes the “active” app — and that turned out to quietly switch off the piece that keeps your sign-in fresh in the background. Once it went stale, Halopen refused the take rather than record something it couldn’t transcribe. It just refused it before you’d finished speaking. Now recording starts the instant you press, every time, and the sign-in renews underneath you.
    • Also: on-device transcription no longer appends a stray “thank you” or “okay” to the end of a take, and Halopen does noticeably less idle work while it sits in your menu bar.
  31. v1.8.19 · 4 months ago

    Your words survive even a crash

    • The last way a finished dictation could be lost was if Halopen (or your Mac) crashed or was force-quit in the split second between transcribing your words and typing them. There was no catch for that — the words were simply gone.
    • Now every finished transcription is written to disk the instant it exists and erased the moment it’s delivered. If anything kills the app before your text lands, the words are waiting for you in the recovery menu the next time Halopen opens. Combined with the in-the-moment recovery already in place, a finished dictation can no longer disappear without a trace.
  32. v1.8.18 · 4 months ago

    You can see it working after you let go

    • There used to be a blind moment between releasing the hotkey and your text appearing — you’d sit there not knowing if Halopen was working or had quietly failed. Now the waveform doesn’t disappear when you let go: it shifts into a calm “thinking” state, with the gradient flowing through it, the whole time it’s transcribing and typing.
    • When your text lands, it fades away. If something goes wrong, it hands off to the recovery pill instead of vanishing. So there’s never a silent gap — you always know whether it’s still working or done.
  33. v1.8.17 · 4 months ago

    Closes a silent dictation-loss path

    • Fixes a way a finished dictation could disappear with no warning — no text pasted, no recovery entry, nothing. It happened when something interrupted the brief window between transcription finishing and the text being typed (most often when a take was waiting behind an earlier slow one). In that window Halopen had nothing staged to recover, so the words were dropped.
    • Now your finished words are made recoverable the instant transcription completes, before any of those steps — so if anything goes wrong on the way to the cursor, the take lands in the menu’s recovery list (and “Paste last transcript ⌃⌘V”) instead of vanishing. Verified against the full failure-injection suite.
  34. v1.8.16 · 4 months ago

    Dictionary spelling now works on-device too

    • The spelling fix in 1.8.15 only covered cloud transcription. On-device (On-your-Mac) mode couldn’t use your dictionary at all — the on-device engine has vocabulary biasing disabled because it destabilizes decoding — so names like “Cafe Meria” still came out “Cafe Maria” for anyone running local.
    • Halopen now corrects the spelling after transcription, on every mode including fully offline: when a dictation contains a close misspelling of a multi-word term you added to Settings → Vocabulary, it’s rewritten to your exact spelling. It’s deliberately conservative — it only touches multi-word entries with a strong match, so an ordinary word never gets “corrected” into one of your terms.
  35. v1.8.15 · 4 months ago

    Your personal dictionary now actually fixes spelling

    • If you added names, places, products, or acronyms to Settings → Vocabulary to get them spelled right — and they still came out wrong (a café named “Meria” transcribed as “Maria,” a person’s name, a brand) — this fixes it.
    • The faster transcription model Halopen adopted for speed turned out to quietly ignore your dictionary hints, so the terms you added had no effect on spelling. Now, whenever your dictionary (or context biasing) has something to apply, Halopen routes that dictation to the model that honors it — so your terms come out spelled the way you wrote them. Dictations with no vocabulary to apply keep using the fast path, so nothing slows down for everyday speech.
  36. v1.8.14 · 4 months ago

    No more silent dictation losses when your sign-in expires

    • If your Mac slept for a few hours or stayed idle past your sign-in’s lifetime, Halopen would happily start recording, capture your full take, then silently drop the words at transcribe time. The next take would often fail the same way, and the only signal — a small "sign in to use Halopen" tooltip — was suppressed if you were already pressing the hotkey again, so you could lose three or four takes in a row before seeing why.
    • Three changes close the gap. Halopen now checks your sign-in is fresh BEFORE it starts recording — if it’s not, you see a "Refreshing sign-in" message instead of speaking into a void. When the sign-in does lapse during a take, the audio is preserved to the menu’s "Retry failed audio" row so you can replay it after signing back in (it used to be discarded). And the recurring license check now also refreshes your sign-in, so a Mac waking from sleep is much less likely to land in the stale state in the first place.
  37. v1.8.13 · 4 months ago

    Anonymous diagnostics — off if you’d rather

    • Halopen now reports anonymous, privacy-scrubbed crashes and funnel-step events so we can see what’s broken and fix it faster. No transcripts, no audio, no PII — emails, JWTs, and Bearer tokens are stripped before any payload leaves the Mac. The full toggle lives at Settings → Privacy → "Send anonymous diagnostics."
  38. v1.8.12 · 5 months ago

    Transcribe survives the network blip

    • Transcribe runs on its own dedicated network session — no shared connection pool with cleanup, license, or auth traffic. Request timeout lifted from 15 to 60 seconds, and a transient drop (connection lost, timeout, brief DNS failure) now auto-retries once.
    • And when the network does still fail, your audio can be saved. A new “Retry failed audio” row in the menu offers “Retry transcribe & copy” on every preserved take — one click re-runs the transcribe and drops the result on your clipboard. Audio is kept for 7 days or 20 takes, whichever comes first, and copies rather than typing because the original window’s focus is long gone.
    • The menu stops lying about update checks. A benign “you’re up to date” signal from the auto-updater used to read as a failure, so every successful daily check left the menu reading “couldn’t check for updates” for 24 hours. Fixed at the source.
  39. v1.8.10 · 5 months ago

    Long dictations stop waiting on slow cleanup

    • When Polish or Editorial is on, the cleanup now races against a three-second cap. If it hasn’t returned by then, Halopen abandons it and pastes your verbatim text — your words land at the cursor a beat sooner, and the cleanup result (if it eventually comes back) doesn’t matter because you’ve already moved on. Short dictations are unaffected.
  40. v1.8.9 · 5 months ago

    No more “Cleanup looked off” pop-up

    • When Polish or Editorial fell back to verbatim, Halopen used to surface a small notification explaining why. It read as a malfunction even when nothing was wrong — the fallback got your words to the cursor, which is the only place they needed to be. The notification is gone. The Audit Log still shows you both versions if you ever want to compare.
    • Fewer false-positive fallbacks behind the scenes. The safety guard that protects you from a runaway cleanup was firing on legitimate Polish edits — the kind that drop “actually,” “literally,” “really,” and the other words Polish is built to clean. The guard’s stopword list now recognizes those as filler, so Polish and Editorial apply to your text more often instead of silently dropping back.
  41. v1.8.8 · 5 months ago

    The transcription model stops answering you

    • If you had clipboard + selected-text biasing on, Halopen was framing those hints to the transcription model with phrasing the model occasionally read as a chat turn — generating an answer to your audio instead of transcribing it. The biasing hints now use the same vocabulary-hint shape as the personal-dictionary signal, which has never tripped this failure. No new settings.
    • The Audit Log now keeps the text of your dictations so you can copy them back if something goes wrong. Open the log from the menu, click a row, copy the raw transcript or the cleaned version. Stays on this Mac, follows your existing retention setting.
    • On-your-Mac transcriptions appear in the audit log too, marked “(local)” so you can confirm at a glance that nothing left the device.
  42. v1.8.7 · 5 months ago

    Start and stop tones play through your main output

    • The hold-to-talk cue used to play through the macOS system-sounds channel — a separate volume and routing from the slider you turn up for music, which another app or a macOS update can silence without you touching anything. The cue now plays through your main audio output. If you can hear music, you’ll hear Halopen.
    • Backing out of Google or Apple sign-in no longer freezes the sign-in screen. If a web sign-in doesn’t complete, the buttons re-enable on their own so you can just try again.
  43. v1.8.6 · 5 months ago

    The last thing you say is less likely to get dropped

    • Occasionally — rarely, but enough to erode trust — a final sentence wouldn’t make it into the transcript. The audio was always captured correctly; the transcription model was treating the hard end of the recording as a cut-off and trimming the last few words. Halopen now appends a brief moment of silence after your last word so the model has room to finalize the trailing words.
    • A dictation that can’t land is no longer silently lost. If Halopen transcribes your speech but can’t deliver it — focus moved between when you spoke and when the text was ready, or the app refused the text — the transcript is held instead of discarded. A “Recover lost dictation” item appears in the Halopen menu: insert it at your cursor, copy it, or discard it. You choose how long to keep recovered dictations in Settings → Privacy, from “last one only” up to 24 hours. Stored only on your Mac.
  44. v1.8.4 · 5 months ago

    A glance-up timer while you hold the key

    • Hold the key for a long thought and the menu-bar icon now shows an elapsed timer beside it — 0:08, 1:24, 3:05 — that clears the moment you release. The waveform pill near your cursor was always there, but it sits at the bottom of the screen, not where you’re looking. The timer is a calm confirmation that the recording is running. No flashing, no color, no new window.
    • The Audit Log now records how long each dictation actually was. Every transcription row shows audio length alongside the timestamp and result — a small honesty fix to a surface built for you to verify what Halopen does.
  45. v1.8.3 · 5 months ago

    The menu tells the truth about your effective mode

    • Before 1.8.3, the Cleanup row showed your global pick (Cleanup: Editorial) even when the per-app override system was quietly routing your dictation to Verbatim instead. The menu now reads Cleanup: Editorial → Verbatim (Terminal) when your global pick and the effective mode for the current app differ — you see the override, you know why, you can decide whether to remove it.
    • The behavior itself is unchanged from 1.8.2: code editors, terminals, and chat apps still seed to Verbatim because Editorial doesn’t fit code or chat, and On-your-Mac transcription still forces Verbatim because cleanup needs a cloud round-trip. 1.8.3 just makes the routing visible at every glance.
  46. v1.8.2 · 5 months ago

    The menu bar becomes the daily control surface

    • Cleanup mode and Transcription mode now switch from the menu bar — one click to open, one click to flip. The current value shows inline (Cleanup: Verbatim, Transcription: Cloud) with the active cloud model named in the submenu. In On-your-Mac mode, a calm footer reads “On-your-Mac mode forces Verbatim” so the menu never lies about what’s running.
    • The four toggles you flip session-to-session — personal-dictionary biasing, clipboard + selected-text biasing, review-before-inject, and live preview — now live in the menu as native checkmark rows. Each honors its existing dependency (review is disabled when Cleanup is Verbatim; live preview is disabled in On-your-Mac mode).
    • A new deep link too: Open snippets… ⌃⌘S, parity with the existing vocabulary shortcut so the two user-authored stores are one keystroke apart. Settings still holds the full surface area; the menu bar is the fast lane.
  47. v1.8.1 · 5 months ago

    Security hardening on the cleanup pipeline

    • The Polish and Editorial endpoints now require a signed-in user and verify your subscription server-side before any model call. Caught in a security audit within an hour of the 1.8.0 ship; closed at the server immediately. No customer-visible change for paying users.
    • A preparation step ships in the Mac client for a follow-up server-side tightening on the transcription endpoint — closing the remaining path where the public anon key alone could ride a transcription call. No flow change today; today’s binary just sends the credential the future server will require.
  48. v1.8.0 · 5 months ago

    Polish and Editorial — cleanup that respects the speaker

    • Settings → Transcription gains a new card list under the Cloud / On-your-Mac picker: Verbatim (the default — exactly what you said), Polish (filler words and false starts removed, punctuation added, meaning preserved), and Editorial (a fuller rewrite for emails and longer-form writing). Verbatim stays the default for every user; Polish and Editorial only run when you explicitly opt in. Polish runs on Claude Haiku 4.5, Editorial on Claude Sonnet 4.6, and both preserve every language present and refuse to insert content you didn’t say.
    • Per-app cleanup modes — Mail might run Polish while Cursor and Xcode stay Verbatim. Code editors, terminals, and chat apps are pre-seeded to Verbatim so dictating code or Slack messages always lands exactly as you said it.
    • A “review before inject” modal, off by default. Turn it on and every Polish or Editorial cleanup opens a side-by-side modal with edits highlighted — Accept, Edit, or Reject. The safety net for the brand promise.
    • On-your-Mac mode forces Verbatim by design. Sending the cleaned text to the cloud after promising to keep the audio on-device would honor the letter of the privacy choice but break the spirit. One privacy posture, one decision. A catastrophic-change detector also guards against the rare cleanup that drifts from polish to rewrite — when it fires, your verbatim text lands instead.
  49. v1.7.0 · 5 months ago

    Snippets and Insights

    • Snippets — voice shortcuts that expand at the cursor. Author a trigger like sig and an expansion like your email signature in Settings → Snippets, dictate the trigger anywhere, and the full expansion lands in place of the trigger word. Pure text replacement — no model cleanup, no rewriting. Up to 200 snippets, local-only, deterministic word-boundary matching.
    • Insights — how much voice typing actually does for you. A new tab in Settings reads from data Halopen already records and surfaces a five-card dashboard: hours saved this month and all-time (against a named 50 wpm baseline), word count, session count, current dictation streak, and your top five dictionary terms. No remote analytics; everything runs against your local audit log.
  50. v1.6.1 · 5 months ago

    The follow-up press, fully fixed

    • The v1.5.3 release closed one half of the “fast follow-up fn press loses the previous dictation” bug at the clipboard layer; 1.6.1 closes the second half at the network layer. The transcribe-and-inject pipeline now runs in a detached background task the moment your audio is sealed, so a follow-up press starts a fresh dictation without interrupting the previous one. Both takes land in the order you spoke them.
    • Order is preserved across simultaneous takes. If you press, release, press again, and the second transcribe happens to return before the first, Halopen parks the second injection until the first lands.
    • The Audit Log’s “in-flight” signal is now honest. It used to read yes 96.7% of the time, while only about 1.7% of presses actually caught a take mid-flight — a bookkeeping bug. The signal now reflects reality, so the log line earns its place as a debugging surface again.
  51. v1.6.0 · 5 months ago

    Reading the context around your cursor

    • Halopen now reads up to 200 characters of text immediately before your cursor — the sentence you’ve been writing, the variable name you just typed, the recipient line in the email — and uses it as a bias signal. Proper nouns, technical terms, and code identifiers that used to land slightly wrong now land closer to right.
    • The app you’re dictating into shapes the register. Mail expects prose; Terminal, iTerm2, and Warp expect shell commands and file paths; VS Code and Cursor expect code identifiers; Slack expects a brief chat message in casual register. The anchor apps each carry a curated label and a matching hint.
    • Passwords and credentials in your cursor’s neighborhood never get sent. The same secret filter that has always guarded clipboard content now runs on cursor-adjacent text too — Stripe, GitHub, Slack, JWT, PEM, and AWS credential shapes, plus keywords like password=, api_key, token=. The filter errs toward rejecting.
    • Cursor-adjacent reads are gated on the same Accessibility permission Halopen already uses for text injection — no new permission ask — and only run when context biasing is on in Settings → Privacy.
  52. v1.5.3 · 5 months ago

    Reliability and transparency pass

    • Long dictation, fast follow-up press — text now lands cleanly. The pasteboard-restore window used to collapse when the new press cancelled the previous dictation, so the target app sometimes read a half-replaced clipboard before consuming the paste. The drain now runs independently of cancellation.
    • The Audit Log gained Export… and a click-row detail sheet. Save the current filtered list as JSON, or click any row to see the full endpoint URL, status code, duration, audio seconds, and outcome — with a Copy as cURL action that assembles a reproducible request template (your anon key is never serialized).
    • The Vocabulary tab shows your dictionary’s prompt contribution: Dictionary tokens: ~X of 244 tells you how close your saved terms come to the transcription engine’s 244-token prompt ceiling.
    • New telemetry lands in the local audit log for the rare tail-end-sentence-drop case, so the next release has the data to fix it at root.
  53. v1.5.2 · 5 months ago

    The vocabulary-list-as-transcription bug, fixed

    • A small number of users would occasionally see their saved words list typed into the active text field instead of what they actually said. This was the cloud transcription engine echoing the proper-noun bias hints back when the audio contained no detectable speech. Halopen now defends against it at four layers — a pre-flight silence check that skips the network round-trip entirely on silent holds, a sentence-form wrap so the decoder doesn’t read the hints as a list to continue, and a post-hoc echo guard on both the client and the server.
    • Version and update status are now visible in the menu-bar dropdown. A new line under the model identifier reads 1.5.2 · up to date, and shifts in real time to checking for updates…, downloading 1.5.3…, then 1.5.3 ready · restart Halopen — that last state is clickable for a one-tap install.
    • Updates now install themselves. Halopen polls in the background every 24 hours (it already did), and from this version forward it also downloads the new build silently and stages it for install on your next clean quit. No dialogs, no prompts.
  54. v1.5.1 · 5 months ago

    Menu-bar discipline, model honesty, faster cloud

    • The menu bar drops to eight rows. Paste last transcript with ⌃⌘V. Open the audit log with ⌃⌘L, vocabulary with ⌃⌘B. The four quality toggles that used to live in the dropdown moved into Settings → Transcription where they belong; permission-OK rows are hidden until something breaks.
    • Settings → Model is the page where you build conviction about what’s actually running on your Mac. It names Whisper Large v3 explicitly, attributes it to OpenAI, credits WhisperKit for the integration, and shows the three-stage compute breakdown — encoder and decoder on the Apple Neural Engine, mel-spectrogram on CPU and GPU.
    • Cloud dictation got faster for Pro users. Halopen used to make three network calls per dictation; the pre-flight gate and the usage tick weren’t doing anything for paid accounts. They’re gone. One call per dictation. The audit log gets quieter and your dictations land a beat sooner.
    • The audit log gained the status-dot treatment — green for success, yellow for rate-limited, red for server errors, orange for network failures. Smaller refinements throughout: Account tab shows your email, plan, and renewal date inline; Vocabulary opens with an explanation of what the terms actually do; the paywall footer correctly names the Stripe billing portal.
  55. v1.5.0 · 5 months ago

    Halopen runs on your Mac, by choice

    • The largest update Halopen has shipped. Halopen can now transcribe your voice entirely on your Mac. Audio transcribed that way is not uploaded.
    • On-device transcription runs Whisper Large v3 via WhisperKit on Apple’s Neural Engine. Apple Silicon only (M1, M2, M3, M4). Opt-in from Settings → Transcription → On your Mac. Cloud mode is still the default and still recommended for everyday dictation — it uses gpt-4o-transcribe for the highest accuracy on proper nouns, multilingual code-switching, and unusual acoustic conditions. You choose per-dictation.
    • The audit log shows Halopen’s cloud calls, such as transcription, licence and update checks — endpoint, status, duration, audio seconds. Metadata only; no audio, no transcripts. In On-your-Mac mode, the log stays silent during transcription.
    • Personal Vocabulary lands too: add proper nouns, brand names, and technical terms in Settings → Vocabulary, and Halopen pre-feeds them to the cloud transcription engine so they land on the first pass. Plus a redesigned mode picker, a new Dock icon (the menu bar keeps the pen-and-halo glyph from 1.4.4), and a published transparency policy at halopen.com/transparency.
  56. v1.4.5 · 5 months ago

    Sharper transcription, cleaner endings

    • The last word of your sentence stays with you. When you tag on a quick phrase right before releasing the function key, those final 100–300 milliseconds of audio used to occasionally get clipped before reaching the transcriber. Halopen now holds the recording open just long enough for the trailing audio to make it home.
    • Transcription now lives inside Halopen — the cloud path moved off a shared backend onto its own dedicated infrastructure. Same model, same accuracy, same speed; reliability is now fully independent.
  57. v1.4.4 · 5 months ago

    A new menu-bar mark

    • A new menu-bar icon: the halo and the pen, drawn as one mark. The wordmark, finally visible at every size.
    • The arc’s aperture shifts as Halopen listens — wider at rest, tighter while recording, wider while waiting on the cloud, fully closed when text lands at your cursor.
  58. v1.4.3 · 5 months ago

    Robustness pass + macOS 14 fix

    • A perfectionism pass on the audio engine, the hotkey watchdog, and the sign-in window.
    • macOS 14 Sonoma now works again: a modern AVAudio API call had been calling the macOS 15 path with no fallback.
    • Friendlier errors when the disk fills up, when a USB mic unplugs mid-take, and when the function key gets stuck. Halopen now tells you what to do.
    • Sign-in no longer leaks the previous user’s typed email after sign-out.
    • Free-tier word counting is fair to languages that don’t separate words with spaces (Mandarin, Japanese, Korean).
  59. v1.4.2 · 5 months ago

    Press kit, polished installer, growth pass

    • A full press kit at /press/ — fact sheet, story angles, brand assets.
    • A polished DMG installer with a clear drag-to-Applications layout.
    • A welcome wizard that walks first-time users through every permission.
  60. v1.4.1 · 5 months ago

    Discovering the Secure Keyboard hint

    • When Halopen detects a Secure Keyboard Entry block in Terminal or iTerm2, it now surfaces the fix the first time you run into it — instead of silently failing.
  61. v1.4.0 · 5 months ago

    Clearer permissions feedback

    • Recheck Permissions in the menu now confirms exactly what it just read — “OK,” or “Still missing X.”
    • When dictation lands in a Secure-Input app, the menu shows the specific app and the fix.
  62. v1.3.9 · 5 months ago

    Multi-channel audio, fixed

    • USB interfaces, aggregate devices, and virtual audio routes are now down-mixed to mono before transcription. Stops the rare “no speech detected” loop on rich audio setups.
  63. v1.3.8 · 5 months ago

    Sign-in safety net

    • The sign-in window now catches OAuth callbacks more reliably across slow networks and reinstalls.
  64. v1.3.7 · 5 months ago

    Cost defenses + Audit Log

    • Per-tier hold timers (10 min Pro, 3 min Free) prevent runaway sessions.
    • A new Audit Log window in the menu shows the last 500 cloud calls — local, auditable, transparent.
  65. v1.3.6 · 5 months ago

    A new app icon

    • A new app icon — the pen and the waveform, on cream paper. The picture of the manifesto.
  66. v1.3.5 · 5 months ago

    Welcome window + locale-aware language hint

    • A first-run welcome window with a menu-bar locator and a three-step “how it works.”
    • Halopen now reads your Mac’s preferred language and passes it as a transcription hint.
  67. v1.3.3 · 5 months ago

    Auto-update via Sparkle

    • Halopen now updates itself in the background — every release signed with EdDSA, every appcast load verified.
  68. v1.3.2 · 5 months ago

    OAuth fallback restored

    • Sign-in now works regardless of how macOS routes the callback — the safety net catches every case.
  69. v1.3.0 · 5 months ago

    Affiliate program, learn library

    • A public affiliate program at /affiliate-program/ — apply, get a link, earn 30% on every paid customer.
    • The first /learn/ flagship goes live: voice typing for Claude Code on Mac.
  70. v1.2 · 5 months ago

    Halopen for Mac arrives

    • First public release of Halopen for Mac — hold to talk, anywhere a cursor goes.
    • Free forever — 2,000 words a month. No card to start. (That tier was retired on 2026-09-07; Halopen is now a 14-day free trial, then paid.)