Changelog

What changed, release by release.

Every stable release of the desktop app: new features, accuracy improvements and fixes. The security page's network disclosure is re-verified alongside these releases.

0.6.84

LocalTranscript 0.6.84

  • Recordings from your iPhone never leave this computer. A meeting the phone delivered is always transcribed and analysed on this computer, even if you use a cloud transcription or AI provider for other meetings. AI actions and library questions on a phone meeting run on the local model; with no local model installed, the app asks you to choose one instead of using the cloud. Phone meetings are not shared with MCP integrations.
  • Unattended transcription of phone recordings now also runs when your own meetings use a cloud provider, since phone meetings are processed locally anyway.
  • Meeting tools: name your own marks, Trim & Split a stored meeting, one Export dialog (rich text, Markdown, Word, subtitles), Find & replace across transcript, notes and marks, and a "Still recording?" check after Stop.
  • AI actions: a clearer Summary, a countdown from the first pass, local thinking as a setting (off by default), and a catalogue of local models (Qwen and Liquid AI next to Gemma).
  • Settings follow the main menu; every shortcut lives in Settings › Shortcuts and can be changed (dictation default Ctrl+Shift+D / Cmd+Shift+D); a Dictionary page.
  • Swiss German is named in every interface language. Arabic is no longer offered as a meeting language until right-to-left text displays correctly; existing Arabic meetings keep working.
  • Optional, anonymous usage reports (off unless you turn them on), stored in Switzerland.
  • Includes everything from 0.6.80: full-quality transcription in the background after Stop, stoppable AI actions, and more.

Platforms: macOS (Apple Silicon, macOS 14 or later), signed and notarized. Windows stays on 0.6.80 for now; its automatic updates keep working. Verify downloads against SHA256SUMS-macos and its signature.

0.6.80

LocalTranscript 0.6.80

  • Stopping a recording now runs a full-quality transcription of the whole recording in the background ("Improving transcription"). The live transcript stays readable meanwhile and is replaced automatically, so a later Re-process gives the same result.
  • AI Actions can be stopped at any time, show one progress number with the current step in words, and name the provider they run on.
  • Cancel during Re-process and "Transcription only" really stops speaker identification and transcription, and winds down cleanly.
  • Re-process always re-runs speaker identification and says where the transcription runs.
  • Recording health covers the whole recording, and stale audio level meters reset.
  • Video export prepares the full video before asking where to save, shows real progress, and no longer flashes a console window.
  • Live transcript bubbles: pick a colour for each side in Settings > Appearance.
  • Dictation has its own list of languages and no longer forces uncertain language guesses.
  • Infomaniak: large AI models no longer time out; transcription gets word timings and only the compressed audio, so imported videos and long meetings work.
  • Fixes: speech no longer lost after long silences in a full transcription; meeting stats show correct timings; transcript and dictation history use the full window width.

0.6.73

Phone companion, ready for the iPhone app

This release is the desktop half of the new iPhone companion app. Pair your phone once; meetings you record on it arrive on this computer end-to-end encrypted and are transcribed here, on your own machine.

  • The phone is told what happens to each recording: received, waiting for you to press Process, processing, ready, or failed and why.
  • Transcripts go back to the phone with real speaker names, the meeting's AI summary when you have made one, and titles kept in step on both devices.
  • The desktop keeps its network port across restarts, so delivery over your Wi-Fi keeps working; a phone that moved networks finds the computer again.
  • A new recording from your phone shows a notice with an Open button, and the Library can filter to phone recordings.
  • Unpairing asks first and removes anything still waiting on the relay for that phone.
  • Relay traffic is now authenticated end to end and metered; desktops older than 0.6.72 must update to keep sending and receiving over the internet.

Also in this release

  • Recording safety: quitting mid-recording asks first, and a crashed or killed recording is recovered at the next launch.
  • Settings are saved atomically with a backup, so a crash while saving can no longer wipe them.
  • Live translation for Italian, Spanish and Portuguese.
  • A redesigned interface across the app, in light and dark.
  • Dictation no longer repeats words or loses the end of a sentence.

Platforms

