Note: This is a community-maintained package and is not affiliated with Anthropic. Use at your own risk.
This unofficial AUR package brings Claude Desktop to Arch Linux natively, allowing you to use Anthropic's AI assistant with MCP servers on your Linux machine without virtualization or emulation.
This package relies on the patchy-cnb
library created by k3d3 as part of the claude-desktop-linux-flake project. All credit for the technical solution goes to k3d3.
git clone https://github.com/jkoelker/claude-desktop-native/
cd claude-desktop-native
makepkg -si
- Native Claude Desktop experience on Arch Linux
- Modified native bindings for Linux compatibility via
patchy-cnb
- Preserves all functionality of the official Claude Desktop application (including MCP support)
- Seamless desktop environment integration (icons, shortcuts, etc.)
- Transparent implementation with no additional telemetry
The project works by:
- Obtaining the official Windows executable
- Extracting the application from the Windows executable
- Replacing Windows-specific native bindings with Linux-compatible alternatives
- Repackaging everything to work with the system's Electron installation
The core functionality is provided by patchy-cnb
, which implements Linux versions of the claude-native-bindings
that Claude Desktop expects.
After installation, files are organized as follows:
/usr/
├── bin/
│ └── claude-desktop-native
├── lib/
│ └── claude-desktop-native/
│ ├── app.asar
│ ├── app.asar.unpacked
│ │ └── node_modules
│ │ └── claude-native
│ │ └── claude-native-binding.node
│ └── resources/
│ ├── de-DE.json
│ ├── en-US.json
│ ├── en-XA.json
│ ├── en-XB.json
│ ├── es-419.json
│ ├── es-ES.json
│ ├── fr-FR.json
│ ├── hi-IN.json
│ ├── id-ID.json
│ ├── it-IT.json
│ ├── ja-JP.json
│ ├── ko-KR.json
│ ├── pt-BR.json
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├── TrayIconTemplate-Dark.png
│ ├── TrayIconTemplate.png
│ ├── Tray-Win32-Dark.ico
│ ├── Tray-Win32.ico
│ ├── xx-AC.json
│ ├── xx-HA.json
│ └── xx-LS.json
└── share/
└── icons/
└── hicolor/
├── 16x16
│ └── apps/
│ └── claude.png
├── 24x24
│ └── apps/
│ └── claude.png
├── 256x256
│ └── apps/
│ └── claude.png
├── 32x32
│ └── apps/
│ └── claude.png
├── 48x48
│ └── apps/
│ └── claude.png
└── 64x64
└── apps/
└── claude.png
All libraries and resources are stored in /usr/lib/claude-desktop-native
to ensure compatibility with the system's Electron installation.
All icons are stored in /usr/share/icons/hicolor
for desktop environment integration.
The binary is symlinked to /usr/bin/claude-desktop-native
for easy access.
- The binary is just a wrapper script that executes
exec electron /usr/lib/claude-desktop-native/app.asar "$@"
.
The package build follows these steps:
-
Download Phase:
- Fetches the official Windows installer (.exe)
- Fetches the patchy-cnb library source code
- Verifies checksum to ensure integrity
-
Extraction Phase:
- Uses
7z
to extractClaude-Setup-x64.exe
- Uses
7z
to extract theAnthropicClaude-${pkgver}-full.nupkg
package - Uses
asar
to extract theapp.asar
file which contains the Electron application
- Uses
-
Patching Phase:
- Builds the
patchy-cnb
library from source using Rust - Replaces Windows-specific
.node
native modules with the newly compiledpatchy-cnb
ones - Replaces the functions of the
.vite/build/index.js
with ones that simply return the absolute path of the resources folder within the applications directory
- Builds the
-
Packaging Phase:
- Organizes files into the proper directory structure
- Creates desktop integration files (icons, launchers)
- Sets up the executable wrapper to use the system's Electron
The critical part of the process is replacing Windows-native .node
files with Linux-compatible alternatives:
- Windows-specific native modules (
*.node
) are identified in the application - These are typically used for:
- System integration
- Clipboard operations
- Window management
- Notification handling
- The
patchy-cnb
library provides compatible implementations of these functions for Linux - During build, the Windows
.node
files are replaced with the newly compiled Linux versions
MCP configuration is handled in $XDG_CONFIG_DIRS/Claude/claude_desktop_config.json
.
For troubleshooting, you can:
-
Run the application from terminal to see output:
ELECTRON_ENABLE_LOGGING=1 claude-desktop-native
-
Inspect logs in:
~/.local/share/claude-desktop-native/logs/
-
Verify native binding loading by checking:
ldd /usr/share/claude-desktop-native/app.asar.unpacked/node_modules/@anthropic-ai/patchy-cnb/patchy-cnb.node
Native modules are intentionally installed without execution permissions as they are loaded directly by Node.js using dlopen(), which only requires read access.
- electron (runtime)
- cargo (make)
- icoutils (make)
- imagemagick (make)
- nodejs (make)
- npm (make)
- p7zip (make)
- rust (make)
- tar (make)
- docker (optional) – for running MCP servers
Similar community-maintained packages for other distributions:
- k3d3/claude-desktop-linux-flake - Original implementation
- aaddrick/claude-desktop-debian - Seeking new maintainer
Issue | Solution |
---|---|
Blank screen on startup | Verify Electron version compatibility |
Authentication fails | Check account credentials and internet connection |
Missing icons | Verify the icons were installed in /usr/share/icons |
Restart your computer or log out and back in |
For other issues, please open an issue on GitHub.
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- Build scripts and packaging code: Dual-licensed under MIT License and Apache License 2.0
- Claude Desktop: Proprietary software owned by Anthropic
- patchy-cnb library: Created by k3d3, dual-licensed under MIT and Apache 2.0
- k3d3 for creating patchy-cnb and the original implementation
- The Anthropic team for creating Claude
- The Arch Linux community for their package management system