github patrickjaja/claude-desktop-extra v1.34493.1
Claude Desktop 1.34493.1

one hour ago

Claude Desktop 1.34493.1

This release provides Claude Desktop version 1.34493.1 pre-patched for Linux.

Installation Options

Arch Linux (pacman Repository - recommended)

curl -fsSL https://patrickjaja.github.io/claude-desktop-extra/install-pacman.sh | sudo bash
sudo pacman -Syu claude-desktop-extra

Arch Linux (manual package)

# x86_64
sudo pacman -U https://github.com/patrickjaja/claude-desktop-extra/releases/download/v1.34493.1/claude-desktop-extra-1.34493.1-1-x86_64.pkg.tar.zst
# ARM64
sudo pacman -U https://github.com/patrickjaja/claude-desktop-extra/releases/download/v1.34493.1/claude-desktop-extra-1.34493.1-1-aarch64.pkg.tar.zst

Debian/Ubuntu (APT Repository — recommended)

curl -fsSL https://patrickjaja.github.io/claude-desktop-extra/install.sh | sudo bash
sudo apt install claude-desktop-extra

Debian/Ubuntu (manual .deb)

# x86_64
sudo apt install ./claude-desktop-extra_1.34493.1-1_amd64.deb
# ARM64
sudo apt install ./claude-desktop-extra_1.34493.1-1_arm64.deb

Fedora/RHEL (RPM Repository — recommended)

curl -fsSL https://patrickjaja.github.io/claude-desktop-extra/install-rpm.sh | sudo bash
sudo dnf install claude-desktop-extra

Fedora/RHEL (manual .rpm)

# x86_64
sudo dnf install ./claude-desktop-extra-1.34493.1-1.x86_64.rpm
# ARM64
sudo dnf install ./claude-desktop-extra-1.34493.1-1.aarch64.rpm

NixOS / Nix

nix run github:patrickjaja/claude-desktop-extra

AppImage (Any Distro)

# x86_64
chmod +x Claude_Desktop-1.34493.1-x86_64.AppImage
./Claude_Desktop-1.34493.1-x86_64.AppImage
# ARM64
chmod +x Claude_Desktop-1.34493.1-aarch64.AppImage
./Claude_Desktop-1.34493.1-aarch64.AppImage

Update 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
Arch pacman (x86_64) acd0b4f838eca23294b467b3eb58fdfd15fd05e0bb1c3339a675eacd2c3e49e2
Arch pacman (aarch64) 9edd153e9f1096044a7d9a99e86ba7e34997af3db3da2f3e1874a229f887fb5a
Tarball (x86_64) 721a6f1a3711b13b98d9d17e463f56fe6d52ff86a218daab0734acc68dcb2017
Tarball (aarch64) f9d3db2bb84526764bc0e29f075d1f10fab6839c6d2721df09a329244833ec23
AppImage (x86_64) 82e14f5a5a3ea8aace539f4ac9e989bc186514c0c0e68736741f59a729f197c1
AppImage (aarch64) bb9058f5b1b1d56bb5a7678f901a59ed50407c625a580dcb0f1759f9c8825314
Debian (amd64) 303d719d6306e4f155313b57d090d44469d23446f4b002932f40a38da8bed493
Debian (arm64) d6c72f380f5e53913531f43c481d92ed413e8915962b85264eb5fee3625bc806
RPM (x86_64) a8c5a7f5b851eb70aed7db1bdaf2606b72f3706052aa7d5659f27a3da21b3571
RPM (aarch64) 89c5d1235e4bef7777ab3c10cc6028c387800993c805f3aeccacfd01565c25bd

Changes since last release

From CHANGELOG.md, 2026-08-22:

Claude Desktop v1.34493.1

All 43 patches apply. Only one needed re-fitting - add_growthbook_overrides (below) - and the full audit came back clean: no new darwin/win32 gate lacks Linux support, no new native module, Electron stays 42.9.2, and the four bundled native artifacts are byte-identical. Upstream still ships no native Linux Computer Use executor, so our CU patch stays load-bearing.

Notable upstream additions, none of which intersect our patch sites: SSH remote sessions with reattach, Design PDF export (a new designWindow.js preload), an Artifact "host tools" MessagePort bridge, Claude in Chrome local pairing / Remote Control, scratch workspaces and worktrees, workspace cwd-trust prompts, and scheduled-task folder grants. Local PR creation was removed from the desktop app in favour of a cloud-session path. The dangerous-switch startup blocklist grew from 2 entries to 16 (--disable-web-security, --ignore-certificate-errors, …) - none of our launcher flags collide, but a user passing one of those now gets a hard exit with a message on stderr.

