Unofficial desktop app for Claude AI on Linux. Not affiliated with Anthropic PBC.
Desktop wrapper for claude.ai. Runs as a native window on Linux without a browser tab.
8,000+ active installs from the Snap Store
Important
There is an official Claude desktop app for Linux. Anthropic ships it since 30 June 2026 for Ubuntu 22.04+ and Debian 12+ (amd64/arm64) from their own apt repository, and it includes Cowork and Claude Code with an integrated terminal and editor, which a browser wrapper cannot provide. If that fits your system, use it: official install guide.
This app is not discontinued. Updates and fixes keep coming, new features less often than before. It also remains the option on Ubuntu 20.04, which the official app does not support, and in the Snap Store, where there is no official package.
v1.4.16 - Desktop for Claude. The app is renamed and points at Anthropic's official Linux app from the tab bar, the menu and What's New, so nobody has to find out elsewhere that it exists. It also gets out of that app's way: binary,
.desktopfilename and icon name no longer collide with their package, which previously let a style switch here recolour their menu icon. A Design window now shows every colour theme as a small mockup of the real window and page and applies the choice live; in packaged builds it was broken before this release because its preload script never made it into the bundle. Midnight Blue joins as a fourth colour theme, with deep blue surfaces and scattered wave crests as the counterpart to OLED's starfield, and Neon joins as a third accent style. Colour theme and style are separate axes now, freely combinable, and the style also sets claude.ai's own brand tone, so the send arrow stops being orange in every theme. Alongside: the ring around the input field follows the real corner radius instead of a default, grey bars on the Code and Design pages are gone, and in the light theme the design page no longer has a black lower half.
- Voice Input – Microphone permission for claude.ai's voice features, scoped strictly to claude.ai (artifact iframes can't piggyback). Snap users get an in-app setup wizard that detects whether the
audio-recordplug is connected and links straight to the Snap Store permissions page. Since v1.3.8 the App Settings show a live colored status pill next to the toggle and the Allow button briefly pulses the moment the Snap permission is granted - Live Notifications – Tab-bar banner for service-side notices (info / warn / critical / success), fetched from the repo every 6h with version filters and per-ID dismiss state, so urgent hints land without a new release
- Custom App Menu (Hamburger) – In-app menu with keyboard navigation, replaces the native menu bar; quick access to all actions including new tab, export, settings, updates and bug report
- Tab System – Multiple chats side by side with a visual tab bar (Ctrl+T, Ctrl+W, Ctrl+Tab); direct buttons in the tab bar for Markdown export and bug report
- Markdown Export – Save the active conversation as a
.mdfile viaCtrl+Shift+E, including code blocks, lists, headings and links - Frameless Window – Own title bar with the tab bar integrated, no doubled system frame
- System Tray – Optional minimize-to-tray instead of closing the window
- Global Quick-Prompt Hotkey – Configurable hotkey opens a frameless prompt window that injects your text into a new chat
- Prompt Templates – Define named prefixes (e.g. "Translate to English:"), pick them with Tab in the Quick-Prompt window
- Clipboard Hotkey – Separate global hotkey that opens a new chat with your clipboard text already inserted
- Background-Tab Response Notifications – Optional native notification when Claude finishes a response in a tab you're not currently viewing
- In-App Bug Report – Description, optional error codes, optional contact email; auto-includes app/OS info on opt-in. Includes a clear notice that this is an unofficial community wrapper (not an official Anthropic product) with a direct link to support.anthropic.com for account/login/billing/payment questions. Since v1.4.10 a required checkbox gates the Send button. Localized in DE, EN, FR, ES, IT
- App Settings Window – Configure hotkeys, minimize-to-tray, autostart, background notifications and templates from
Claude → App Settings… - Autostart – Optional launch on system boot (Linux: writes a
.desktopfile to~/.config/autostart/; Snap: native autostart directive) - Themes – Dark, White, OLED and Midnight Blue, picked in a Design window that previews each one, plus three accent styles (Modern, Classic, Neon) that combine freely with any theme. The theme is applied before the first paint, so restored content appears already themed. claude.ai always runs in its dark palette; White is a GPU inversion of it, which switches in ~6ms instead of ~480ms for a real palette flip
- Session Restore – Open conversations are remembered and reopened on the next start; restored tabs load on first click, not all at once
- Blank-Screen Watchdog – Detects when the chat area stops receiving frames and repairs it in escalating steps (redraw, bounds nudge, re-attaching the view), or manually via
Ctrl+Alt+R - Reset claude.ai Verification – Toolbar button and menu entry that clears cookies and cache for all claude.ai origins, for when the Cloudflare security check is stuck in a loop (requires a new login afterwards)
- Copy Diagnostics Info – Collects app version, Electron/Chrome build, kernel, display session, GPU vendor and WebGL renderer into the clipboard for bug reports
- Auto-Update – Updates via GitHub Releases (AppImage) or
snapd(Snap). Since v1.3.7 the AppImage also rewrites stale.desktopand autostart entries on startup, so the menu shortcut keeps pointing at the current file afterelectron-updaterreplaces the AppImage - Manual Update Check – Menu entry shows a dialog with the result
- What's-New Popup – Shows the changelog once after each version upgrade, including notes for skipped versions, as a slideshow with one slide per change
- In-App OAuth Popups – Google, GitHub, Google Drive, GitLab, Bitbucket, Microsoft, Auth0, Higgsfield
- Multilingual UI – Full interface in German, English, French and Italian, selected by system language with English fallback (the bug-report dialog covers additional languages)
- Offline Detection – Automatic reconnect when connection is restored
- Crash Recovery – Crashed tabs reload automatically (max 3 retries)
- Background Throttling – Hidden tabs stop rendering; measured with three background tabs, renderer CPU drops from 13.5% to 6.7%
- Security – Sandbox enabled, IPC validation, CSP headers, subframe allowlist
- Performance – GPU acceleration, disk caching, tab preloading
sudo snap install claude-ai-desktopSnap updates are handled automatically by snapd – no action needed.
Download the latest .AppImage from Releases:
chmod +x Claude-Desktop-*.AppImage
./Claude-Desktop-*.AppImage --no-sandboxThis is a type-2 AppImage and needs the FUSE 2 runtime. Ubuntu 22.04 / 24.04 and other recent distros ship FUSE 3 only, so the AppImage may fail with fuse: device not found or a missing libfuse.so.2. Either install FUSE 2 once:
sudo apt install libfuse2 # Debian/Ubuntuor run the AppImage without FUSE:
APPIMAGE_EXTRACT_AND_RUN=1 ./Claude-Desktop-*.AppImage --no-sandboxOr use the included launch script:
chmod +x start-claude.sh
./start-claude.shcat > ~/.local/share/applications/claude-desktop.desktop << EOF
[Desktop Entry]
Name=Desktop for Claude
Comment=Unofficial desktop app for Claude AI
Exec=/path/to/Claude-Desktop-1.4.16.AppImage --no-sandbox
Icon=/path/to/icon.png
Type=Application
Categories=Utility;
StartupWMClass=claude-desktop
EOFIf you want the shortcut to survive future updates, point Exec= to a stable filename like Claude-Desktop-latest.AppImage and create a symlink to the current version after each update.
git clone https://github.com/simonlinuxcraft/claude-ai-desktop-app.git
cd claude-ai-desktop-app
npm install
npm startBuild AppImage:
npm run build-appimageThe AppImage updates itself via electron-updater whenever the app is fully quit (not just minimized). If you're stuck on an older version like v1.2.0:
- Quit the app completely – Right-click the tray icon → Quit, or
File → Quit. Just closing the window is not enough if minimize-to-tray is enabled. - Restart the app – The pending update installs on next launch.
- Check your Desktop shortcut – If your
~/.local/share/applications/claude-desktop.desktopstill has a hardcoded path likeClaude-Desktop-1.2.0.AppImage, update it to point to the new file. Since v1.3.7 the app rewrites this file on startup, so once you've launched a v1.3.7+ AppImage at least once, future updates fix the shortcut on their own. - Manual check –
Claude → Check for Updates…forces an immediate check and shows the result.
Snap users don't need to do anything – snapd handles updates in the background.
The --no-sandbox flag is required for Electron AppImages on Linux because the Chrome SUID sandbox needs root:4755 permissions, which are not possible inside an AppImage mount. CHROME_DEVEL_SANDBOX='' does not work as an alternative. The web content sandbox (sandbox: true in webPreferences) remains active and protects against untrusted web content.
| Shortcut | Action |
|---|---|
| Ctrl+T | New tab |
| Ctrl+W | Close tab |
| Ctrl+Tab | Next tab |
| Ctrl+Shift+Tab | Previous tab |
| Ctrl+1–9 | Switch to tab |
| Ctrl+N | New chat |
| Ctrl+Shift+E | Export conversation as Markdown |
| Ctrl+, | Settings |
| Ctrl+R | Reload |
| Ctrl+Shift+R | Force reload |
| Ctrl+Alt+R | Redraw (chat area stays blank) |
| Ctrl++ / Ctrl+- | Zoom |
| F11 | Fullscreen |
| (configurable) | Quick-Prompt window |
- Tab contents rendered as
WebContentsView(one per tab) - Tab bar as inline HTML in the main window
- IPC communication through dedicated preload scripts (contextBridge):
preload-tabbar.js– tab barpreload-settings.js– settings windowpreload-quickprompt.js– quick-prompt windowpreload-whatsnew.js– what's-new popuppreload-messagebox.js– custom message boxespreload-appmenu.js– hamburger menupreload-bugreport.js– bug report formpreload-about.js– about windowpreload-content.js– claude.ai page itself
- Theming from a single source:
inject/theme-static.jsruns before the first paint,inject/theme.jskeeps it in sync afterwards. claude.ai stays in its dark palette in every theme; White is a root-level GPU inversion with images and iframes inverted back - Custom design via CSS variable overrides + DOM injection
- Session:
persist:claudepartition shared between tabs and OAuth popups - Tray icon via
nativeImage.createFromPath()with separate sparkle icons for the Classic style - Multi-monitor handling: child windows centered on the display containing the main window
Sandbox active on all windows, IPC validated, CSP headers, Electron 41.
Known limitation: --no-sandbox required for AppImage (SUID sandbox incompatibility). Web content sandbox remains active.
This project is an unofficial wrapper. Claude and claude.ai are property of Anthropic.