When you want a quick visual pass over a messy diff or need to switch branches without juggling terminal commands, GitHub Desktop is easier to live with than raw Git alone. To install GitHub Desktop on Fedora, the two methods that still make sense are the community-maintained shiftkey/desktop project RPM build and the Flathub package, because GitHub does not publish an official Fedora repository.
GitHub Desktop is not available in Fedora’s official repositories, and older third-party DNF repo options currently lag behind upstream. That leaves two paths worth your time: the latest RPM release from GitHub releases and the Flathub build. Both are current, easy to verify, and straightforward to remove later if you change your mind.
Install GitHub Desktop on Fedora
The direct RPM is the least layered option and behaves like a normal host package. Flatpak is usually the smoother choice on Fedora Workstation because Flathub handles updates cleanly and Fedora already ships the runtime support.
| Method | Source | Freshness | Updates | Best For |
|---|---|---|---|---|
| Direct RPM | GitHub releases | Latest stable | Rerun the install command | Users who want the upstream build on the host system |
| Flatpak | Flathub | Latest stable | flatpak update | Most Fedora Workstation users |
Flatpak is the better default for most Fedora desktops because it fits the way Fedora Workstation already handles desktop apps and updates cleanly from Flathub. Use the direct RPM when you want GitHub Desktop installed on the host without Flatpak sandboxing. Older community DNF repositories still show up in search results, but they currently trail upstream, so they are more likely to leave you on an older build.
Some older shiftkey RPM repo instructions still point to
rpm.packages.shiftkey.dev. During Fedora 43 testing, that host failed TLS certificate validation, and older mirror-based repo paths were not a reliable way to stay on the newest build. If you want the current RPM, use the direct GitHub release method below or the update script later in this guide.
Update Fedora Before Installing GitHub Desktop
Refresh Fedora’s package metadata and install pending updates before adding GitHub Desktop:
sudo dnf upgrade --refresh
This guide uses
sudofor commands that need root privileges. If your account is not in the sudoers file yet, switch to root or follow the guide on adding a user to sudoers on Fedora before continuing.
Install GitHub Desktop RPM on Fedora from GitHub Releases
This method queries the latest GitHub release, matches it to your Fedora architecture, and installs the RPM with DNF:
ARCH=$(uname -m)
RPM_URL=$(curl -fsSL https://api.github.com/repos/shiftkey/desktop/releases/latest | grep -oE "\"browser_download_url\": \"[^\"]+${ARCH}[^\"]*\\.rpm\"" | head -n 1 | cut -d '"' -f4)
sudo dnf install -y "$RPM_URL"
The first line detects your architecture, the second pulls the matching release URL, and DNF installs that RPM. On Fedora 43 Workstation, the command resolves to the
x86_64build. IfRPM_URLcomes back empty on a less common architecture, open the releases page and pick the matching RPM manually.
Verify that Fedora registered the package after installation:
rpm -q github-desktop
github-desktop-3.4.13.linux1-1.x86_64
The version will move forward as new releases land, but the package name format stays the same.
Install GitHub Desktop Flatpak on Fedora from Flathub
The Flathub build is the easiest Fedora path when you want a current package with straightforward updates.
Fedora Workstation already includes Flatpak. On minimal or server-style Fedora installs, add it first with
sudo dnf install flatpak. If you just installed Flatpak yourself, log out and back in once before launching graphical apps.
This guide uses a system-wide Flatpak install, so the app, update command, and removal steps all stay under the same Fedora-managed scope.
Add the Flathub remote if it is not already configured on your system:
sudo flatpak remote-add --system --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
Install GitHub Desktop system-wide from Flathub:
sudo flatpak install --system -y flathub io.github.shiftey.Desktop
Confirm the Flatpak package is installed and available:
flatpak info io.github.shiftey.Desktop
GitHub Desktop - Simple collaboration from your desktop
ID: io.github.shiftey.Desktop
Arch: x86_64
Branch: stable
Version: 3.4.13-linux1
Origin: flathub
Installation: system
If a newer release is available when you run the command, only the Version line should differ.
Launch GitHub Desktop on Fedora
Open GitHub Desktop from Activities
Search for GitHub Desktop in Activities and open it like any other Fedora desktop application.

Launch GitHub Desktop from the Terminal
RPM installations launch with the standard command:
github-desktop
Flatpak installations use the application ID instead:
flatpak run io.github.shiftey.Desktop
If this is a fresh Fedora machine, check your Git identity before the first commit. GitHub Desktop uses the same Git configuration, so it helps to configure Git username and email first.
Update or Remove GitHub Desktop on Fedora
Update the GitHub Desktop RPM on Fedora
Rerun the same release-detection command whenever you want the newest upstream RPM. DNF upgrades the package in place and prints Nothing to do. if you are already current. If you would rather keep a reusable helper on the system, use the script in the next subsection.
ARCH=$(uname -m)
RPM_URL=$(curl -fsSL https://api.github.com/repos/shiftkey/desktop/releases/latest | grep -oE "\"browser_download_url\": \"[^\"]+${ARCH}[^\"]*\\.rpm\"" | head -n 1 | cut -d '"' -f4)
sudo dnf install -y "$RPM_URL"
Create a GitHub Desktop RPM Update Script on Fedora
This helper script is for the direct RPM method, not Flatpak. It checks the installed GitHub Desktop version, fetches the latest Fedora-compatible RPM from the shiftkey/desktop releases page, downloads the matching .sha256 file, verifies the checksum, and then hands the RPM to DNF. Run it as your regular user account because the script calls sudo only when the package install step begins.
Save the script to /usr/local/bin so you can run it from any terminal directory later:
sudo tee /usr/local/bin/update-github-desktop > /dev/null << 'SCRIPT_EOF'
#!/usr/bin/env bash
set -euo pipefail
AUTO_YES=0
if [ "${1:-}" = "--yes" ]; then
AUTO_YES=1
fi
if [ "$(id -u)" -eq 0 ]; then
echo "Run this script as a regular user. It uses sudo only for the DNF install step."
exit 1
fi
for cmd in curl dnf rpm grep head cut sed sha256sum mktemp uname tr; do
if ! command -v "$cmd" >/dev/null 2>&1; then
echo "Error: $cmd is required but not installed."
exit 1
fi
done
ARCH=$(uname -m)
case "$ARCH" in
x86_64) RPM_ARCH="x86_64" ;;
aarch64) RPM_ARCH="aarch64" ;;
armv7l) RPM_ARCH="armv7l" ;;
*)
echo "Unsupported architecture: $ARCH"
exit 1
;;
esac
echo "Checking the latest GitHub Desktop release for Fedora..."
RELEASE_JSON=$(curl -fsSL https://api.github.com/repos/shiftkey/desktop/releases/latest)
LATEST_TAG=$(printf '%s\n' "$RELEASE_JSON" | grep -oE '"tag_name": "[^"]+"' | head -n 1 | cut -d '"' -f4)
RPM_URL=$(printf '%s\n' "$RELEASE_JSON" | grep -oE "\"browser_download_url\": \"[^\"]+${RPM_ARCH}[^\"]*\\.rpm\"" | head -n 1 | cut -d '"' -f4)
if [ -z "$LATEST_TAG" ] || [ -z "$RPM_URL" ]; then
echo "Error: Could not determine the latest GitHub Desktop RPM URL."
exit 1
fi
LATEST_VERSION=$(printf '%s\n' "$LATEST_TAG" | sed -E 's/^release-//; s/-linux/.linux/')
CURRENT_VERSION=$(rpm -q --qf '%{VERSION}\n' github-desktop 2>/dev/null || echo "none")
echo "Current installed version: $CURRENT_VERSION"
echo "Latest available version: $LATEST_VERSION"
if [ "$CURRENT_VERSION" = "$LATEST_VERSION" ]; then
echo "Already up to date."
exit 0
fi
if [ "$AUTO_YES" -ne 1 ]; then
printf 'Continue with the RPM install/update? [y/N] '
read -r REPLY
case "$REPLY" in
[yY]|[yY][eE][sS]) ;;
*)
echo "Update canceled."
exit 0
;;
esac
fi
WORKDIR=$(mktemp -d)
trap 'rm -rf "$WORKDIR"' EXIT
cd "$WORKDIR"
RPM_FILE=${RPM_URL##*/}
CHECKSUM_URL="${RPM_URL}.sha256"
CHECKSUM_FILE="${RPM_FILE}.sha256"
echo "Downloading $RPM_FILE..."
curl -fL --progress-bar "$RPM_URL" -o "$RPM_FILE"
echo "Downloading checksum..."
curl -fsSL "$CHECKSUM_URL" -o "$CHECKSUM_FILE"
EXPECTED_SUM=$(tr -d '\r\n' < "$CHECKSUM_FILE")
ACTUAL_SUM=$(sha256sum "$RPM_FILE" | cut -d ' ' -f1)
if [ "$EXPECTED_SUM" != "$ACTUAL_SUM" ]; then
echo "Error: Checksum verification failed for $RPM_FILE."
exit 1
fi
echo "Checksum verified."
echo "Installing the RPM with DNF..."
sudo dnf install -y "./$RPM_FILE"
NEW_VERSION=$(rpm -q --qf '%{VERSION}\n' github-desktop)
echo "Update complete."
echo "Installed version: $NEW_VERSION"
SCRIPT_EOF
sudo chmod +x /usr/local/bin/update-github-desktop
Run the script from any terminal directory with:
update-github-desktop
If you intentionally want a noninteractive run, add --yes to skip the confirmation prompt:
update-github-desktop --yes
Use this as a manual helper first. It is safer to watch a few successful runs yourself than to wire unattended RPM updates into cron and discover a GitHub API or download failure later.
Example output when an update is available:
Checking the latest GitHub Desktop release for Fedora... Current installed version: 3.4.12.linux1 Latest available version: 3.4.13.linux1 Continue with the RPM install/update? [y/N] y Downloading GitHubDesktop-linux-x86_64-3.4.13-linux1.rpm... Downloading checksum... Checksum verified. Installing the RPM with DNF... Upgrading: github-desktop x86_64 3.4.13.linux1-1 @commandline Complete! Update complete. Installed version: 3.4.13.linux1
When you are already current, the same command stops without downloading the RPM again:
Checking the latest GitHub Desktop release for Fedora... Current installed version: 3.4.13.linux1 Latest available version: 3.4.13.linux1 Already up to date.
Update the GitHub Desktop Flatpak on Fedora
Update only GitHub Desktop from Flathub with:
sudo flatpak update --system io.github.shiftey.Desktop
Remove the GitHub Desktop RPM from Fedora
Remove the RPM package with DNF:
sudo dnf remove github-desktop
The next command removes GitHub Desktop settings from your home directory, but it does not delete any Git repositories you cloned elsewhere. Back up custom preferences first if you want to keep them.
rm -rf ~/.config/GitHub\ Desktop
Verify that the RPM package is gone:
rpm -q github-desktop
package github-desktop is not installed
Remove the GitHub Desktop Flatpak from Fedora
Remove the Flatpak build and delete its sandbox data in one step:
sudo flatpak remove --system -y --delete-data io.github.shiftey.Desktop
If you want to confirm the Flatpak package is gone, run:
flatpak info io.github.shiftey.Desktop
error: io.github.shiftey.Desktop/*unspecified*/*unspecified* not installed
Troubleshoot GitHub Desktop on Fedora
Fix GitHub Desktop Flatpak Remote or App ID Errors
Flatpak installation problems usually come from a missing Flathub remote or a mistyped application ID. List your configured remotes first:
flatpak remotes
fedora system,oci flathub system
If flathub does not appear, add it again and retry the install:
sudo flatpak remote-add --system --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
sudo flatpak install --system -y flathub io.github.shiftey.Desktop
Verify Which GitHub Desktop Build Fedora Installed
If GitHub Desktop does not appear in Activities or you are not sure which method you used, check the RPM and Flatpak package databases directly:
rpm -q github-desktop
flatpak info io.github.shiftey.Desktop
An installed RPM reports a package name such as github-desktop-3.4.13.linux1-1.x86_64. An installed Flatpak reports ID: io.github.shiftey.Desktop and Origin: flathub. If both commands fail, Fedora does not currently have GitHub Desktop installed and you can rerun one of the installation methods above.
Frequently Asked Questions About GitHub Desktop on Fedora
No. GitHub Desktop is not packaged in Fedora’s official repositories. On Fedora, the reliable installation methods are the current shiftkey/desktop RPM release from GitHub or the Flathub package.
Flatpak is the better default for most Fedora Workstation systems because Flathub updates are straightforward and Fedora already integrates Flatpak well. The RPM method makes more sense when you want GitHub Desktop installed directly on the host system without Flatpak sandboxing.
Yes. GitHub Desktop can use the same SSH authentication that Fedora already uses for Git. Clone repositories with SSH URLs and the app works with your existing SSH agent and keys. If you still need to set that up, follow the guide on SSH on Fedora.
The RPM package installs the launcher at /usr/bin/github-desktop and the application files under /usr/lib/github-desktop. The system-wide Flatpak build installs under /var/lib/flatpak/app/io.github.shiftey.Desktop. RPM settings for the current user are stored in ~/.config/GitHub Desktop.
Conclusion
Fedora now has a clean GitHub Desktop setup, whether you chose the direct RPM or the easier Flatpak route. Diffs, branch switches, and pull requests can stay in one place instead of being scattered across terminal tabs. If the Git side still needs attention, start with Git on Fedora, then configure Git username and email, and add SSH on Fedora when you want SSH-based repository access.
Very impressive. Thanks