GitHub Desktop AppImage for Linux

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, libfuse2t64 on Ubuntu 24.04), or the --appimage-extract-and-run flag.
  • 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 libcurl4 for 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:

shell
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

  1. 01Install FUSE 2

    AppImages mount themselves with FUSE 2. Install it, or run the AppImage with --appimage-extract-and-run instead.

    shell
    sudo 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
  2. 02Download the AppImage and its checksum

    Download GitHubDesktop-linux-x86_64-3.6.10-linux1.AppImage and its .sha256 file into ~/Applications.

    shell
    mkdir -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
  3. 03Verify the download

    Check the file against its SHA-256 checksum. The command must print OK.

    shell
    sha256sum -c GitHubDesktop-linux-x86_64-3.6.10-linux1.AppImage.sha256
  4. 04Make it executable and run it

    Mark the AppImage as executable and start it with --no-sandbox.

    shell
    chmod +x GitHubDesktop-linux-x86_64-3.6.10-linux1.AppImage
    ./GitHubDesktop-linux-x86_64-3.6.10-linux1.AppImage --no-sandbox
  5. 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.

    shell
    mkdir -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:

shell
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.