github patrickjaja/claude-desktop-extra v3.6556.2-4
Claude Desktop 3.6556.2 (patch release 4)

latest release: v3.6556.2-5
3 hours ago

Claude Desktop 3.6556.2 (patch release 4)

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-extra

Arch Linux (manual package)

# x86_64
sudo pacman -U https://github.com/patrickjaja/claude-desktop-extra/releases/download/v3.6556.2-4/claude-desktop-extra-3.6556.2-4-x86_64.pkg.tar.zst
# ARM64
sudo pacman -U https://github.com/patrickjaja/claude-desktop-extra/releases/download/v3.6556.2-4/claude-desktop-extra-3.6556.2-4-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_3.6556.2-4_amd64.deb
# ARM64
sudo apt install ./claude-desktop-extra_3.6556.2-4_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-3.6556.2-4.x86_64.rpm
# ARM64
sudo dnf install ./claude-desktop-extra-3.6556.2-4.aarch64.rpm

NixOS / Nix

nix run github:patrickjaja/claude-desktop-extra

AppImage (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.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) 65b8c102b76bdb4315d9ddac786e89d2874af58ee7d3579db87b54b3f7fca554
Arch pacman (aarch64) 6313e37e8ecff9df839c911e1782f3c62bb70e84729ef75e862adb48bd28c8ce
Tarball (x86_64) cca6f447126c8189af64349f959b74c7445e3b8fdf70bb84b22ba079ab6a35ea
Tarball (aarch64) acadbd47cb75ff0c45366254e85e80bcaf5c70d250a96fe3d042feafc430b1ba
AppImage (x86_64) 24ebf9f1f1dc58681e5e4836f65b5816f044ee3c8969bf55039290c2b5d31596
AppImage (aarch64) dbdc1dabe52edfa60561889f68803f224453217492fc94ff44c84f1dca52f502
Debian (amd64) 966a163f6c99d3bc2802b330ad53b8f364420f0f93d407b2e16a98a8109278b8
Debian (arm64) c35c24f0c54f541283f8a9708130ffdbf91f8a3ef64e9c1d6e53d68d690d65d1
RPM (x86_64) eb331c5cb6114c2fdad0238d1b3c1c03b980c59c3581e690b322aafbf1da2f7c
RPM (aarch64) f6165f9009b5963b4eeb785c4b842000273c105558d4bfb0925061bf0b10cd15

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 win32 as
    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), which BUN_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 ~\ in apiKeyFile is expanded on Windows. Covered by new win32 cases in
    test-custom-models-main.mjs and a Windows scenario in test-extra-settings-dom.mjs.

Custom models: the CLI preload also hooks claude.exe (thanks @stratosjl)

  • No change on Linux. js/custom_models_preload.js hooks fetch only inside the Claude Code binary,
    recognised by process.execPath's name. The Windows app starts Claude Code as claude.exe, so on
    win32 the preload returned before hooking: every custom-model request went to Anthropic, which answered
    "Model 'claude-' not found". A trailing .exe is now ignored in that check. Covered by new cases in
    test-custom-models-preload.mjs (claude and claude.exe hook, 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-worker env option, which only the
      new frame-local worker sets. Main's live environment is now inserted ahead of that option, so a
      worker's own env still takes precedence. The file-index and heavy-work workers again receive
      CDB_FILES_QUICK_OPEN and CDB_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
    and installedUpdateEnforcementHours, plus quickEntryScreenshotsEnabled and
    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.GetCurrentState was one field short of Mutter's mode signature, and zbus rejects the whole reply on a mismatch, so screens always fell back to opening a fresh portal session. That is the consent dialog behind screens, 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 why claude-desktop --diagnose reported screens timing out and why the ids were stream-116 instead of connector names. Fixed, with a unit test pinning the decoder to Mutter's published signature; screens now 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 on ScreenCast.SelectSources as 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-end could leave serve-session running (and the screen-sharing indicator on). The daemon now records its pid, session-end waits 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.

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-sharing forgets 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, --diagnose shows 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): --diagnose and --reset-screen-sharing work with whatever bridges are bundled, the executors read the bridges' exit codes (3 = monitor not shared, 4 = session gone), and scripts/check-bridge-contract.sh checks 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.dpi via 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's dipToScreenPoint), including mixed scales, a primary monitor not at 0,0, displays whose DIP bounds overlap by one column, and XWayland via CLAUDE_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.

Links

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

NewReleases is sending notifications on new releases.