Download VibeCody release packages below. All binaries are built via GitHub Actions with SHA-256 checksums.
Quick install (Linux/macOS):
curl -fsSL https://vibecody.online/dl/install.sh | sh
Package managers
Self-hosted — no submission to homebrew-core or community.chocolatey.org, so
availability tracks the release pipeline rather than third-party review.
Built by .github/workflows/release.yml’s publish-homebrew-tap,
publish-choco-feed and publish-linux-repos jobs (all downstream of the
main release job, all optional — a missing secret skips with a notice
rather than failing the release). Rendering scripts live in
scripts/packaging/.
Homebrew (macOS + Linux)
brew tap turingworks/vibecody
brew install vibecli # CLI + daemon, both platforms
brew install --cask vibecoder # desktop apps — macOS only, casks don't target Linux
brew install --cask vibedesk
brew install --cask vibeaichat
Tap source: TuringWorks/homebrew-vibecody,
regenerated each release by scripts/packaging/render_homebrew_tap.py
(verified locally with brew style/brew audit before every push — see that
script’s module docstring). Formula/cask files there are generated; don’t
hand-edit them.
apt (Debian/Ubuntu) and dnf (Fedora/RHEL)
Both are self-hosted, GPG-signed repos on the R2 mirror, served through vibecody.online/dl/ — vibecli as a
native .deb/.rpm (built with nfpm, since
only a tarball existed before this), plus every desktop app’s .deb/.rpm
that tauri-bundler already produces (the .rpm used to be built and
silently discarded — release.yml’s artifact-collection step never globbed
for it).
# apt — flat repository format, no dists/ tree
curl -fsSL https://vibecody.online/dl/apt/vibecody-repo.gpg | sudo gpg --dearmor -o /usr/share/keyrings/vibecody.gpg
echo "deb [signed-by=/usr/share/keyrings/vibecody.gpg] https://vibecody.online/dl/apt ./" | sudo tee /etc/apt/sources.list.d/vibecody.list
sudo apt update
sudo apt install vibecli vibecoder vibedesk vibeaichat # whichever you want
# dnf
sudo dnf config-manager --add-repo https://vibecody.online/dl/yum/vibecody.repo
sudo dnf install vibecli vibecoder vibedesk vibeaichat
Verified end-to-end locally (nfpm-built .deb/.rpm structure inspected by
hand, GPG clearsign + detached signatures round-tripped through gpg
--verify) against a throwaway test key — createrepo_c itself (the dnf
repodata generator) only runs in CI, since it isn’t packaged for macOS.
Chocolatey (Windows)
choco source add -n vibecody -s "https://vibecody.online/dl/choco/v3/index.json"
choco install vibecli -y
choco install vibecoder -y
⚠️ Unverified against a real choco.exe. The feed is a NuGet v3 static
layout (PackageBaseAddress flat-container only — no SearchQueryService,
so choco search isn’t expected to work against it, but choco install PACKAGE -y should resolve and download directly). The nuspec/install/uninstall
scripts were rendered and PowerShell-syntax-checked, but nothing in this
repo’s CI has run choco install against the live feed. If you hit a
problem, please file it — this is the one package-manager path here that
hasn’t been exercised end-to-end.
v0.5.19 — Latest
Released: October 11, 2026.
An Office-editing release: DOCX, XLSX and PPTX open and edit in place in VibeCoder, a browser-side Office engine and LibreOffice as a first-class engine, document RAG for the agent, and download links that go through vibecody.online/dl/.
Highlights
- Office documents, edited in place. DOCX paragraph and table-cell edits keep run styling; table rows can be inserted and deleted from the Word view; XLSX renders like Excel (palette, sheet view, text boxes, number formats, combo charts); PPTX keeps run styles and gains resolved styles, 3D charts, explicit font sizes and anchored Markdown editing.
- Browser Office engine. A WASM document engine (
packages/office-wasm) runs edits in a Worker, gated by a corpus test in CI. LibreOffice (soffice) is available as a first-class engine, including PDF/sheet rendering. - Document RAG. Workspace PDFs and Office files are indexed; the agent gets a
search_documentstool and an optional knowledge graph. The indexer refuses the home directory and filesystem root. - Providers. Perplexity moved to the Agent API; model lists refreshed and read from one catalog; vLLM, LM Studio and Apple Foundation Models appear in the toolbar.
- VibeCoder. Commit patch preview in the git diff view; PDF zoom no longer flickers; window dragging from the header restored; SQLite files open straight to the database tab; “Morning Briefing” is now “Daily Briefing”.
- Release pipeline. Downloads link through
vibecody.online/dl/so they are counted; a new updater signing key (stable releases fail without signed updater artifacts);finalizeverifies public downloadability once; the release page stays in step with R2; every deploy artifact starts the daemon with--serve.
Downloads: GitHub release. The R2 mirror uses the v0.5.19/ prefix.
Generated from what is on R2 for v0.5.19; updated 2026-10-12 12:15 UTC. A platform with no row is not published yet.
VibeCLI — Terminal AI Assistant
| Platform | Download |
|---|---|
| macOS (Apple Silicon) | vibecli-aarch64-apple-darwin.tar.gz |
| macOS (Intel, not notarized) | vibecli-x86_64-apple-darwin.tar.gz |
| Linux (x86_64) | vibecli-x86_64-linux.tar.gz |
| Linux (arm64) | vibecli-aarch64-linux.tar.gz |
| Windows (x86_64) | vibecli-x86_64-windows.zip |
VibeCoder — Desktop Code Editor
| Platform | Download |
|---|---|
| macOS (Apple Silicon) | VibeCoder_0.5.19_aarch64.dmg |
| macOS (Apple Silicon, .app) | VibeCoder-macOS-arm64.app.zip |
| macOS (Intel, not notarized) | VibeCoder_0.5.19_x64.dmg |
| macOS (Intel, .app, not notarized) | VibeCoder-macOS-x64.app.zip |
| Windows (installer) | VibeCoder_0.5.19_x64-setup.exe |
| Windows (MSI) | VibeCoder_0.5.19_x64_en-US.msi |
| Linux (x86_64, AppImage) | VibeCoder_0.5.19_amd64.AppImage |
| Linux (x86_64, deb) | VibeCoder_0.5.19_amd64.deb |
| Linux (arm64, AppImage) | VibeCoder_0.5.19_aarch64.AppImage |
| Linux (arm64, deb) | VibeCoder_0.5.19_arm64.deb |
VibeAIChat — Desktop AI Assistant
| Platform | Download |
|---|---|
| macOS (Apple Silicon) | VibeAIChat_0.5.19_aarch64.dmg |
| macOS (Intel, not notarized) | VibeAIChat_0.5.19_x64.dmg |
| Windows (installer) | VibeAIChat_0.5.19_x64-setup.exe |
| Windows (MSI) | VibeAIChat_0.5.19_x64_en-US.msi |
| Linux (x86_64, AppImage) | VibeAIChat_0.5.19_amd64.AppImage |
| Linux (x86_64, deb) | VibeAIChat_0.5.19_amd64.deb |
| Linux (arm64, AppImage) | VibeAIChat_0.5.19_aarch64.AppImage |
| Linux (arm64, deb) | VibeAIChat_0.5.19_arm64.deb |
VibeDesk — Desktop Task Shell
| Platform | Download |
|---|---|
| macOS (Apple Silicon) | VibeDesk_0.5.19_aarch64.dmg |
| macOS (Intel, not notarized) | VibeDesk_0.5.19_x64.dmg |
| Windows (installer) | VibeDesk_0.5.19_x64-setup.exe |
| Windows (MSI) | VibeDesk_0.5.19_x64_en-US.msi |
| Linux (x86_64, AppImage) | VibeDesk_0.5.19_amd64.AppImage |
| Linux (x86_64, deb) | VibeDesk_0.5.19_amd64.deb |
| Linux (arm64, AppImage) | VibeDesk_0.5.19_aarch64.AppImage |
| Linux (arm64, deb) | VibeDesk_0.5.19_arm64.deb |
VibeMobile — Flutter Companion
| Platform | Download |
|---|---|
| Android (AAB) | VibeCody-Mobile-v0.5.19-android.aab |
| Android (APK) | VibeCody-Mobile-v0.5.19-android.apk |
| iOS (unsigned — sideload via AltStore / Sideloadly) | VibeCody-Mobile-v0.5.19-ios.ipa |
VibeWatch — Apple Watch & Wear OS
| Platform | Download |
|---|---|
| watchOS 10+ (unsigned — sideload via Xcode) | VibeCody-WatchOS-v0.5.19.app.zip |
| Wear OS 3+ (AAB) | VibeCody-Wear-v0.5.19.aab |
| Wear OS 3+ (APK) | VibeCody-Wear-v0.5.19.apk |
Sandbox
| Platform | Download |
|---|---|
| Firecracker Tier-3 rootfs | vibecody-firecracker-rootfs-v0.5.19.ext4 |
| Firecracker rootfs checksum | vibecody-firecracker-rootfs-v0.5.19.ext4.sha256 |
| Firecracker rootfs cosign bundle | vibecody-firecracker-rootfs-v0.5.19.ext4.cosign.bundle |
SHA256SUMS.txt is published when the release completes.
v0.5.15
Released: September 30, 2026.
Adds charts and image/SVG editing to VibeCoder, tool_choice across providers, encrypted-store-first configuration, the Apple Foundation Models provider for macOS 27, and self-hosted Homebrew, Chocolatey and apt/dnf package feeds.
Highlights
- Charts and image editing in VibeCoder. Bar, line, pie and area charts; embedded OOXML charts in the document viewers; crop, rotate, resize and colour tools for images and SVG.
tool_choiceacross providers, with local-provider settings.- Configuration is stored encrypted first, with a TOML fallback and migration.
- Apple Foundation Models on macOS 27. The on-device model, run through
fm serve— no key, no download. Apple’s terms are accepted in Settings → Providers, never automatically. See the provider page. - Package managers.
brew,choco,aptanddnf— see Package managers.
Version numbers. Earlier attempts at this release were numbered 0.5.15 to 0.5.18 while the release pipeline was being fixed; none of them was ever published (no files reached R2), so the version is reset to 0.5.15 — the first release after v0.5.14. If you see a v0.5.16–v0.5.18 tag anywhere, it is a stale attempt.
macOS Intel is built, but not notarized. The Intel (x86_64) builds — CLI, VibeCoder, VibeDesk and VibeAIChat — are shipped alongside Apple silicon. They are ad-hoc signed and never submitted to Apple’s notary service, so a quarantined download needs xattr -dr com.apple.quarantine <App>.app on first launch (the Apple silicon builds are Developer ID signed and notarized when signing credentials are configured).
Release pipeline. Each build now publishes its own files to R2 as soon as it finishes — nothing waits for the other builds — and a build that fails can be retried for the same release, without a new version number. See Releasing below.
Downloads: GitHub release. The R2 mirror uses the v0.5.15/ prefix.
Generated from what is on R2 for v0.5.15; updated 2026-09-30 03:02 UTC. A platform with no row is not published yet.
VibeCLI — Terminal AI Assistant
| Platform | Download |
|---|---|
| macOS (Apple Silicon) | vibecli-aarch64-apple-darwin.tar.gz |
| macOS (Intel, not notarized) | vibecli-x86_64-apple-darwin.tar.gz |
| Linux (x86_64) | vibecli-x86_64-linux.tar.gz |
| Linux (arm64) | vibecli-aarch64-linux.tar.gz |
| Windows (x86_64) | vibecli-x86_64-windows.zip |
| Docker image (tarball) | vibecli-docker-v0.5.15.tar.gz |
VibeCoder — Desktop Code Editor
| Platform | Download |
|---|---|
| macOS (Apple Silicon) | VibeCoder_0.5.15_aarch64.dmg |
| macOS (Apple Silicon, .app) | VibeCoder-macOS-arm64.app.zip |
| macOS (Intel, not notarized) | VibeCoder_0.5.15_x64.dmg |
| macOS (Intel, .app, not notarized) | VibeCoder-macOS-x64.app.zip |
| Windows (installer) | VibeCoder_0.5.15_x64-setup.exe |
| Windows (MSI) | VibeCoder_0.5.15_x64_en-US.msi |
| Linux (x86_64, AppImage) | VibeCoder_0.5.15_amd64.AppImage |
| Linux (x86_64, deb) | VibeCoder_0.5.15_amd64.deb |
| Linux (arm64, AppImage) | VibeCoder_0.5.15_aarch64.AppImage |
| Linux (arm64, deb) | VibeCoder_0.5.15_arm64.deb |
VibeAIChat — Desktop AI Assistant
| Platform | Download |
|---|---|
| macOS (Apple Silicon) | VibeAIChat_0.5.15_aarch64.dmg |
| macOS (Intel, not notarized) | VibeAIChat_0.5.15_x64.dmg |
| Windows (installer) | VibeAIChat_0.5.15_x64-setup.exe |
| Windows (MSI) | VibeAIChat_0.5.15_x64_en-US.msi |
| Linux (x86_64, AppImage) | VibeAIChat_0.5.15_amd64.AppImage |
| Linux (x86_64, deb) | VibeAIChat_0.5.15_amd64.deb |
| Linux (arm64, AppImage) | VibeAIChat_0.5.15_aarch64.AppImage |
| Linux (arm64, deb) | VibeAIChat_0.5.15_arm64.deb |
VibeDesk — Desktop Task Shell
| Platform | Download |
|---|---|
| macOS (Apple Silicon) | VibeDesk_0.5.15_aarch64.dmg |
| macOS (Intel, not notarized) | VibeDesk_0.5.15_x64.dmg |
| Windows (installer) | VibeDesk_0.5.15_x64-setup.exe |
| Windows (MSI) | VibeDesk_0.5.15_x64_en-US.msi |
| Linux (x86_64, AppImage) | VibeDesk_0.5.15_amd64.AppImage |
| Linux (x86_64, deb) | VibeDesk_0.5.15_amd64.deb |
| Linux (arm64, AppImage) | VibeDesk_0.5.15_aarch64.AppImage |
| Linux (arm64, deb) | VibeDesk_0.5.15_arm64.deb |
VibeMobile — Flutter Companion
| Platform | Download |
|---|---|
| Android (AAB) | VibeCody-Mobile-v0.5.15-android.aab |
| Android (APK) | VibeCody-Mobile-v0.5.15-android.apk |
| iOS (unsigned — sideload via AltStore / Sideloadly) | VibeCody-Mobile-v0.5.15-ios.ipa |
VibeWatch — Apple Watch & Wear OS
| Platform | Download |
|---|---|
| watchOS 10+ (unsigned — sideload via Xcode) | VibeCody-WatchOS-v0.5.15.app.zip |
| Wear OS 3+ (AAB) | VibeCody-Wear-v0.5.15.aab |
| Wear OS 3+ (APK) | VibeCody-Wear-v0.5.15.apk |
Sandbox
| Platform | Download |
|---|---|
| Firecracker Tier-3 rootfs | vibecody-firecracker-rootfs-v0.5.15.ext4 |
| Firecracker rootfs checksum | vibecody-firecracker-rootfs-v0.5.15.ext4.sha256 |
| Firecracker rootfs cosign bundle | vibecody-firecracker-rootfs-v0.5.15.ext4.cosign.bundle |
v0.5.14
Released: September 14, 2026 (partial — see below).
This release is a hardening pass on the release pipeline itself plus targeted performance and correctness fixes in the shared agent loop and VibeDesk’s streaming path — no new user-facing feature.
Highlights
- The tool-call parser no longer allocates on ordinary prose. Every streamed reply used to run thinking removal, XML parsing, element parsing and JSON parsing even when the model was just talking — a fixed fast-path check (all supported tool dialects require
<or{) now returns immediately for anything else. Measured on the parser’s prose fixture: 36 allocations / 1,568 bytes → 0 per parse. - VibeDesk’s transcript replay is linear again, not quadratic. Reopening a saved conversation rebuilt the whole rendered list on every event with
slice/spread copies whose lengths summed to the size of the conversation squared. On a 12,000-event fixture, replay dropped from 120.97 ms to 0.624 ms (single-run, instrumented, not a wall-clock guarantee). - VibeDesk’s SSE line framing reuses one buffer instead of copying every chunk.
stream_agentandstream_approvalsnow borrow complete lines out of the HTTP chunk and only fall back to an owned buffer for a line split across chunks. On a 2,000-line coalesced-chunk fixture: 3,000 allocations / ~27 MB → 0.
Notable fixes
- A multibyte character split across two network chunks was silently dropped by VibeDesk’s old per-chunk decoder, which decoded UTF-8 before line assembly instead of after. The new framing decodes only complete lines, so a character split at any byte boundary survives — verified against every two-chunk split of a Unicode fixture.
- A release could publish with a broken VibeDesk build. The publish gate previously waited only on VibeCLI, VibeCoder and VibeAIChat; VibeDesk’s own build could fail and the release still shipped without it. VibeDesk is now a required job, same as the other three desktop apps.
- Release artifacts could be reported live before R2 actually had them. The pipeline now verifies each uploaded object’s size against the local build and checks public download availability (with a cache-bust and a propagation retry for R2’s CDN lag) before the release is considered complete — this is why this build shipped partial rather than silently pointing at missing files.
- The macOS arm64 and x64 updater archives could clobber each other. Tauri names
.app.tar.gzafter the product only, identically for both Mac architectures, and artifact collection merges every build leg into one directory — so the x64 upload could silently overwrite the arm64 one before either was published. Both are now renamed with their architecture on the way in.
Known gap: Linux builds for VibeCoder, VibeAIChat and VibeDesk are not yet available (VibeCoder is missing both Linux architectures; VibeAIChat and VibeDesk are missing Linux x86_64 only — their Linux arm64 builds are below). The Docker image also isn’t published for this tag. A follow-up fix for all of these is in progress; this page will be updated once they land. Every other platform below, and VibeCLI on all five platforms including Linux, is unaffected.
Downloads: GitHub release.
The R2 mirror uses the v0.5.14/ prefix. Signed updater manifests are generated
only when the Tauri signing secrets are configured; installer publication does
not imply that signed in-app updates are available.
VibeCLI — Terminal AI Assistant
| Platform | Download |
|---|---|
| macOS (Apple Silicon) | vibecli-aarch64-apple-darwin.tar.gz |
| Linux (arm64) | vibecli-aarch64-linux.tar.gz |
| macOS (Intel) | vibecli-x86_64-apple-darwin.tar.gz |
| Linux (x86_64) | vibecli-x86_64-linux.tar.gz |
| Windows (x86_64) | vibecli-x86_64-windows.zip |
VibeCoder — Desktop Code Editor
Linux is not available for this release (both x86_64 and arm64) — see the known gap above.
| Platform | Download |
|---|---|
| macOS (Apple Silicon, .app) | VibeCoder-macOS-arm64.app.zip |
| macOS (Intel, .app) | VibeCoder-macOS-x64.app.zip |
| macOS (Apple Silicon) | VibeCoder_0.5.14_aarch64.dmg |
| Windows (installer) | VibeCoder_0.5.14_x64-setup.exe |
| macOS (Intel) | VibeCoder_0.5.14_x64.dmg |
| Windows (MSI) | VibeCoder_0.5.14_x64_en-US.msi |
VibeAIChat — Desktop AI Assistant
Linux x86_64 is not available for this release — see the known gap above.
| Platform | Download |
|---|---|
| Linux (arm64, AppImage) | VibeAIChat_0.5.14_aarch64.AppImage |
| macOS (Apple Silicon) | VibeAIChat_0.5.14_aarch64.dmg |
| Linux (arm64, deb) | VibeAIChat_0.5.14_arm64.deb |
| Windows (installer) | VibeAIChat_0.5.14_x64-setup.exe |
| macOS (Intel) | VibeAIChat_0.5.14_x64.dmg |
| Windows (MSI) | VibeAIChat_0.5.14_x64_en-US.msi |
VibeDesk — Desktop Task Shell
Linux x86_64 is not available for this release — see the known gap above.
| Platform | Download |
|---|---|
| Linux (arm64, AppImage) | VibeDesk_0.5.14_aarch64.AppImage |
| macOS (Apple Silicon) | VibeDesk_0.5.14_aarch64.dmg |
| Linux (arm64, deb) | VibeDesk_0.5.14_arm64.deb |
| Windows (installer) | VibeDesk_0.5.14_x64-setup.exe |
| macOS (Intel) | VibeDesk_0.5.14_x64.dmg |
| Windows (MSI) | VibeDesk_0.5.14_x64_en-US.msi |
VibeMobile — Flutter Companion
| Platform | Download |
|---|---|
| Android (AAB) | VibeCody-Mobile-v0.5.14-android.aab |
| Android (APK) | VibeCody-Mobile-v0.5.14-android.apk |
| iOS (unsigned — sideload via AltStore / Sideloadly) | VibeCody-Mobile-v0.5.14-ios.ipa |
VibeWatch — Apple Watch & Wear OS
| Platform | Download |
|---|---|
| watchOS 10+ (unsigned — sideload via Xcode) | VibeCody-WatchOS-v0.5.14.app.zip |
| Wear OS 3+ (AAB) | VibeCody-Wear-v0.5.14.aab |
| Wear OS 3+ (APK) | VibeCody-Wear-v0.5.14.apk |
v0.5.12
Released: September 5, 2026
The latest release consolidates the daemon, desktop, mobile, watch and release-pipeline updates described below.
Highlights
- Full-duplex voice. The microphone stays open while the assistant speaks, and you can interrupt it mid-sentence. The whole pipeline — voice activity detection, turn-taking, transcription, the model call, synthesis — lives in the daemon, so a client contributes a microphone and speakers and nothing else. Measured end of speech to first audio: 134–158 ms, down from 1076 ms in the first build. Push-to-talk stays, because it is the right control for dictating a long prompt and the only one that works without echo cancellation.
- Any language you speak in. Detection runs every turn across 99 languages, the reply comes back in that language, and a voice that speaks it is chosen to read it. Code-switching mid-conversation is the normal case for multilingual speakers, not an edge case.
- A neural voice, and something that installs it. Kokoro-82M through MLX — 28 voices, 9 languages, Apache-2.0, Apple Silicon. Settings → Voice in all three shells picks the engine, language and voice, and
make voice-sidecar/make voice-kokoroinstall them. For most of this feature’s life nothing built the speech sidecar at all, so every spoken reply came from the slowest path in the system default voice. - A spoken turn can act. “Open that file” opens it in the editor rather than describing it, and the assistant can see the project you have open — the workspace, the file tree, the open file — which the typed chat path had always had and the voice path never did.
- Composers rebuilt. One
+menu replaces the row of permanent buttons across all three shells, controls are grouped by what they describe rather than listed, and the send button is no longer clipped out of a narrow sidebar. - Charcoal is the default theme, on every surface, including the first paint before any JavaScript runs. Existing installs keep the theme they chose.
- DOCX, EPUB and Pages documents open in the editor as documents, with EPUBs rendered as books.
- Every model gets its own context budget, read from its provider. The agent loop pruned history at a flat 200 000 tokens and the chat panel compacted at 80 000 characters; neither number had anything to do with the model in front of you, and both failed silently.
Notable fixes
- The voice assistant could not use a single one of the tools it was given — two independent defects, either sufficient on its own.
- It read its own reasoning aloud before answering.
- A question asked in Hindi was answered in fluent, correct English.
- Every
PUTandDELETEroute in the daemon was unreachable from every browser client: they were missing from the CORS method list, so the browser refused the preflight before sending and the caller saw a transport error with no status. - The git diff showed almost every line as added — the “before” side was reconstructed from the patch, which does not contain the unchanged file.
- VibeCoder rendered the voice controls with no stylesheet at all, for the whole life of the feature.
- Streamed replies re-parsed the entire transcript per token in two shells.
VibeCLI — Terminal AI Assistant
| Platform | Download |
|---|---|
| macOS (Apple Silicon) | vibecli-aarch64-apple-darwin.tar.gz |
| Linux (arm64) | vibecli-aarch64-linux.tar.gz |
| Docker image (tarball) | vibecli-docker-v0.5.12.tar.gz |
| macOS (Intel) | vibecli-x86_64-apple-darwin.tar.gz |
| Linux (x86_64) | vibecli-x86_64-linux.tar.gz |
| Windows (x86_64) | vibecli-x86_64-windows.zip |
VibeCoder — Desktop Code Editor
| Platform | Download |
|---|---|
| macOS (Apple Silicon, .app) | VibeCoder-macOS-arm64.app.zip |
| macOS (Intel, .app) | VibeCoder-macOS-x64.app.zip |
| Linux (arm64, AppImage) | VibeCoder_0.5.12_aarch64.AppImage |
| macOS (Apple Silicon) | VibeCoder_0.5.12_aarch64.dmg |
| Linux (x86_64, AppImage) | VibeCoder_0.5.12_amd64.AppImage |
| Linux (x86_64, deb) | VibeCoder_0.5.12_amd64.deb |
| Linux (arm64, deb) | VibeCoder_0.5.12_arm64.deb |
| Windows (installer) | VibeCoder_0.5.12_x64-setup.exe |
| macOS (Intel) | VibeCoder_0.5.12_x64.dmg |
| Windows (MSI) | VibeCoder_0.5.12_x64_en-US.msi |
VibeAIChat — Desktop AI Assistant
| Platform | Download |
|---|---|
| Linux (arm64, AppImage) | VibeAIChat_0.5.12_aarch64.AppImage |
| macOS (Apple Silicon) | VibeAIChat_0.5.12_aarch64.dmg |
| Linux (x86_64, AppImage) | VibeAIChat_0.5.12_amd64.AppImage |
| Linux (x86_64, deb) | VibeAIChat_0.5.12_amd64.deb |
| Linux (arm64, deb) | VibeAIChat_0.5.12_arm64.deb |
| Windows (installer) | VibeAIChat_0.5.12_x64-setup.exe |
| macOS (Intel) | VibeAIChat_0.5.12_x64.dmg |
| Windows (MSI) | VibeAIChat_0.5.12_x64_en-US.msi |
VibeDesk — Desktop Task Shell
| Platform | Download |
|---|---|
| Linux (arm64, AppImage) | VibeDesk_0.5.12_aarch64.AppImage |
| macOS (Apple Silicon) | VibeDesk_0.5.12_aarch64.dmg |
| Linux (x86_64, AppImage) | VibeDesk_0.5.12_amd64.AppImage |
| Linux (x86_64, deb) | VibeDesk_0.5.12_amd64.deb |
| Linux (arm64, deb) | VibeDesk_0.5.12_arm64.deb |
| Windows (installer) | VibeDesk_0.5.12_x64-setup.exe |
| macOS (Intel) | VibeDesk_0.5.12_x64.dmg |
| Windows (MSI) | VibeDesk_0.5.12_x64_en-US.msi |
VibeMobile — Flutter Companion
| Platform | Download |
|---|---|
| Android (AAB) | VibeCody-Mobile-v0.5.12-android.aab |
| Android (APK) | VibeCody-Mobile-v0.5.12-android.apk |
| iOS (unsigned — sideload via AltStore / Sideloadly) | VibeCody-Mobile-v0.5.12-ios.ipa |
VibeWatch — Apple Watch & Wear OS
| Platform | Download |
|---|---|
| watchOS 10+ (unsigned — sideload via Xcode) | VibeCody-WatchOS-v0.5.12.app.zip |
| Wear OS 3+ (AAB) | VibeCody-Wear-v0.5.12.aab |
| Wear OS 3+ (APK) | VibeCody-Wear-v0.5.12.apk |
Older builds are no longer listed here. For historical release artifacts, contact us.
Maintainer notes
Local macOS notarization setup
For an automated VibeCoder release, run make release-notarized-macos. On its
first run it prompts securely for missing Keychain credentials, then builds
with Developer ID, notarizes and staples the app, packages that stapled app
into a DMG with an Applications shortcut, notarizes/staples the DMG, and checks
Gatekeeper and the image checksum. Subsequent runs reuse Keychain. The final
DMG appears in target/release/bundle/dmg/ only after verification succeeds.
For another desktop shell use
bash scripts/release-notarized-macos.sh vibedesk (or vibeaichat).
Install a Developer ID Application certificate with its private key in
macOS Keychain, then run make notarize-setup in Terminal. The setup detects
the certificate’s team and uses Apple’s secure prompts for your Apple ID and
app-specific password. Create that password at https://account.apple.com;
do not put it in shell commands, environment files, or this repository.
Credentials are validated and stored in the vibecody Keychain profile.
Run make notarize-check to validate access. Then rebuild with make build-ui
(or make build-aichat / make build-vibedesk) to apply the Developer ID
signature, and run make notarize-macos to submit the built app/DMG artifacts
to Apple and staple accepted tickets. make notarize-verify checks Gatekeeper.
Notarization is a separate step; configuring Keychain does not set Tauri’s
Apple credential environment variables or suppress its skip warning.
An existing ad-hoc-signed DMG must be rebuilt before submission; signing only
the outer image does not fix the signature on its embedded app.
NOTARY_PROFILE can select a different Keychain profile for all three
notarization commands. If several Developer ID certificates are installed,
set APPLE_SIGNING_IDENTITY to choose the intended identity.
Local installer builds
make build-ui, make build-aichat, and make build-vibedesk generate
installers without updater archives when TAURI_SIGNING_PRIVATE_KEY is absent.
To build signed updater archives, export the existing matching private key and
its password before building. Apple Developer ID signing is separate.
Releasing and retrying a failed build
The pipeline (.github/workflows/release.yml) is a set of independent legs — one per (component, platform), listed in scripts/release-plan.py. Each leg builds, copies its files to R2 (.github/actions/publish-leg), checks their size on R2, and only then writes a marker (<tag>/.meta/legs/<leg>.done). Nothing waits for any other leg.
A final finalize job counts those markers. No package is privileged: every build runs and publishes on its own, so one failure never stops another from building or shipping. When every leg is published, finalize writes SHA256SUMS.txt, install.sh, latest.txt and the updater manifests, un-drafts the GitHub Release, and the Homebrew / Chocolatey / apt-dnf jobs run. If any leg is missing, finalize fails, lists exactly which ones, and prints the command to rebuild only those — so the workflow is build everything, see what failed, fix it, rebuild the failed legs. The root pointers (latest.txt, the updater manifests) only advance when the release is complete, so a half-published release is never what curl | sh or the in-app updater picks up. To finish a release anyway with a leg still missing, dispatch with -f only=finalize -f partial=true.
Start a release (creates the tag at the built commit — do not pre-create it):
gh workflow run release.yml -f tag=v0.5.15 -f ref=main
Retry a failed leg — same tag, same version:
gh workflow run release.yml -f tag=v0.5.15 -f ref=<fixed-commit-or-branch> -f only=vibecoder-Windows-x64
refmay be a fixed commit: the artifacts are built from it and published under the same tag. It must carry the tag’s version inCargo.toml; a mismatch is refused, and so is a tag that already exists at a different commit.partial=true(withonly=finalize) completes the release with the legs that are published and lists the rest.onlytakes leg ids, groups (cli,desktop,vibecoder,mobile,watch), single jobs (docker,firecracker, …), orfinalizeto re-check completeness without building anything. An unknown name is an error, so a typo cannot pass as a successful retry.- Legs that already published are not rebuilt. GitHub’s Re-run failed jobs on the original run also works.
In-app updates
VibeCoder, VibeDesk and VibeAIChat each check Settings → Updates against a
per-app manifest on the R2 mirror (<app>-latest.json at the bucket root,
e.g. https://vibecody.online/dl/vibecoder-latest.json)
and, on confirmation, download and install the update via tauri-plugin-updater.
Every update artifact is signed with a minisign keypair (tauri signer
generate); the public half lives in each app’s tauri.conf.json
(plugins.updater.pubkey), and the app refuses anything that doesn’t verify
against it — a compromised mirror can serve garbage, not a trusted update.
scripts/setup-updater-key.sh generates the keypair, patches every tauri.conf.json and prints the two gh secret set commands; --check verifies the configs agree and the secrets exist. On TuringWorks/vibecody a stable release with no signed updater artifacts now fails the manifest step instead of skipping it.
To make CI actually sign releases, add two repository secrets:
TAURI_SIGNING_PRIVATE_KEY— the private key’s contents (tauri signer generate -w PATH, then the file’s contents).TAURI_SIGNING_PRIVATE_KEY_PASSWORD— the password chosen when generating it.
Without them, .github/workflows/release.yml still builds and publishes
normally — the shared scripts/tauri.mjs wrapper disables updater artifact generation
when TAURI_SIGNING_PRIVATE_KEY is absent, and Generate and mirror updater manifests
logs a notice and skips whichever app has no signed artifacts, rather than
publishing a manifest nothing can install. Losing the private key means past
releases can no longer be superseded by a signed one; there’s no recovery
short of shipping a new keypair (and a new pubkey in every tauri.conf.json)
and asking users to reinstall by hand once.
The manifest only advances on a stable tag (same -rc/-beta gate as
latest.txt), so a prerelease build is never offered as “the” update.