Claude Desktop 1.14271.0
Claude Desktop 1.14271.0
This release provides Claude Desktop version 1.14271.0 pre-patched for Linux.
Installation Options
Arch Linux (AUR)
yay -S claude-desktop-binDebian/Ubuntu (APT Repository — recommended)
curl -fsSL https://patrickjaja.github.io/claude-desktop-bin/install.sh | sudo bash
sudo apt install claude-desktop-binDebian/Ubuntu (manual .deb)
# x86_64
sudo apt install ./claude-desktop-bin_1.14271.0-1_amd64.deb
# ARM64
sudo apt install ./claude-desktop-bin_1.14271.0-1_arm64.debFedora/RHEL (RPM Repository — recommended)
curl -fsSL https://patrickjaja.github.io/claude-desktop-bin/install-rpm.sh | sudo bash
sudo dnf install claude-desktop-binFedora/RHEL (manual .rpm)
# x86_64
sudo dnf install ./claude-desktop-bin-1.14271.0-1.x86_64.rpm
# ARM64
sudo dnf install ./claude-desktop-bin-1.14271.0-1.aarch64.rpmNixOS / Nix
nix run github:patrickjaja/claude-desktop-binAppImage (Any Distro)
# x86_64
chmod +x Claude_Desktop-1.14271.0-x86_64.AppImage
./Claude_Desktop-1.14271.0-x86_64.AppImage
# ARM64
chmod +x Claude_Desktop-1.14271.0-aarch64.AppImage
./Claude_Desktop-1.14271.0-aarch64.AppImageUpdate existing AppImage (delta download — only changed blocks):
appimageupdatetool Claude_Desktop-*-x86_64.AppImage # Or from within the AppImage: ./Claude_Desktop-*-x86_64.AppImage --appimage-update
Checksums
| File | SHA256 |
|---|---|
| Tarball (x86_64) | 1df9c89d3b2650e6ba6ba7cd7fff5d2af35a885dd54b58fc84cec32ed1fe50c2 |
| Tarball (aarch64) | 531e9ecaa5bd53a4b8b4bdf6d08cde7232e90810c9b524bd6405d9e8ddcdd688 |
| AppImage (x86_64) | 78bde2e7d0c85bb0b7d4756d7414ca5a75a54faae56b8b20597e1f703706e899 |
| AppImage (aarch64) | 3b7b53a205facca17054f583afdfeebb32fb2ba19e3e7aa2fe073c3e8772f534 |
| Debian (amd64) | 1ac1d0eace381151bb565f59d8c1523dacd802322600ca75398b12f6d0409aa1 |
| Debian (arm64) | 4378cd36a01febb03b285143daa4bd40f59776de816a43e2455be86665cce781 |
| RPM (x86_64) | 16869a79258288cacbadf4a13d417a70d47106b78410cd752b738054a09491c7 |
| RPM (aarch64) | 053b8352afdb9ad57437ba339fea50e73c5efaf2b452f3ee18e6f521aed5c72e |
Changes since last release
Upstream (v1.14271.0) - 2 patches fixed, all 52 apply
- Version bump v1.13576.4 -> v1.14271.0 (~700 builds, full re-minify). Routine re-minify release for Linux: no new platform gates lock out a Linux feature, no new native modules, no new built-in MCP servers, and the Cowork RPC contract is unchanged in both directions. Two patches needed work for the re-minified bundle.
fix_cowork_linux: fixed C2's idempotency backreference. The C2 "bundle lookup alias" fallback asserts upstream's hardcoded-win32 VM-bundle lookup ((<var>=<map>.files["win32"])!=null&&<var>[arch]) is present, but the deref var was hardcoded as literalr; re-minify renamed itr->i, so the assertion stopped matching and C2 reported FAIL. Now captures the deref var and backreferences it so it tracks the rename.fix_browser_tools_linux: rewrote 3 sub-patches for a real upstream refactor. The Chrome native-host install path was restructured, not just renamed: the per-browser install loop is gone, and the manifest is now written to a singleuserData/ChromeNativeHostdir on all platforms (which Chrome/Chromium never read on Linux), while the per-browser enumerator became uninstall-only. The binary-path resolver and Chrome user-data-dir lookup likewise collapsed to flat win-only forms. Rewrote Patch A (binary path: inject Linux~/.claude/chrome/chrome-native-hostshort-circuit), Patch B (reuse the manifest writer to install into all 6 real LinuxNativeMessagingHostsdirs at the start of the installer), and Patch C (return the 5 Linux browser user-data dirs). This native-host area is structurally volatile - watch it on the next release.- No baseline-doc internals moved structurally beyond the usual minified-name churn; flag/ion-dist/platform-gate baselines updated with the new function names, config-chunk hash, and gate counts (see below).
enable_local_agent_mode.nim(all 25 sub-patches) andfix_ion_dist_linux.nimapply unchanged.
New patch: suppress the false "Download a one-time package" agent-mode banner on Linux native
- New
fix_cowork_download_status_linux.nim(52 patches total): the Cowork "Get set up for agent mode - Download a one-time package" banner no longer appears on Linux in native backend mode. Desktop decides the agent-mode VM-image download status locally (it stopped calling the daemon RPC for this in v1.7196.0) viagetDownloadStatus(){return ...?Downloading:p5()?Ready:NotDownloaded}, wherep5()looks for theclaudevm.bundleVM image on disk. On Linux native there is no VM image (Cowork runs theclaudeCLI on the host via claude-cowork-service), so the check always reportedNotDownloadedand the remote claude.ai UI rendered a misleading "you're not set up" banner - even though Cowork works (sessions spawn and turns complete behind the banner). The patch rewritesgetDownloadStatusso Linux native returns the enum'sReady; the original expression is preserved byte-for-byte for win32/darwin and Linux-KVM, where the guest image genuinely must be downloaded. Gated onprocess.platform==="linux"&&!globalThis.__coworkKvmMode(the KVM flag the cowork mode preamble already sets), so it never suppresses a legitimate KVM download prompt. Not 3p/enterprise-specific - it applies to 1p and 3p alike; it was first noticed in a gatewayenterprise.jsonsetup but a plain 1p Linux native user hits the identical false banner. Anchored on the uniquegetDownloadStatus(){return ...}method with the enum var captured by backreference (verified to survive the v1.14271.0 re-minify:xX/p5/eN->Z5/Rz/mM); idempotency asserts the patched end-state.
Forward-looking audit fixes (patches + CI hardening, verified against v1.13576.4)
A full audit of patches/docs/CI against the current bundle found the suite healthy (51/51 apply, Cowork contract intact in both native and KVM modes, no new Linux gaps). Four items were worth fixing, all low-risk:
fix_quick_entry_ready_wayland: fixed a latent runtime bug. The replacement hardcoded a logger (R.error) that does not exist at the patched call site (the live logger isS); the patch applied cleanly and passednode --check, but a rejected ready-to-show promise would throw a ReferenceError in the very catch meant to swallow it. Now captures and reuses the upstream logger var + catch param so it survives re-minifies.fix_imagine_linux: retargeted Patch C to the renamed flag. The Visualize/Imagine CCD gate2204227020was renamed to3516166472upstream, so Patch C had silently become a no-op (its standalone uses, including theread_widget_contexttool registration, were no longer forced ON). Retargeted to the new ID. Also rewrote the Patch B/C idempotency checks to assert the patched end-state and fail loudly if the flag disappears, instead of treating flag-absence as success.fix_native_frame_renderer: converted to a regression guard. Upstream upstreamed the fix (the main-window title-bar component now returnsnullnatively), so the patch had been silently no-opping via an accidental guard. It now positively asserts the upstream null short-circuit and fails the build if a future release reintroduces the pointer-absorbing drag region.- CI: glibc floors are now enforced, not just logged. The node-pty rebuild asserts the GLIBC_2.31 floor (Debian 11 / Ubuntu 22.04) and fails loudly instead of silently shipping an un-rebuilt binary when version detection fails; the aarch64 kwin-portal-bridge gained the same objdump-based GLIBC_2.39 gate the x86_64 binary already had.
Docs: added the missing fix_open_in_editor_linux row to the README patch table and corrected the obsolete fix_native_frame_renderer row; noted the 2204227020 -> 3516166472 rename and fixed contradictory version headers in CLAUDE_FEATURE_FLAGS.md. CLAUDE.md gained a strictness rule forbidding false-success reporting - an "already patched" line must assert the patched end-state, never the mere absence of the pre-patch pattern.
Upstream (v1.13576.4) - build bump, no patch work
- Version bump v1.13576.1 -> v1.13576.4 (patch-level rebuild of build 13576, hash
414f858c). Re-minify only; bundle functionally identical. - All 52 patches apply unchanged. Package built cleanly;
node --checkpasses. The lone validator "FAIL" (fix_ion_dist_linux) is a manual-extract artifact - ion-dist lives in the MSIX resources, notapp.asar; the patch applies fine against the extracted SPA. - No semantic changes vs v1.13576.1: platform-conditional counts (linux 10, darwin 77, win32 +1 vendored path helper), Agent SDK copies (0.3.174 / 0.3.177), built-in MCP servers (1), and all fragile anchors are unchanged - the diff is pure minified-identifier churn.
- No baseline-doc changes. Bumped
.upstream-version-> 1.13576.4.
Built-in terminal fixed (re: #143)
- New
fix_terminal_shell_linux.nim(51 patches total): the built-in agent/Cowork terminal now spawns a Linux shell instead of PowerShell. Upstream hardcodes the node-pty shell topowershell.exeon every platform, so on Linuxexecvp(3)fails and the PTY dies instantly ("Shell exited." / exit code 1). The patch rewrites only the shell string into a platform-aware ternary, anchored on the soleshell:"powershell.exe"occurrence. Thanks to Yannick Schäfer (@boommasterxd) for the fix (#144). - Off-Windows shell selection falls back
$SHELL→/bin/bash→/bin/sh. The/bin/shtier was added on top of the PR for NixOS (Nix flake target), which ships no/bin/bashby default; a runtimerequire("fs").existsSynccheck keeps the PTY from going dead when$SHELLis unset.