Claude Desktop 3.6556.2 (patch release 5)
This release provides Claude Desktop version 3.6556.2 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/v3.6556.2-5/claude-desktop-extra-3.6556.2-5-x86_64.pkg.tar.zst
# ARM64
sudo pacman -U https://github.com/patrickjaja/claude-desktop-extra/releases/download/v3.6556.2-5/claude-desktop-extra-3.6556.2-5-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_3.6556.2-5_amd64.deb
# ARM64
sudo apt install ./claude-desktop-extra_3.6556.2-5_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-3.6556.2-5.x86_64.rpm
# ARM64
sudo dnf install ./claude-desktop-extra-3.6556.2-5.aarch64.rpmNixOS / Nix
nix run github:patrickjaja/claude-desktop-extraAppImage (Any Distro)
# x86_64
chmod +x Claude_Desktop-3.6556.2-x86_64.AppImage
./Claude_Desktop-3.6556.2-x86_64.AppImage
# ARM64
chmod +x Claude_Desktop-3.6556.2-aarch64.AppImage
./Claude_Desktop-3.6556.2-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) | a9ecd8c760d6f981a8effb98a1369f889503efe8a75586b262888ccc78d00420
|
| Arch pacman (aarch64) | 898af2d6cf2d1af1f4526f014480ff8332426e51350a65d103bd8e6af4177632
|
| Tarball (x86_64) | 6b0c0cb2bb9d7f71707ddb2ce7f1590e4289b46a281adb483724d117123b936a
|
| Tarball (aarch64) | 7c42531807280804fece44a59207194595ba9c224ae837c298ed2686d95534fe
|
| AppImage (x86_64) | 1fc3f45ea6618c2c601157bb6bac7c4cc04924eb6d83f665cd02ae96a6150092
|
| AppImage (aarch64) | 9ded8ed49ac73e1f05d056ab6c79c19a2c788993ace79546ffc6f03fdfdecceb
|
| Debian (amd64) | eb16291a4c77787d4896bade8acc4f1059cad14a395b724306275d79b81d0172
|
| Debian (arm64) | 8553d9cfcd9df101788c80b9efc03f8d80b985196d5b6975acfc7848eebd3000
|
| RPM (x86_64) | a1cbf232a48f4df1dc467b3df87986c4f2593969811e38b10f99e37c1a0e6a0f
|
| RPM (aarch64) | 82307b5732b73cd62d7d91e230c89a564f8252377a02e05b21a131ffce3759a0
|
Changes since last release
From CHANGELOG.md, 2026-10-23:
Custom models and the Extra settings page also run on win32 (thanks @stratosjl, #295)
- No change on Linux. The custom models module and the Extra settings page now load on
win32as
well as Linux, so a downstream Windows build of this patch set can carry them without editing them
(stratosjl/claude-desktop-extra builds one). On
Windows the Extra area shows only the Models panel; the other panels drive Linux-only patches or
/etc/claude-desktop. When the profile folder has a space (C:\Users\John Smith), whichBUN_OPTIONS
cannot carry, the CLI preload goes through the folder's 8.3 short name; Linux keeps refusing such a
path as before. A leading~\inapiKeyFileis expanded on Windows. Covered by new win32 cases in
test-custom-models-main.mjsand a Windows scenario intest-extra-settings-dom.mjs.
Custom models: the CLI preload also hooks claude.exe (thanks @stratosjl)
- No change on Linux.
js/custom_models_preload.jshooksfetchonly inside the Claude Code binary,
recognised byprocess.execPath's name. The Windows app starts Claude Code asclaude.exe, so on
win32 the preload returned before hooking: every custom-model request went to Anthropic, which answered
"Model 'claude-' not found". A trailing.exeis now ignored in that check. Covered by new cases in
test-custom-models-preload.mjs(claudeandclaude.exehook, other Bun programs do not).
Claude Desktop v3.6556.2
- Rebased on the official v3.6556.2
.deb(bundled Electron 44.9.3). Three patches were re-fitted to
the new code; none of them was absorbed upstream:add_feature_files_quick_open.nim: the worker host now has a per-workerenvoption, which only the
new frame-local worker sets. Main's live environment is now inserted ahead of that option, so a
worker's ownenvstill takes precedence. The file-index and heavy-work workers again receive
CDB_FILES_QUICK_OPENandCDB_TRANSCRIPT_LIMITS.fix_marketplace_linux.nim: upstream's local-plugin reader now sorts entries into plugins and
"other folder" plugins. Personal plugins, which the CLI stores as project scope on$HOME, again list
under Personal Plugins.fix_update_check_own_releases.nim: the Linux updater init now also starts a restart-enforcement
ticker. The update-link hook still runs before the poll.
- Extra -> Deployment lists upstream's new managed-settings keys:
installedUpdateEnforcementEnabled
andinstalledUpdateEnforcementHours, plusquickEntryScreenshotsEnabledand
quickEntryFileSharingEnabled, which only the macOS Quick Entry reads.toolPolicyEndpoint, which
upstream removed, is gone (196 keys). - The GrowthBook override template covers the 17 new flags (635 entries).
Computer Use on GNOME Wayland: consent dialog on every action, no restore token, screens timing out (#293)
Three defects in gnome-portal-bridge (github.com/patrickjaja/gnome-bridge), present since its first release:
- Monitor enumeration never reached Mutter. The bridge's decoder for
org.gnome.Mutter.DisplayConfig.GetCurrentStatewas one field short of Mutter's mode signature, and zbus rejects the whole reply on a mismatch, soscreensalways fell back to opening a fresh portal session. That is the consent dialog behindscreens, and because every pointer and capture command resolves its monitor the same way, a dialog per click and per zoom too, daemon or not. It is also whyclaude-desktop --diagnosereportedscreenstiming out and why the ids werestream-116instead of connector names. Fixed, with a unit test pinning the decoder to Mutter's published signature;screensnow answers in milliseconds. - No restore token was ever stored. The portal only accepts persistence for a combined RemoteDesktop + ScreenCast session through
RemoteDesktop.SelectDevices; the library the bridge used asked onScreenCast.SelectSourcesas well, the portal refused, and the bridge retried without persistence on every GNOME version. The bridge now builds the session itself and requests persistence the way the portal specifies. Verified on GNOME 48: after the first grant, sessions and one-shot commands run with no dialog. session-endcould leaveserve-sessionrunning (and the screen-sharing indicator on). The daemon now records its pid,session-endwaits for it and escalates to SIGTERM and SIGKILL, the daemon bounds its own teardown, and a client killed mid-request (the executor's timeout) no longer takes the daemon down with it. Its stderr goes to$XDG_RUNTIME_DIR/gnome-portal-bridge/daemon.log.
On top: zoom without --display (the executor's fallback when it has no monitor list) now takes global coordinates and clamps the region to the display instead of refusing it on a monitor not at the origin, and the executor no longer caches a failed screens enumeration for the whole process (it retries after 30 s), so one slow reply cannot pin every later capture to global coordinates. The GNOME lifecycle harness covers the retry. Operator notes: in the consent dialog keep "Remember This Selection" on and turn on "Allow Remote Interaction"; gnome-portal-bridge doctor reports restore_token_present.
kwin-portal-bridge (KDE Plasma) had the same restore-token defect: the consent prompt came back for every Computer Use session because the token was never stored. Fixed the same way in our fork and verified on Plasma 6.7.2; the next build picks it up. Keep "Allow restoring on future sessions" on in the KDE prompt.
- "Stop sharing" in the desktop's screen-sharing indicator ends Computer Use for the task. Bridges on the updated contract exit 5 for every input and capture command once the user stops sharing, and for a
session-startwhose session is closed before it is ready (docs/computer-use-bridge-contract.md). The GNOME and KDE executors then tell the model that the user stopped sharing and to ask before continuing. Until the task's lock ends (for a guided tour: when the tour ends) they start no new session (no consent dialog, no vanished-daemon recovery) and try no other screenshot method; the release still sendssession-end, and the next task starts sharing again.claude-desktop --diagnoseprintsstopped_by_userwhile it applies. Covered by new cases intest-cu-gnome-session-lifecycle.mjsandtest-launcher-diagnose.mjs.
Computer Use on GNOME Wayland: clicks missing on scaled or multi-monitor setups, frozen screenshots (#293)
- Clicks on fractionally scaled monitors landed short by the scale factor. The bridge sent logical units where the portal expects stream pixels; points are now converted to stream pixels.
- The outer band of a scaled monitor was unreachable. xdg-desktop-portal refused those positions; they are now reached with a clamped absolute motion plus a relative motion for the remainder.
- Screenshots could be up to about a minute old. The bridge returned the oldest queued frame; it now returns the latest.
- A monitor not shared in the consent dialog is an error, not a silent switch to another monitor. The error names the shared monitors.
claude-desktop --reset-screen-sharingforgets the remembered monitor selection (GNOME and KDE), so the next Computer Use task shows the dialog again. A "not shared" error now tells Claude to ask you to run it,--diagnoseshows whether a selection is remembered and which monitors a GNOME session shares, and a reset during a running task starts one new session.- Computer Use bridges share a CLI contract (docs/computer-use-bridge-contract.md):
--diagnoseand--reset-screen-sharingwork with whatever bridges are bundled, the executors read the bridges' exit codes (3 = monitor not shared, 4 = session gone), andscripts/check-bridge-contract.shchecks every built and bundled bridge in CI. - The executor defaults screenshots to the shared monitor and honours an explicit display 0 instead of reading it as unset.
- Session start waits up to about two minutes for the consent dialog.
- A screenshot right after a click now includes the app's repaint. Mutter skips a frame requested too early and its follow-up redraw does not reach a second monitor, so the shot could show the screen from before the click; after pointer input the bridge now flushes the pending frame with a 1 px pointer nudge.
- An input request whose caller already timed out is refused instead of executed late, so a click can no longer land after Claude gave up on it.
- Ending a session is bounded to about 4 s, even when the session daemon is stuck.
Operator note: with several monitors, select all of them in the consent dialog.
Computer Use on X11 HiDPI, sway/Hyprland/river multi-monitor and rotated outputs, KDE session robustness
- X11 with a scale factor (
Xft.dpivia XSETTINGS,GDK_SCALE,--force-device-scale-factor): clicks were sent in Electron DIP while XTest works in root pixels, so at 1.5 a click at the screen centre landed at two thirds of the way. Clicks and the screenshot crop now share one DIP-to-pixel mapping (the same as Electron'sdipToScreenPoint), including mixed scales, a primary monitor not at 0,0, displays whose DIP bounds overlap by one column, and XWayland viaCLAUDE_USE_XWAYLAND=1. - wlroots-bridge (sway, Hyprland, river): absolute pointer motion is now relative to the layout's bounding box, so monitors left of or above the origin are reachable and clicks land exactly. Rotated and flipped outputs (all 8 transforms) give upright screenshots and correct click mapping.
- KDE Wayland (
kwin-portal-bridge): every bridge call has a timeout. Session start waits up to about two minutes for the consent dialog and tells a declined dialog from a slow one. A stuck session daemon is ended (SIGTERM, then SIGKILL) on session end and at quit. Input whose caller already timed out is refused instead of executed late, and screenshots settle after an action. - GNOME and KDE: a session daemon left over from a failed session start is now ended as well.