macOS (Apple Silicon, macOS 14 or later): signed and notarized. Windows stays on 0.6.69 for now; its auto-update keeps working and a Windows build of this release follows. Verify downloads against SHA256SUMS-macos and its signature.

0.6.69

Built for managed environments

This release is the one the IT and data-protection documents at https://localtranscript.com/security describe. Hard Offline Mode is now enforced in one place in the Rust core: every outbound connection goes through a single chokepoint, redirects are re-checked hop by hop, and the update check and download are refused and logged like everything else. Administrators can set a machine-wide policy file that locks offline mode, blocks cloud providers, and hides or disables the companion, MCP, feedback, voiceprints, Markdown export and dictation; the app reads it before the user's settings.

Data lifecycle: a retention sweeper deletes old recordings, transcripts and logs on a schedule you set; voiceprints require recorded consent per contact; dictation no longer leaves text in the Windows clipboard history or cloud clipboard; the feedback form identifies an install by a random ID instead of a machine fingerprint. Temporary audio lives in the app's own folder and is purged at start.

Supply chain: model and runtime downloads are pinned by hash and refused on mismatch, the model manifest is signature-checked, and every release now ships a SHA256SUMS file with a detached signature plus software bills of materials for the Rust and npm dependencies.

Recording

The app offers to start recording when a Zoom, Teams, Webex or Slack call starts, and asks before a forgotten recording runs all night. Conversation bubbles and speaker lanes stay for the whole meeting. A dead input is reported instead of silently discarded.

Dictation

Dictation no longer stops after one minute. Three key modes: automatic, hold, toggle. Language detection uses the dedicated pack, which makes short dictations noticeably faster.

AI actions and setup

The Tools page shows the whole lifecycle of an AI action, asks before downloading Gemma, and downloads models one at a time. The system check installs the summaries model directly instead of re-running the wizard.

Branding

Product name, tagline, support address and hidden integrations can be set in app settings on top of the built-in brand profile, without a rebuild.

Also fixed

Windows taskbar and tray icons render at full size. Translation jobs no longer overlap or lose the in-hand result; the language-ID and Marian exports fail closed instead of writing a broken model; crash recovery stays safe when settings cannot be saved; Metal adapters are reported as Metal.

Platforms

macOS (Apple Silicon, macOS 14 or later): signed and notarized. Windows x64 and ARM64: this release ships unsigned MSIs (the code-signing quota for the month was exhausted), so SmartScreen will warn on first launch; verify the installer against SHA256SUMS and its signature instead. The next stable release returns to Authenticode-signed installers.

0.6.64

Language detection gets its own engine

Working out which language is being spoken used to lean on the transcription model itself. It now has a dedicated, light engine, with its own block in Settings.

The part that mattered on a fresh install: the detection pack now downloads together with the translation packs. Before, "Automatic" could quietly fall back, because nothing capable of detecting anything was on disk yet — and it said nothing about it. It now tells you when nothing lighter is installed.

Translations wait for the final pass, and Gemma waits for you

A multilingual recording gets a final quality pass once you stop. Until now the transcript on screen did not visibly change when that pass landed, and the progress badge could sit at N/N while the translation tier was still working — so a finished-looking transcript was still moving underneath. The transcript now refreshes itself when the pass completes, and playback names the pass and says why the live transcript is still on screen.

Improving translations with Gemma has also become an explicit Improve translations action instead of something that starts by itself. On a slow machine it was a long job nobody asked for.

Speakers while the meeting is still running

Speaker lanes now appear during live transcription. The separate "Identify speakers during live transcription" toggle is gone, because it duplicated a setting that already existed.

Also fixed

The setup wizard no longer calls a working API key invalid when the provider is merely busy — a rate limit or a server error was being read as "wrong key".

Library and Q&A are translated for German, Spanish, French and Portuguese.

Two things that could put more into the diagnostic log than intended: provider error bodies are no longer written to it, and an IPv6 address inside a URL now stays within the redaction span instead of escaping it.

Dictation's Download model button works again, and unpairing a phone now removes it from the roster for good.

Quieter in the background

Calendar polling asks whether the feed has changed instead of downloading the whole thing every time. The capture screen re-renders less. Whisper reports model-load and per-segment mix timings, which is what makes slow machines diagnosable.

