Claude Desktop 2.2553.1
This release provides Claude Desktop version 2.2553.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-extraArch Linux (manual package)
# x86_64
sudo pacman -U https://github.com/patrickjaja/claude-desktop-extra/releases/download/v2.2553.1/claude-desktop-extra-2.2553.1-1-x86_64.pkg.tar.zst
# ARM64
sudo pacman -U https://github.com/patrickjaja/claude-desktop-extra/releases/download/v2.2553.1/claude-desktop-extra-2.2553.1-1-aarch64.pkg.tar.zstDebian/Ubuntu (APT Repository — recommended)
curl -fsSL https://patrickjaja.github.io/claude-desktop-extra/install.sh | sudo bash
sudo apt install claude-desktop-extraDebian/Ubuntu (manual .deb)
# x86_64
sudo apt install ./claude-desktop-extra_2.2553.1-1_amd64.deb
# ARM64
sudo apt install ./claude-desktop-extra_2.2553.1-1_arm64.debFedora/RHEL (RPM Repository — recommended)
curl -fsSL https://patrickjaja.github.io/claude-desktop-extra/install-rpm.sh | sudo bash
sudo dnf install claude-desktop-extraFedora/RHEL (manual .rpm)
# x86_64
sudo dnf install ./claude-desktop-extra-2.2553.1-1.x86_64.rpm
# ARM64
sudo dnf install ./claude-desktop-extra-2.2553.1-1.aarch64.rpmNixOS / Nix
nix run github:patrickjaja/claude-desktop-extraAppImage (Any Distro)
# x86_64
chmod +x Claude_Desktop-2.2553.1-x86_64.AppImage
./Claude_Desktop-2.2553.1-x86_64.AppImage
# ARM64
chmod +x Claude_Desktop-2.2553.1-aarch64.AppImage
./Claude_Desktop-2.2553.1-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 |
|---|---|
| Arch pacman (x86_64) | 4910ec5d9707567edc791d62495e693191f0a35a6fd8ec081ed2751c3cd96f3f
|
| Arch pacman (aarch64) | bce5c631d0c8873cbe6d70aa51ca1e362135cc5ab94e3b785f449affca65e9fd
|
| Tarball (x86_64) | 52810f42e6b665f543d9bcafb16588d68834addb554a71116c7aa5f4c26509f9
|
| Tarball (aarch64) | 93f7331db362f3dbefc5e6fcdde77ccff17872fb712d8333a65c5746a496eb03
|
| AppImage (x86_64) | 65fe5346c9a70bebb9cdbe2b96503e7453cdefe19855ece07659f89f4417106e
|
| AppImage (aarch64) | c30d46225d9cfac2ee32c5dbd3469a1c3e053b744a7e56a43b1973c82da3bbe4
|
| Debian (amd64) | b48614fe7fbb95ae5832a3068b8c321b11b63f5823a92e7bd5e323e4e4b1bd99
|
| Debian (arm64) | 8143f176098ee853d8a98bde644eb66d5fe82c18544c7f34e1e0dd6b9a5239d0
|
| RPM (x86_64) | 7177b8dd20a1456b4ecb0cba7d3bc119807394d8e0e14e12d20c5bf3e7a4daa3
|
| RPM (aarch64) | c8b1a6f90071bd554f91121ef32e85aa2bd2b1f335b59263aa29e53263055e66
|
Changes since last release
From CHANGELOG.md, 2026-09-18:
Claude Desktop v2.2553.1
Upstream's first 2.x release, and a full re-minify: not one of the 157 content-hashed
chunks in v1.49585.0 survives into the 201 of v2.2553.0, and index.js and
index.pre.js differ too. Every patch pattern re-matched against freshly minified
text rather than surviving by luck. Exactly one sub-patch needed re-anchoring.
v2.2553.1 landed during the same pass. It re-emits every chunk hash again but is
semantically identical where our work is pinned: the same set of flag ids, the same 171
managed-settings keys, the same 199 chunks and the same darwin/win32/linux gate counts,
on the same Electron 44.2.0. All patches apply to it unchanged, so the audit below holds
for both and .upstream-version records v2.2553.1.
Computer Use: the tool handler gained a state argument. Upstream reshaped the
internal-MCP server definition. The Computer Use server now exposes a
createToolHandler that builds a per-handler state object and passes it as a new
leading argument, so handleToolCall went from (toolName, input, session) to
(state, toolName, input, session), and the dispatcher moved onto that state as a
memoized slot instead of being a plain factory(session) call.
patches/linux/fix_computer_use_linux.nimmatches the four-argument signature, and
its dispatcher anchor now captures the whole init expression rather than just the
factory name, so the teach-mode forward reuses upstream's own memoization whatever
arguments that factory grows. A new assertion fails the build if the captured
expression does not take the session parameter.js/cu_handler_injection.jspasses the state through on thecomputer_batch
recursion.- The per-call compliance deny still has parity with upstream: the gate the handler
now calls in its preamble resolves to the same function the patch captures into
globalThis.__cdbCuHipaa. The Computer Use action surface is unchanged at 17
actions, and upstream still ships no native Linux executor, so the patch remains
load-bearing.
Nothing else moved against us. No PORTABLE gate appeared, no new Linux-blocking
gate, no reclassification: the 22 process.platform==="linux" sites are
content-identical, not merely count-identical. The one platform-gated new feature,
the coworkCopperHeron watch-record sub-mode, is inert on Linux, which ships neither
the recorder provider nor the window entry it loads. One change is Linux-favourable:
a local Claude Code session that fails for want of a sandbox now reports
sandbox_required_unavailable instead of a generic crash. The eIPC sender-origin
allowlist our Extra settings guard mirrors is unchanged, so that guard stays in sync.
Restarting from the Extra page no longer kills a running Cowork task
cdb-app:relaunch, the restart the Extra settings page performs to apply a titlebar-mode
switch, called app.relaunch() followed by app.exit(0). app.exit() emits neither
before-quit nor will-quit, so it skipped every one of the app's registered quit-cleanup
handlers. The Cowork VM was killed rather than stopped, MCP child processes were cut off
mid-flight, web storage was not flushed, and the main window's geometry was never persisted
- which is worst precisely here, since the rows that ask the user to restart are the ones
that change window chrome.
It now calls the app's own relaunch primitive, which sets the latch that clears the
before-quit interceptor, then quits so the full cleanup pass runs and the relaunch happens
at the end of it. The old path remains as a fallback, so if the anchor ever moves the button
degrades to the previous behaviour instead of doing nothing.
Computer Use on GNOME Wayland: the portal session can no longer be left running
Releasing the Computer Use lock while session-start was still waiting on the GNOME
RemoteDesktop consent dialog lost the update: session-end ran first, then the pending start
resolved and marked the session active again with no lock held, leaving the
gnome-portal-bridge daemon alive until the process exited. _gnomeSessionEnd now clears
the flag on entry and awaits any in-flight start before ending the session, and publishes
that teardown so a lock re-acquired mid-teardown queues its start behind it instead of
opening a second portal session and a second consent dialog. It also records whether a session is
wanted at all, so a release that arrives while a start is merely QUEUED behind a teardown
cancels it instead of bringing the portal up with no lock held, and it skips the teardown
when nothing was ever started. That is the whole of the shape the KDE path already used. The session transitions are now logged, so the ordering
is greppable in claude-patches.log rather than invisible, and
scripts/tests/linux/test-cu-gnome-session-lifecycle.mjs pins all three orderings
(it fails against the old code).
Baselines refreshed against v2.2553.x: PLATFORM_GATE_BASELINE.md,
CLAUDE_FEATURE_FLAGS.md, CLAUDE_BUILT_IN_MCP.md and ION.md. Feature flags grew
354 to 415, the static registry 73 to 89 and the async merger 13 to 17; the
Extra -> Deployment key catalog grew 143 to 171, including a ten-key self-hosted
family and four session-retention keys. ion-dist is structurally unchanged and both
of its patch sites still resolve by content signature.