Vibe 3.2.2 keeps transcription local on three desktop systems
Vibe 3.2.2 is a Tauri desktop app for Windows, macOS, and Linux. It transcribes audio or video with local Whisper, Parakeet TDT v3, or Nemotron 3.5 models, so the recording can stay on the machine. The interface handles microphone and system audio, batch files, live preview, speaker diarization, and export to SRT, VTT, TXT, HTML, PDF, JSON, or DOCX. That is far more approachable than assembling a model runner and subtitle editor by hand.
Local transcription does not make every feature offline. Vibe can send transcript text to the Claude API for summaries, or use Ollama for local analysis and batch summaries. Our 15.7 MB checkout contained 786 files and about 61,698 source lines, reflecting a desktop UI, Rust application code, and a separate server workspace. Privacy-conscious users should choose the summary path deliberately and verify which optional services they enable. The transcription engine itself does not require a hosted speech API.
What happened when we ran it
Our sandbox ran the root pnpm install in 37 seconds. It installed 3 packages and occupied 32 MB on disk. The checkout was commit 25f33a2 in a fresh unprivileged Debian container with 3 CPUs, 8 GB of RAM, Node 22 as the base image, and no secrets. Installation succeeded, but this root package contains formatting and TypeScript checking tools rather than the complete desktop dependency set.
The harness skipped the build because the root package had no build script or target. It skipped tests for the same reason: there was no root test script or target. Those are measured absences, not failures and not passing results. Our scan found 7 CI workflow files, no Dockerfile, and no tests directory. We did not launch Vibe, download a speech model, compile the Rust workspaces, or measure transcription accuracy or speed, so the 37-second install should not be read as application setup time.
A source build needs four tools plus native libraries
The documented developer path starts with pnpm, uv, Cargo, and the chore task runner. Linux adds Tauri's native packages plus ALSA, xdo, and appindicator bindings; macOS asks for Xcode. Both development and production tasks begin with a setup step that downloads the server sidecar pinned in .server-version. Building the in-tree engine adds prebuilt ggml libraries and a separate Rust workspace. The 3-package root install covers only a thin layer of that route.
This split is sensible for release users because the desktop bundle owns a local vibe-server process. It complicates source verification. The repository's 786 files span the React frontend, Tauri shell, local engine, website, translations, and release machinery. A meaningful contributor check needs the documented chore ci, frontend Vitest command, Rust tests, type checks, and platform packaging. Our lab's missing root targets mean none of those deeper checks ran, despite the successful 37-second pnpm step.
One server process accepts one transcription at a time
The bundled Rust server exposes an OpenAI-compatible HTTP API and can choose a free local port by starting with port 0. It loads and unloads models at runtime, uses ffmpeg for non-WAV input, and is designed to be started by another application rather than operated as a permanent service. The server documentation states that 1 transcription runs at a time per process; an overlapping request returns HTTP 429. Open issue 1546 asks for concurrent CPU transcription, so concurrency is a request rather than current behavior.
That limit barely matters to one person dropping recordings into the desktop app. It matters immediately in a shared API, meeting bot, or team queue. Multiple processes could be an architectural option, but the project does not document shared scheduling in the material we read. Our 3-CPU sandbox never exercised the endpoint, so it produced no concurrency or latency result. If several users need predictable service, benchmark a dedicated transcription server and treat Vibe's API as an embeddable local interface.
Stable timestamps trade roughly 4x more time for tighter cues
Subtitle work gets unusually specific controls. Stable-timestamp mode uses a VAD model and is documented as typically around 4x slower than normal transcription, with tighter timing for long-form video. Vibe can limit caption length for short video, translate supported Whisper models into English, print transcripts, and export seven named formats. Translation excludes Whisper large-v3-turbo; the install notes direct users to small, medium, or large instead. These boundaries are useful because the largest-looking model name is not automatically the right selection.
Hardware acceleration covers CoreML or Metal on macOS and Vulkan on Windows and Linux, but a supported label cannot represent every driver. Open issue 1548 documents Windows process exits when vulkan-1.dll is absent, including fresh v3.1.6 installations with GPU use turned off. Issue 1529 reports a KDE Wayland launch failure on Garuda Linux. The repository had 7 CI workflows, yet desktop buyers should still test the released package, driver, model, and display server combination they intend to support.
Same-day v3.2.2 work shows speed and fresh breakage
GitHub recorded the last push on September 5, 2026, and v3.2.2 was released the same day with signed and notarized macOS and Windows builds. The repository had 7,332 stars and 141 combined issues and pull requests when fetched. Recent activity included release changes, Windows ARM64 work, server formatting, sidecar packaging fixes, and several new runtime reports. That is an active project with active bug traffic, rather than a quiet codebase whose issue number only grows.
Fast maintenance is welcome, but it also asks users to pay attention to point releases. The day before v3.2.2, issue 1541 described a v3.2.1 server crash during transcription on an older Intel Mac, with a ggml Metal assertion in the log. Our 32 MB root install did not touch those native paths. For a newsroom or support desk, stage upgrades on representative hardware and retain the previous installer until the current model and export workflow has been checked.