Under the hood this release carries a large cleanup: the library module split into a directory, two dead IPC surfaces removed end to end, an unreachable during-meeting diarization daemon deleted, and the last Python-era leftovers gone.

Windows on ARM

Ships a native ARM64 build, as every release from 0.6.58 on does.

---

*Windows downloads in this release are code-signed (Jenzer Innovations, via SSL.com). SmartScreen reputation still accrues from download volume, so an early download may still show a warning.*

macOS — Apple Silicon, signed and notarized. Installs on 0.6.59 will pick this up on their own.

*A Linux build for this release follows later.*

0.6.61

Local AI downloads work again

The first time you run a local AI Action, the app fetches a small runtime that runs Gemma on your machine. That download had been failing — the project it comes from changed how it publishes its builds, and the app was looking in a place that no longer had anything in it.

Anyone with the runtime already on disk never noticed. Anyone installing fresh hit a wall, with no way past it. Fixed.

The capture card stops crying wolf

"Webex is running" could appear when it wasn't. The check matched any program whose name merely contained those letters, and a Firefox helper process called *WebExtensions* was enough to trigger it. It now matches real meeting apps only.

Relatedly, "Recording will be auto-named from your calendar" no longer appears when no calendar is connected — there was nothing for it to read from, so the promise could not be kept. And when you use a local Outlook calendar rather than a subscribed one, the auto-naming now actually happens: the promise was shown but never kept for that half.

Linux

Local Transcript now runs on Linux, as a .deb and an AppImage.

Recording, system audio capture, transcription on the GPU, speaker identification, search and AI Actions all work. Settings secrets are encrypted at rest through the system keyring, the same guarantee Windows and macOS already had — and if the keyring is locked or missing, the app now refuses to save rather than quietly writing your keys to disk unencrypted.

Two problems that would have made the first Linux build unusable were caught before it shipped: the AI runtime could never finish installing, and the button that processes a meeting was permanently greyed out.

Windows on ARM

Ships a native ARM64 build, as every release from 0.6.58 on does.

---

*Windows downloads are not code-signed in this release, so Windows will show a SmartScreen warning on first run.*

0.6.59

This is the first macOS build since 0.6.56 — three releases' worth of work, and automatic updates on the Mac work again.

Live translation for multilingual meetings

Meetings that switch between languages can now be translated as they run. Translation is chosen where you already choose languages, decodes sentence by sentence rather than in fixed blocks, and lets you pick the target language. Everything stays on the machine, as ever.

Calibration: one measurement, one number

The old setup measured your machine several ways and reported several numbers, none of which answered the question people actually asked. It now runs one measurement and gives one number: roughly how long an hour of recording takes on this computer. The wizard's hardware step reads as a summary of checks that ran, rather than three buttons of unclear purpose, and "Skip for now" skips the install step instead of quietly closing the whole wizard.

The status dot stops crying wolf

The status dot no longer shows red at every launch, and the built-in self-test no longer fails on machines where nothing is wrong. Both were caused by the transcription engine being loaded on demand rather than at startup.

Recording without a microphone

Pressing Record with no microphone available used to do nothing at all, silently. It now says why. Where there is genuinely no microphone, system audio is recorded on its own instead of failing.

Diagnostics that tell the truth

Diagnostics now report the model and the backend that actually run, rather than what the build was compiled with. Any failure can be reported with its diagnostic log in one click, from the message that reports it. Engine names have been replaced with plain descriptions throughout.

Also

  • Settings that were adjustable from two places now have one owner each.
  • The quality preset no longer calls a Best setup "Custom".
  • Swiss German: the self-test no longer claims there is no lighter model for it. There is one, and it already handles live transcription; the full-size model is used only for the final full-quality pass.
  • Robustness fixes for how long transcription engines stay resident.

---

macOS — Apple Silicon, signed and notarized. Automatic updates resume with this build: 0.6.57 and 0.6.58 were Windows-only releases, which left the Mac update manifest unreachable. Installs on 0.6.56 will pick this up on their own.

Windows is unchanged by this release and keeps updating to 0.6.58.

0.6.58

Live translation for multilingual meetings

