- Shell 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
README, install.sh and every message and comment in the script are now in English. The script's logic is unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
| bin | ||
| systemd | ||
| install.sh | ||
| LICENSE | ||
| README.md | ||
claude-desktop-fedora
The official Claude Desktop on Fedora, with automatic updates, no root and no third-party builds.
This is an unofficial project, not affiliated with Anthropic. The repository doesn't contain Claude Desktop itself: the script downloads it from Anthropic on your machine. Claude is a trademark of Anthropic.
Anthropic publishes Claude Desktop for Linux only as a .deb in its APT repository (Ubuntu and Debian). This script takes the same package from there, verifies Anthropic's signature, unpacks the app into your home directory and keeps it up to date.
Why, when other options exist
- Flatpak wrappers run the app in a sandbox that has no
node,npx,dockeror other host programs, so MCP servers in the Code tab fail to start. Those wrappers also have to be updated by hand. - Third-party RPM repositories repackage the same .deb, but their packages install as root
and update automatically. That adds another person and their CI to the chain of trust: if
they are compromised, a malicious version arrives with your next
dnf upgrade.
Here, the only trusted party is Anthropic's key, and the app runs unsandboxed, as on macOS.
What gets verified
The whole chain is checked before every install. If anything doesn't match, the install is cancelled and the working version stays:
- The fingerprint of the key embedded in the script:
31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACE(Anthropic Claude Code Release Signing). It matches the key in the official documentation. - The
InReleasesignature, and that this exact key made it. Origin: AnthropicandSuite: stable.Valid-Until, and that the metadata date is never older than one already seen. This blocks an attacker from replaying an old repository with a vulnerable version.- The SHA256 and size of the package list against the signed values. The list is fetched by
hash, so it can't drift from
InReleaseeven if the repository updates mid-check. - The SHA256 and size of the
.deb.
The .deb's maintainer scripts (postinst) never run. The steps from them that matter are repeated in your home directory; the rest isn't needed on Fedora (AppArmor, APT repository registration).
Install
git clone https://git.wiseless.net/fureunoir/claude-desktop-fedora.git
cd claude-desktop-fedora
./install.sh
install.sh checks dependencies, installs claude-desktop-fedora into ~/.local/bin,
downloads and installs Claude Desktop, and enables the update timer. No sudo needed.
If you used the com.anthropic.Claude flatpak before, don't start the new app until you've
migrated your data (see below), or it will create an empty ~/.config/Claude.
Migrating from the flatpak
The flatpak keeps settings and local sessions in ~/.var/app/com.anthropic.Claude/config/Claude,
while a regular install uses ~/.config/Claude:
flatpak kill com.anthropic.Claude
claude-desktop-fedora migrate-from-flatpak
The command copies the data and rewrites absolute paths inside it. If you've already started
the new app, add --force: the current ~/.config/Claude is kept alongside as a backup.
Once everything works:
flatpak uninstall --user com.anthropic.Claude && flatpak uninstall --unused
How updates work
The claude-desktop-fedora.timer checks the repository every 6 hours. A new version is
downloaded and verified. If Claude is closed, it's installed right away. If Claude is open, it
waits in app.staged and the launcher applies it on next start, like Chrome does; a
notification tells you so. The previous version is kept for rollback.
claude-desktop-fedora status # what's installed, what's in the repository, next check
claude-desktop-fedora update # check right now
claude-desktop-fedora rollback # go back to the previous version
journalctl --user -u claude-desktop-fedora.service # update log
Commands
| Command | What it does |
|---|---|
update [--force] |
check the repository and install a new version |
apply |
apply a downloaded version if the app is closed |
status [--offline] |
versions and timer state |
rollback |
go back to the previous version |
doctor |
check dependencies, including those for Cowork |
migrate-from-flatpak [--force] |
move data over from the flatpak |
search-provider |
enable Claude search in the GNOME overview (sudo once) |
uninstall |
remove the app and automatic updates; ~/.config/Claude stays |
Where things live
| Path | What it is |
|---|---|
~/.local/bin/claude-desktop-fedora |
this script |
~/.local/bin/claude-desktop |
the app launcher |
~/.local/share/claude-desktop-fedora/app |
the app (app.staged: waiting for next start, app.previous: for rollback) |
~/.local/share/applications/com.anthropic.Claude.desktop |
the desktop entry; its ID matches the official one, so windows group in the dock and claude:// links work |
~/.local/share/icons/hicolor/*/apps/claude-desktop.png |
icons |
~/.local/share/mime/packages/com.anthropic.Claude.xml |
the .mcpb, .dxt and .skill types |
~/.config/systemd/user/claude-desktop-fedora.{service,timer} |
automatic updates |
~/.config/Claude |
the app's own data |
~/.config/claude-desktop-flags.conf |
optional: Electron flags, one per line |
MCP
The app runs unsandboxed, so MCP servers start with the host's programs.
- The Code tab and the CLI share
~/.claude.json: servers added withclaude mcp add --scope user ...show up in both. - The Chat tab: Settings → Developer → Edit Config, file
~/.config/Claude/claude_desktop_config.json. macOS works the same way.
Cowork
On Linux, Cowork runs tasks in a virtual machine through QEMU and KVM.
claude-desktop-fedora doctor shows what's missing. Usually:
sudo dnf install qemu-system-x86-core edk2-ovmf virtiofsd bubblewrap socat
sudo usermod -aG kvm $USER # then log out and back in
Limitations
- Anthropic officially supports only Debian and Ubuntu; Fedora support is coming later. Once an
official RPM exists, switch to it:
claude-desktop-fedora uninstall, and the data in~/.config/Claudecarries over. - GNOME Shell reads search providers only from system directories, so
search-providerneeds sudo. Without it, Claude simply won't appear in overview search. - Limitations of the Linux app itself (Computer Use, dictation) are listed in the documentation.
License
MIT. The license covers the scripts in this repository; Claude Desktop itself is subject to Anthropic's terms.