Two features worth knowing about that stay macOS-only by construction: watch-record (the "show Claude how to do it" demonstration recorder) grew from a stub into a full Electron-side controller, but its InputRecorder provider is pruned to Promise.resolve(null) in the Linux bundle, so widening its platform gate would achieve nothing - a real port means writing a global input recorder from scratch. violinBow is hardcoded unavailable on every platform. The new coworkThinkingInSend capability is unconditionally supported and works on Linux as-is.

Baselines re-validated: feature flags (+14/-2 flag IDs, registry 57 -> 59, all three override layers intact), built-in MCP (the ccd_directory server gained a change_directory tool), ion-dist (partial rebuild, both fix_ion_dist_linux targets still found by content signature), platform gates (darwin 88, win32 147, linux 20). The managed-settings deploy catalog gained claudeInChromeEnabled (109 keys).

Correction to the v1.32885.1 notes: bootPlaceholder was not removed - it is still a registry entry and a zod key, carrying {status:"unsupported"} in both builds.

Computer Use no longer freezes the app when the GNOME portal bridge stops answering (#232)

Reported on Ubuntu 26.04 / GNOME Wayland: Computer Use locked the whole app until the OS offered "Force Quit or Wait". The bridge itself was not answering, but what turned that into a freeze was ours - every bridge call on the capture and input paths was a blocking execFileSync, and a failed session-start left no memo, so each action re-paid the full bill: screens (15 s) + session-start (30 s) + the command itself (30 s), and the next click did it all again.

  • The screenshot path is async end to end. It was already an async function awaiting an async caller, so nothing was gained by blocking - it now uses execFile throughout and cannot stall the main process at all.
  • A failed portal session is latched for 60 seconds. Input and capture fail immediately with a message naming the portal and pointing at the bridge command to run by hand, instead of blocking on a session that just failed. A fresh Computer Use lock clears the latch, so a real retry - consent dialog and all - still happens on the next user gesture.
  • The synchronous session-start backstop is capped at 8 s (was 30). It only fires when a portal command beats the lock hook; waiting out a consent dialog belongs to the async lock path, which keeps the full 30 s budget. One failed click now costs at most 8 s of blocking, once, instead of two minutes, repeatedly.
  • No x11-bridge fallback on a covered Wayland session. Under a rootless XWayland server the X root window holds nothing, so zoom there can only answer BadMatch - which is exactly the confusing error the report ended on. The covered cascade now goes straight to the desktopCapturer last resort, matching what the diagnostics line has always advertised. Exotic (uncovered) Wayland compositors keep their x11-bridge tier.
  • An empty bridge monitor list is now called out in the log, because it means the capture region is sent in global coordinates with no --display - wrong on any multi-monitor layout.
  • claude-desktop --diagnose gains a GNOME Wayland section: GNOME Shell and PipeWire versions plus a timed, portal-free gnome-portal-bridge screens self-test. There was only a KDE self-test before, so a GNOME report could not show whether the bridge worked.

New harness scripts/tests/linux/test-cu-nonblocking.mjs (18 assertions) pins all of it against the real executor with child_process stubbed - the screenshot path spawning nothing synchronously, the latch costing zero spawns, the exotic-Wayland tier surviving, and the sync budget staying click-sized. scripts/tests/linux/ is a new third test category.

Packages are ~5 MB smaller

v1.34493.1 ships a V8 bytecode compile-cache inside app.asar. We patch two of the three files it covers, so 5.04 MB of the 5.05 MB is guaranteed rejected at load - dead weight in every artifact plus a pointless read at startup. The build now drops it before repacking. V8 validates the cache against the source and recompiles on mismatch, and upstream already handles the directory being absent, so nothing changes at runtime.

add_growthbook_overrides re-fitted for Claude Desktop v1.34493.1

Upstream reshaped the features-store setter: it now takes a second (source/status) parameter, drops the dirty flag, and routes the stored value through the deployment-mode hardcoded-features filter, which used to be a separate load path calling the setter. Sub-patch B now wraps that transform call instead of reassigning the raw parameter, so overrides still apply to the map that is actually stored - the same layering as before (user override > any rollout). Anchor unchanged: the [growthbook] loaded %d features (%d changed) log line.

Contributed by @dels07 in #231.

Links

Don't miss a new claude-desktop-extra release

NewReleases is sending notifications on new releases.