No description
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Egor Gorbunov b3a7206957 Translate the repository to English
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>
2026-10-13 16:07:00 +03:00
bin Translate the repository to English 2026-10-13 16:07:00 +03:00
systemd Install and auto-update official Claude Desktop on Fedora 2026-10-13 15:59:44 +03:00
install.sh Translate the repository to English 2026-10-13 16:07:00 +03:00
LICENSE Install and auto-update official Claude Desktop on Fedora 2026-10-13 15:59:44 +03:00
README.md Translate the repository to English 2026-10-13 16:07:00 +03:00

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, docker or 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:

  1. 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.
  2. The InRelease signature, and that this exact key made it.
  3. Origin: Anthropic and Suite: stable.
  4. 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.
  5. The SHA256 and size of the package list against the signed values. The list is fetched by hash, so it can't drift from InRelease even if the repository updates mid-check.
  6. 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 with claude 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/Claude carries over.
  • GNOME Shell reads search providers only from system directories, so search-provider needs 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.