Meetings that switch between languages can now be translated as they run. Translation is chosen where you already choose languages, decodes sentence by sentence rather than in fixed blocks, and lets you pick the target language. Everything stays on the machine, as ever.

Calibration: one measurement, one number

The old setup measured your machine several ways and reported several numbers, none of which answered the question people actually asked. It now runs one measurement and gives one number: roughly how long an hour of recording takes on this computer. The wizard's hardware step reads as a summary of checks that ran, rather than three buttons of unclear purpose, and "Skip for now" skips the install step instead of quietly closing the whole wizard.

Recording without a microphone

Pressing Record with no microphone available used to do nothing at all, silently. It now says why. Where there is genuinely no microphone, system audio is recorded on its own instead of failing.

Native build for Windows on ARM

There is now a build compiled for ARM processors (Snapdragon X and similar) — no emulation layer. It installs alongside the regular version as a separate entry, and from this release it receives automatic updates like any other install.

Also

  • Swiss German: the self-test no longer claims there is no lighter model for it. There is one, and it already handles live transcription; the full-size model is used only for the final full-quality pass.
  • Settings that were adjustable from two places now have one owner each.
  • Robustness fixes for processor-only builds and for how long transcription engines stay resident.

---

Windows installs update automatically. This build is not code-signed, so a fresh download shows a SmartScreen warning: More info then Run anyway.

0.6.57

Fixes two problems that affected every installation, and one specific to Windows-on-ARM laptops.

  • The status dot no longer shows red at every launch, and the built-in self-test no longer fails on machines where nothing is wrong. Both were caused by the transcription engine being loaded on demand rather than at startup.
  • Fixed a crash during transcription on Snapdragon / Windows-on-ARM laptops, where the graphics driver is present but cannot actually run transcription.
  • Diagnostics now report the model and the backend that ACTUALLY run, rather than what the build was compiled with.
  • Any failure can now be reported with its diagnostic log in one click, from the message that reports it.
  • Clearer wording throughout: engine names replaced with plain descriptions.

A native ARM64 build is attached for Snapdragon laptops (Local.Transcript.ARM_0.6.57_arm64_en-US.msi). It is not delivered by the auto-updater; install it manually, and uninstall the x64 version first.

This release is not code-signed, so Windows SmartScreen will warn on install: More info -> Run anyway.

0.6.56

Local Transcript 0.6.56 for macOS (Apple Silicon). Signed with a Developer ID certificate and notarized by Apple.

A small release on top of 0.6.55, with one fix worth explaining.

The beta channel is now a superset of the stable one

If you were on the beta channel, the app used to poll the beta tag and nothing else. That meant a beta tester whose channel had fallen behind the public release was quietly stranded: the update check kept reporting "up to date" while stable moved ahead without them. That is exactly what happened at 0.6.55 — stable was 0.6.55 while the beta tag still served 0.6.54.

From 0.6.56 the app reads both channels and offers whichever is newer, so choosing beta can only ever get you updates *earlier*, never later. As a side effect, a brand that never published a beta tag now falls back to the stable channel instead of failing its update check outright.

The extra check is a second HTTP GET to the same release repository, no user data, and it is recorded in the in-app network audit log like every other outbound request. See docs/network-disclosure.md.

Everything from 0.6.55 is included — the local MCP meeting integration, the live-caption latency and language work, the dictation hotkey fixes, the privacy routing, and the performance pass.

Install

Download LocalTranscript_0.6.56_aarch64.dmg, open it, and drag Local Transcript into Applications.

Windows

Windows is unchanged by this release and keeps updating to 0.6.40 as before.

0.6.55

Local Transcript 0.6.55 for macOS (Apple Silicon). Signed with a Developer ID certificate and notarized by Apple, so Gatekeeper opens it without a warning.

Everything still runs on your machine: transcription, diarization, speaker matching, semantic search and summaries are all on-device.

Install

Download LocalTranscript_0.6.55_aarch64.dmg, open it, and drag Local Transcript into Applications. Existing installs update themselves.

Highlights since the last stable macOS build (0.6.42)

This is a large release — thirteen builds' worth of work. The main threads:

