The GitHub Desktop AppImage (251 MB, version 3.6.10) is a single file that runs on most 64-bit Linux distributions without installing a package. It does need FUSE 2, a few desktop libraries and one extra step so that signing in to GitHub works.
On Ubuntu, Debian, Linux Mint or Pop!_OS, the .deb is easier: it
handles all of this for you.
AppImage requirements
- A 64-bit x86_64 PC with glibc 2.34 or newer.
- FUSE 2 (
libfuse2,libfuse2t64on Ubuntu 24.04), or the--appimage-extract-and-runflag. -
The usual Electron desktop libraries, which an AppImage does not bundle: GTK 3, NSS, libnotify, libsecret,
libgbm, libdrm, libatspi, libxcb-dri3, xdg-utils and ALSA, plus
libcurl4for HTTPS in the bundled git. Any normal desktop install has them. - A Secret Service keyring (GNOME Keyring, or KeePassXC with Secret Service enabled) to store your sign-in.
On Debian or Ubuntu you can install all the libraries at once:
sudo apt install libgtk-3-0 libnss3 libnotify4 libsecret-1-0 libgbm1 libdrm2 libatspi2.0-0 libxcb-dri3-0 xdg-utils libasound2 libcurl4
On Ubuntu 24.04 some of these have a t64 suffix (for example libgtk-3-0t64,
libasound2t64); apt usually picks the right one, and a desktop install already has them.
How to install the GitHub Desktop AppImage on Linux
-
01Install FUSE 2
AppImages mount themselves with FUSE 2. Install it, or run the AppImage with --appimage-extract-and-run instead.
shellsudo apt install libfuse2t64 # Ubuntu 24.04 / Debian 13 sudo apt install libfuse2 # Ubuntu 22.04 / Debian 12 sudo dnf install fuse-libs # Fedora sudo pacman -S --needed fuse2 # Arch -
02Download the AppImage and its checksum
Download GitHubDesktop-linux-x86_64-3.6.10-linux1.AppImage and its .sha256 file into ~/Applications.
shellmkdir -p ~/Applications && cd ~/Applications wget https://github.com/yehudah/desktop/releases/download/release-3.6.10-linux1/GitHubDesktop-linux-x86_64-3.6.10-linux1.AppImage \ https://github.com/yehudah/desktop/releases/download/release-3.6.10-linux1/GitHubDesktop-linux-x86_64-3.6.10-linux1.AppImage.sha256 -
03Verify the download
Check the file against its SHA-256 checksum. The command must print OK.
shellsha256sum -c GitHubDesktop-linux-x86_64-3.6.10-linux1.AppImage.sha256 -
04Make it executable and run it
Mark the AppImage as executable and start it with --no-sandbox.
shellchmod +x GitHubDesktop-linux-x86_64-3.6.10-linux1.AppImage ./GitHubDesktop-linux-x86_64-3.6.10-linux1.AppImage --no-sandbox -
05Register the sign-in handler
Create a desktop launcher that handles x-github-client:// links, so the browser can hand the sign-in back to GitHub Desktop. AppImageLauncher or Gear Lever can do this for you instead.
shellmkdir -p ~/.local/share/applications cat > ~/.local/share/applications/github-desktop-appimage.desktop <<EOF [Desktop Entry] Type=Application Name=GitHub Desktop Exec=$HOME/Applications/GitHubDesktop-linux-x86_64-3.6.10-linux1.AppImage --no-sandbox %U Terminal=false Categories=Development;RevisionControl; MimeType=x-scheme-handler/x-github-client;x-scheme-handler/x-github-desktop-dev-auth; EOF update-desktop-database ~/.local/share/applications xdg-mime default github-desktop-appimage.desktop x-scheme-handler/x-github-client
No FUSE? Run the AppImage with --appimage-extract-and-run instead. It unpacks to a temporary folder on
each start, which is slower but needs nothing installed.
Sign in to GitHub with the AppImage
Sign-in opens your browser, and GitHub sends you back through an x-github-client:// link. A bare
AppImage has not told your desktop that it handles those links, so without step 5 the browser redirect does
nothing. Instead of writing the launcher by hand, you can let an integration tool do it:
- AppImageLauncher integrates an AppImage the first time you open it.
- Gear Lever (available on Flathub) manages AppImages and their launchers.
Either way, keep the AppImage where the tool put it: moving it breaks the launcher. Then check which launcher handles the sign-in link:
xdg-mime query default x-scheme-handler/x-github-client
It should print your AppImage launcher (github-desktop-appimage.desktop if you followed step 5). The
AppImage link handler has been checked by launching it, not yet by a full sign-in; if sign-in still fails, the
.deb is the tested route where you can use it.
The app also needs a running, unlocked keyring that implements the Secret Service API, such as GNOME Keyring or KeePassXC with Secret Service enabled, to store your sign-in token.
Update or remove the AppImage
To update, download the new AppImage, make it executable and point the launcher's Exec= line at the
new file. To remove it, delete the AppImage and ~/.local/share/applications/github-desktop-appimage.desktop.
Settings live in ~/.config/GitHub Desktop.
Why --no-sandbox on Ubuntu 24.04
Ubuntu 24.04 blocks unprivileged user namespaces unless an AppArmor profile allows the program. The
.deb is covered by such a profile; an AppImage, mounted at a random path, is not. So on Ubuntu 24.04
the AppImage runs with --no-sandbox. On distributions without that restriction, such as Fedora and
Arch, you can leave the flag out (remove it from the commands above). In Docker, use
--security-opt seccomp=unconfined or --cap-add SYS_ADMIN to keep the sandbox.