Claude Desktop 1.49585.0 (patch release 4)
This release provides Claude Desktop version 1.49585.0 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/v1.49585.0-4/claude-desktop-extra-1.49585.0-4-x86_64.pkg.tar.zst
# ARM64
sudo pacman -U https://github.com/patrickjaja/claude-desktop-extra/releases/download/v1.49585.0-4/claude-desktop-extra-1.49585.0-4-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_1.49585.0-4_amd64.deb
# ARM64
sudo apt install ./claude-desktop-extra_1.49585.0-4_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-1.49585.0-4.x86_64.rpm
# ARM64
sudo dnf install ./claude-desktop-extra-1.49585.0-4.aarch64.rpmNixOS / Nix
nix run github:patrickjaja/claude-desktop-extraAppImage (Any Distro)
# x86_64
chmod +x Claude_Desktop-1.49585.0-x86_64.AppImage
./Claude_Desktop-1.49585.0-x86_64.AppImage
# ARM64
chmod +x Claude_Desktop-1.49585.0-aarch64.AppImage
./Claude_Desktop-1.49585.0-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) | 507c94a2f896e32a7e45414f1a98849584b28e523e70521038494b1aa7242ec3
|
| Arch pacman (aarch64) | cebe48df03dacba8044ad8cc9201e5034d24ec9e522b49a7446c2e93e257172f
|
| Tarball (x86_64) | 0284da4210ed0a7bcc0496e68075684275b8c932ce4f559eed740e3b688d75ba
|
| Tarball (aarch64) | a3d511f9d04d8fafee5aca3e9d0a2e0e80fef212d51db07d097c4db7c0e64106
|
| AppImage (x86_64) | 285d5c7fcbec4d432e6dfac1a921bd947118a71979629e3c321d3dc2e2073421
|
| AppImage (aarch64) | dc25192eaf54d950eaa56047064bbe537404bc68ff4058306f821ef90e8db73a
|
| Debian (amd64) | 4593c821627648b40645f42ebb7612c86c99263a7598c1b2ac83f7f193ff3faa
|
| Debian (arm64) | 3dd8b8887b98772f9f1beb72114caaf144ba1fd25e112b3d029718d4aaaae1fd
|
| RPM (x86_64) | a48cbfc0732dde26eac151b575cbd5c5444d602f7a8135fcfa6b81be04150e49
|
| RPM (aarch64) | 06541a052ab04590014eea99ae7acf4772a92c5d526fe798cb172ad1e955cc6b
|
Changes since last release
From CHANGELOG.md, 2026-09-09:
Dynamic themes: greyscale wallpapers and the window frame
- The thin frame around the app is root-caused, and there is now a mode that removes it. It is
not an Electron regression as such: Chromium refuses to set_GTK_FRAME_EXTENTSon xfwm4 (a
hardcoded carve-out guarding an xfwm4 bug that was fixed back in 2021) and on window managers that
never advertise the hint (i3, Awesome), and then paints a 4 px resize band inside the window,
colored from the GTK headerbar. Electron 43 inherited that path when it replaced its own frameless
view with Chromium's (electron/electron#51161); the border is still present in 44.3.0 and in
45.0.0-alpha.5, so waiting for a newer Electron does not help. Upstream: electron/electron#52024. - Two new switches in Settings -> Extra -> Community Features: Hide window controls and Native
titlebar. Chromium only paints that band while the window controls overlay is on or the window has
a shadow, so Hide window controls opens the main window frameless with no overlay and
hasShadow: false, and the frame disappears completely. Dragging the window edges still resizes it -
the band keeps its input region, it just is not painted - but there are no min/max/close buttons, so
you close and minimize through your WM (Alt+F4 and friends). Native titlebar gives you the system
window frame instead, which also avoids the band because the window is no longer frameless. Each is a
persisted config key (noWindowControls,nativeTitlebar) that the launcher flags
--no-window-controlsand--native-titlebarstill override per launch, and native wins over hiding
the controls whichever surface each came from. - Neither switch can apply live: the window frame is fixed when the window is created, and Electron has
nosetFramewhilesetTitleBarOverlay(false)throws outright. So the Community panel grew its first
restart affordance - a bar that appears only while a saved switch and the running window disagree,
the same conditional shape the Deployment panel uses, rather than a notice that nags permanently. - The same patch stopped writing a window
iconit never actually set: upstream passes its ownicon
later in the same options object and the last key wins, so the path we spliced in had been discarded
from the day it was written. A new guard now fails the build if upstream ever adds its ownframe,
hasShadow,titleBarStyle,titleBarOverlayorautoHideMenuBarafter our splice point, because
that would silently drop the window mode with no error anywhere - which is exactly what theicon
key had been doing unnoticed. - Without that mode, the frame can only be disguised, not removed: the matugen example derives the GTK
headerbar color from the same ramp as Claude's backgrounds so the band blends into the window, which
leaves a 1 px hairline (Chromium draws the band's outline in a contrasting shade of the fill, so an
exact color match can never hide it). Maximizing the window also removes it, and--native-titlebar
avoids it by using the system frame. - The mode script decides dark unless the wallpaper's mean luma exceeds 0.6 (was 0.55): a bright sky over
dark ground reads as dark to people. The light background ramps of the overlay-bg and tinted templates
sit at 97 to 86 percent lightness instead of 99 to 90, so a low-chroma wallpaper still tints them. - Overlay control in the theme UIs. A
themeOverlayrecolored the app while the Ctrl+Shift+T
picker and Settings -> Extra -> Themes still showed the picked theme as plain "active", and the only
way to turn it off was the config file. Both now carry an Overlay bar: with an overlay active it
names it and offers Turn off, and the active card gets anoverlaybadge; with none active it lists
your own themes (hidden generator templates included) in a select with Apply. Backed by three new
picker IPC channels (cdb-themes:overlay,cdb-themes:overlays,cdb-themes:set-overlay) that
forward to the theme engine and answer "not supported by this build" on an engine without it. New
harnessscripts/tests/community/test-picker-overlay.mjs; the Extra DOM suite covers the row. - Themes reach the new CDS token layer. claude.ai now styles the mode pills ("Chat and Cowork"
/ "Code"), chips, filled buttons and the sidebar row states from--cds-neutral-*,--cds-fill-*
and--df-hover/--df-selectedtokens the engine did not remap, so they stayed Anthropic gray
and blue under any theme. The engine now maps the whole neutral ramp (per mode: upstream inverts
it in dark, so neutral-0 is the page side and neutral-900 the text side in both modes), the
accent / brand / pro / danger / success fills, texts, backgrounds, borders and on-colors, the
warning text / background / border, and the frame's hover / selected rows onto the theme's tokens.
Alphas, borders, tooltips and the segmented control derive from--cds-neutral-900upstream and
follow. The gray palette, the white switch knob and the yellow warning fill (it also paints text
highlights) stay stock. Reference:baseline/THEME_TOKEN_MAP.mdsection 7; the theme-scope
harness proves the pills track resolves to the theme in both modes.
Upstream bump to Claude Desktop v1.49585.0
The auto-release failed on a renamed file, not on a re-minify: the bundled Microsoft 365 MCP server
moved from resources/office365-mcp/office365-mcp.mjs to office365-mcp-stdio.mjs, so the patch
orchestrator could not find the target of fix_office365_mcp_open_url and stopped before applying
anything. The server is still forked through the MCP node host as a utilityProcess, so the
sign-in delegation to the main process keeps working unchanged; only the target path moved. One
further patch lost its anchor. Nothing was upstreamed and no patch was added or removed (47 patches).
- Sensitive directories (
fix_sensitive_dirs_linux): upstream rebuilt the protected-path list as
a tiered{sub, family, tier}array and dropped its macOS and Windows entries from the bundle. The
Linux keyring, NSS certificate and XDG autostart directories are now injected as full entries of that
shape, anchored on the array opening rather than on the vanished Windows block. - Electron 42.10.0 -> 44.2.0. Two consequences for us:
- Electron 44 made the main-process clipboard API return Promises. Upstream awaits every call now,
and the Computer Use executor (js/cu_linux_executor.js) follows: the clipboard-paste path waits
for the write to land before sending Ctrl+V, andread_clipboard/write_clipboardawait their
results instead of returning a pending promise or letting a rejection escape. - ANGLE is statically linked, so
libEGL.soandlibGLESv2.sono longer ship in the install tree.
Nothing of ours referenced them;CLAUDE_GPU_BACKEND=angle-glstill works because it only passes
the--use-angleswitches. The main binary's linked libraries and glibc floor are unchanged, so
no package dependency changed. The Nix package comment now names Electron 44 as the expected major.
- Electron 44 made the main-process clipboard API return Promises. Upstream awaits every call now,
- Feature flags: the GrowthBook override template grows from 291 to 299 catalogued flags (8
added, none of the templated ones removed). New upstream behaviour worth knowing: flag
3634338308is a server-side kill switch that latches local Cowork tasks off with an
"organization's Cowork settings" message; it is catalogued as do-not-enable. Other new flags gate
theccd_windowMCP tools, cloud memory sync for Cowork sessions, and a bare Alt tap opening the
main menu.enable_local_agent_modeneeded no change. - Deployment panel: the managed-settings key catalog is unchanged at 143 keys; the 3P directory
resolver and mode decision still match upstream. - Built-in MCP: new backend server
ccd_window(open session in split, close split, sidebar and
layout tools) and a per-sessionmemoryrelay server for first-party Cowork sessions. Neither is
platform-gated. Nothing removed or renamed. - JS diff: new renderer service
WindowLayout, Cowork space memory copy, remembered SSH passwords
stored throughsafeStorage, lazily pooled Code worktrees, a Gerrit git-host provider, and a quit
watchdog. The Cowork VM layer (virtiofsd, cowork-linux-helper, smol image) is rename-only; the
Claude Code environment allowlist is unchanged. Agent SDK 0.3.260 -> 0.3.265. - ion-dist: the 3P setup SPA patch still hits its two sites (Linux org-plugins mount path);
no new config keys in the SPA. - Platform gates: no new Linux-blocking gate, no new native module, no new binary to build for
aarch64. Every darwin/win32 count went down (the removed sensitive-dirs blocks, a Windows Git Bash
preflight, one macOS path helper). New capability keyscoworkScheduledTaskRepointand
localSessionsWithoutGitare supported on Linux. The new remote-control folder serving excludes
Windows only. A "web-origin mark" quarantine feature is compiled out of the Linux bundle by a
build-time constant. New remembered-SSH-passwords store encrypts throughsafeStorageand refuses
to save without a real keyring backend. - Anchors: the file-index worker search hook and the four utilityProcess fork sites are unchanged;
the remote panel-tabs and quick-open anchors can only be confirmed at runtime.