Local MCP meeting integration — your meetings are now reachable from an MCP client over a copyable loopback URL. The URL stays stable across restarts, search text is treated literally rather than as a pattern, the browser page follows your app language, and every audit line records the transport it arrived on.

Live captions — lower latency where measured throughput allows it, language seeded only on real evidence instead of on silence, mid-segment repetition loops truncated, and the multilingual language probe no longer starves the caption queue. Stopping a multilingual recording now delivers the transcript instead of silently dropping it.

Dictation — the global hotkey's registration lifecycle is verifiable and no longer fails silently; the overlay has the capability it needs to size itself, and Cmd is recorded correctly as a modifier.

Privacy — model downloads and language probes now route through net_guard, closing five outbound paths the first pass had missed.

Speed — ffmpeg PCM is streamed rather than buffered twice, live segments are decoded once instead of twice, the notes editor re-renders off the typing path, per-segment mixing moved off the webview thread, speaker clustering caches nearest neighbours instead of rescanning on every merge, and four redundant database indexes are gone.

Fewer surprises — deleting a meeting can now take its vault note with it; wiping the local Gemma install, deleting a voice sample and "Delete all data" all confirm first, then report progress and failures.

Languages — 83 strings that German, Spanish and Portuguese still shipped in English are translated, and 17 keys that existed in no locale file were added.

Also included is the groundwork for the iOS companion app, feature-flagged off in this build.

Windows

Windows is unchanged by this release and keeps updating to 0.6.40 as before.

0.6.42

LocalTranscript stable release (promoted from beta).

Windows (directml): 0.6.40

  • Accent-color theming fixes; mic auto-preview gated on granted permission; live transcription skips near-silent segments (LT-16).

macOS (Apple Silicon): 0.6.42

  • On-device transcription, diarization, speaker matching, semantic search, and Gemma summaries. Signed & notarized.
  • Model-download confirm routed through the in-app dialog.

Note: platforms ship at different versions this release -- the Windows lane was promoted from the 0.6.40 beta, macOS from the 0.6.42 beta.

0.6.31

0.6.31 - Markdown (Obsidian) vault sync; assign speakers by name only; transcription reliability fix; library performance (faster search + listing). OpenVINO installs now move to the standard build automatically.

0.6.29

Swiss German experimental, onboarding restructure (1.5-2 GB first-run), model guard, white-screen fix

Local Transcript v0.6.28

Swiss German routing fixes, live multilingual overhaul, CPU/dictation routing fix, dictation-after-stop, fast-segment debug controls.

Local Transcript v0.6.23

What's new in 0.6.23

  • Beta updates toggle — Settings → General → "Get beta updates". Opt in to receive pre-release builds earlier on a separate auto-update lane. Off by default; you can switch back anytime.
  • Developer build-speed improvements (no change to app behaviour).

Installers

  • directml — AMD / NVIDIA / general GPUs on Windows.
  • openvino — Intel Core Ultra (NPU / iGPU).

The auto-updater picks the right variant for each install automatically.

0.6.22

LocalTranscript 0.6.22

  • Fixes AI actions failing on machines with strict endpoint security (e.g. Cortex XDR): pinned AI runtime so it builds antivirus reputation, plus fast, clear errors and a re-download prompt if the model file gets quarantined.
  • Fixed a layout glitch where the mic-only warning could shift the app sideways.
  • Corrected the setup wizard's model download size totals.
  • Retired the post-transcription referral popup (the referral program is unchanged, on the License page).

0.6.21

LocalTranscript 0.6.21

  • Privacy + security hardening: Content-Security-Policy, self-hosted fonts, encrypted secrets at rest (DPAPI), a new 'Your data' panel, and safer file import/export.
  • Diagnostics are now opt-in: a first-run consent step, off by default. Nothing leaves your device unless you choose to share anonymous diagnostics.
  • Italian language support; Swiss German listed as coming soon.
  • Free plan now shows Pro features (visible but locked); disk-space check before recording; setup wizard polish.

0.6.20

LocalTranscript 0.6.20

  • Diagnostics reliability: clearer crash + performance reporting with quota-safe sampling (anonymous, EU-region, opt-out in Settings > Diagnostics > Privacy).
  • Under-the-hood performance instrumentation. No change to how the app records or transcribes.