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

2 hours ago

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

Arch 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.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-5_amd64.deb
# ARM64
sudo apt install ./claude-desktop-extra_3.6556.2-5_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-5.x86_64.rpm
# ARM64
sudo dnf install ./claude-desktop-extra-3.6556.2-5.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) 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 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.

  • "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-start whose 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 sends session-end, and the next task starts sharing again. claude-desktop --diagnose prints stopped_by_user while it applies. Covered by new cases in test-cu-gnome-session-lifecycle.mjs and test-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-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.