Unofficial Linux packages for Claude Desktop AI assistant with automated updates.
yay -S claude-desktop-bin# Download from GitHub Releases
wget https://github.com/patrickjaja/claude-desktop-bin/releases/latest/download/claude-desktop_1.1.2512_amd64.deb
sudo dpkg -i claude-desktop_*_amd64.deb# Download from GitHub Releases
wget https://github.com/patrickjaja/claude-desktop-bin/releases/latest/download/Claude_Desktop-1.1.2512-x86_64.AppImage
chmod +x Claude_Desktop-*-x86_64.AppImage
./Claude_Desktop-*-x86_64.AppImagegit clone https://github.com/patrickjaja/claude-desktop-bin.git
cd claude-desktop-bin
./scripts/build-local.sh --install- Native Linux support (Arch, Debian/Ubuntu, AppImage)
- Claude Code CLI integration - Use system-installed Claude Code (
/usr/bin/claude) - Local Agent Mode - Git worktrees and agent sessions
- MCP server support - Model Context Protocol servers work on Linux
- Global hotkey support (Ctrl+Alt+Space) with multi-monitor awareness
- Automated daily version checks
This package patches Claude Desktop to work with system-installed Claude Code on Linux.
To use Claude Code features:
# Install Claude Code CLI via npm
npm install -g @anthropic-ai/claude-code
# Verify it's accessible
which claude # Should show /usr/bin/claude or similarThe package applies several patches to make Claude Desktop work on Linux. Each patch is isolated in patches/ for easy maintenance:
| Patch | Purpose |
|---|---|
claude-native.js |
Linux-compatible native module (replaces Windows-only @anthropic/claude-native) |
enable_local_agent_mode.py |
Enables Local Agent Mode (chillingSlothFeat) on Linux for git worktrees and agent sessions |
fix_claude_code.py |
Enables Claude Code CLI integration by detecting /usr/bin/claude |
fix_locale_paths.py |
Redirects locale file paths to Linux install location |
fix_node_host.py |
Fixes MCP server node host path for Linux (uses app.getAppPath()) |
fix_startup_settings.py |
Skips startup settings on Linux to avoid validation errors |
fix_native_frame.py |
Uses native window frames on Linux/XFCE while preserving Quick Entry transparency |
fix_quick_entry_position.py |
Spawns Quick Entry window on the monitor where the cursor is located |
fix_title_bar.py |
Renders internal title bar on Linux (disables platform-gated early returns) |
fix_tray_dbus.py |
Prevents DBus race conditions with mutex guard and cleanup delay |
fix_tray_icon_theme.py |
Uses theme-aware tray icon selection (light/dark) on Linux |
fix_tray_path.py |
Redirects tray icon path to package directory on Linux |
fix_vm_session_handlers.py |
Handles ClaudeVM IPC on Linux with graceful degradation (returns NotDownloaded) |
fix_app_quit.py |
Fixes app not quitting after cleanup on Linux (uses app.exit(0) instead of app.quit()) |
fix_utility_process_kill.py |
Uses SIGKILL as fallback when UtilityProcess doesn't exit gracefully |
When Claude Desktop updates break a patch, only the specific patch file needs updating.
This repository automatically:
- Checks for new Claude Desktop versions daily
- Validates all patches in Docker before pushing to AUR
- Updates the AUR package when new versions are detected
- Creates GitHub releases for tracking updates
- Maintains proper SHA256 checksums
The CI pipeline includes a test build step that validates patches before updating AUR:
- Docker Test Build - Runs
makepkgin anarchlinux:base-develcontainer - Pattern Matching Validation - Each patch exits with code 1 if patterns don't match
- Pipeline Stops on Failure - Broken packages never reach AUR users
- Build Logs Uploaded - Artifacts available for debugging failures
If upstream Claude Desktop changes break a patch:
- The pipeline fails with clear
[FAIL]output - Build logs show which pattern didn't match
- AUR package remains unchanged until patches are updated
.github/workflows/- GitHub Actions for automationscripts/- Build and validation scriptspatches/- Linux compatibility patchespackaging/- Debian and AppImage build scriptsPKGBUILD.template- AUR package template
On pure Wayland compositors (e.g. Hyprland, Sway), the Quick Entry shortcut (Ctrl+Alt+Space) doesn't work because Electron's globalShortcut relies on X11. Force XWayland mode to fix it:
claude-desktop --ozone-platform=x11To make it persistent, edit ~/.local/share/applications/claude-desktop.desktop:
Exec=claude-desktop --ozone-platform=x11 %u- Press Alt to toggle the app menu bar (Electron default)
- Unofficial package, not supported by Anthropic
- Issues: https://github.com/patrickjaja/claude-desktop-bin/issues
- Based on: https://github.com/k3d3/claude-desktop-linux-flake

