This is an up-to-date fork of GitHub Desktop for Linux with additional features and improvements.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
- Red color for destructive action buttons.
- Add icons to some similar-looking buttons for faster visual recognition.
- Allow generating branch name presets by calling an external script (e.g. fetching ticket numbers from an issue tracker). Click here for more details.
- Allow using a different text editor for a given repo, by overriding it in the repository settings.
- Bitbucket integration:
- Preview and create pull requests.
- View pull requests status, including checks.
- Display a commit or PR in Bitbucket (web browser).
- Correctly set repository owner (instead of displaying "Other").
- "Pull all" button to fetch and pull all your repositories at once.
- Allow hiding the "Recent" repositories section.
- Add warning indicator to local-only branches (branches that have not been pushed to the remote, or that have been deleted automatically after a PR).
- Allow manually setting which is the default branch for a repository (even if it doesn't match the one configured in the remote).
- Search commits by title, message, tag, or hash.
- Use a different font style for merge commits in order to make them visually distinct, since most of the time they are not as relevant.
- If a commit modifies only 1 file, allow double-clicking the commit to open the file. For other commits, you can still double-click the file as usual.
- Context menu option to permanently discard changes without sending to trash (useful when the there are many changed files and the regular "Discard" is extremely slow).
Click to expand
Simply install github-desktop-plus-bin from the AUR.
You can also build from source by installing github-desktop-plus or github-desktop-plus-git from the AUR.
gnome-keyringis required and the daemon must be launched either at login or when the X server / Wayland compositor is started. Normally this is handled by a display manager, but in other cases following the instructions found on the Arch Wiki will fix the issue of not being able to save login credentials.
Click to expand
Create the repository file:
curl https://gpg.polrivero.com/public.key | sudo gpg --dearmor -o /usr/share/keyrings/polrivero.gpg
echo "deb [signed-by=/usr/share/keyrings/polrivero.gpg] https://deb.github-desktop.polrivero.com/ stable main" | sudo tee /etc/apt/sources.list.d/github-desktop-plus.listUpdate the package list and install:
sudo apt update
sudo apt install github-desktop-plusClick to expand
Create the repository file:
sudo rpm --import https://gpg.polrivero.com/public.key
echo -e "[github-desktop-plus]\nname=GitHub Desktop Plus\nbaseurl=https://rpm.github-desktop.polrivero.com/\nenabled=1\ngpgcheck=1\nrepo_gpgcheck=1\ngpgkey=https://gpg.polrivero.com/public.key" | sudo tee /etc/yum.repos.d/github-desktop-plus.repoUpdate the package list and install:
sudo dnf check-update
sudo dnf install github-desktop-plusClick to expand
You can install GitHub Desktop Plus from Flathub by following the instructions at https://flathub.org/en/apps/io.github.pol_rivero.github-desktop-plus or by running the following command:
flatpak install flathub io.github.pol_rivero.github-desktop-plusClick to expand
Download the AppImage from the releases page and make it executable:
chmod +x GitHub-Desktop-Plus-*-linux-*.AppImage
# Just double-click the file to run it| 64-bit x86 | 64-bit ARM | 32-bit ARM |
|---|---|---|
-linux-x86_64.AppImage |
-linux-arm64.AppImage |
-linux-armv7l.AppImage |
Click to expand
Download and execute the installer from the releases page.
| 64-bit x86 | 64-bit ARM | |
|---|---|---|
| .EXE Installer | -win-x64.exe |
-win-arm64.exe |
| .MSI Installer | -win-x64.msi |
-win-arm64.msi |
Click to expand
Download the ZIP file from the releases page and extract it. To run the installer, execute the file GitHub Desktop Plus.app/Contents/MacOS/GitHub Desktop.
| 64-bit x86 | 64-bit ARM (Apple Silicon) |
|---|---|
-macOS-x64.zip |
-macOS-arm64.zip |
corepack enable # Install yarn if needed
yarn # Install dependencies
yarn build:dev # Initial build
yarn start # Start the app for development and watch for changes-
It's normal for the app to take a while to start up, especially the first time.
-
While starting up, this error is normal:
UnhandledPromiseRejectionWarning: Error: Invalid header: Does not start with Cr24 -
You don't need to restart the app to apply changes. Just reload the window (
Ctrl + Alt + R/Cmd + Alt + R). -
Changes to the code inside
main-processdo require a full rebuild. Stop the app and runyarn build:devagain. -
Read this document for more information on how to set up your development environment.
The first time you open the project, install the dependencies by running:
corepack enable
yarnThen, you can simply build and run the app by pressing F5.
Breakpoints should be set in the developer tools, not the VSCode editor.
I recommend running the tests in a Docker container for reproducibility and to avoid conflicts with your git configuration.
After installing the dependencies with yarn, make sure you have Docker installed and run:
yarn test:dockerFirst of all, because shiftkey's fork is currently unmaintained (last commit was in February 2025), so it's not getting the latest features and fixes from the official GitHub Desktop repository.
Secondly, I think the official GitHub Desktop app is very slow in terms of updates and lacks some advanced features that I'd like. This fork has low code quality requirements compared to the official repo, so I (and hopefully you as well) can add features and improvements quickly.
This fork also focuses on integrating nicely with Bitbucket, since I use it for work and haven't found a good Linux GUI client for it.
Keep in mind that this version is not endorsed by GitHub, and it's aimed at power users with technical knowledge. If you're looking for a polished and stable product, I recommend using the official GitHub Desktop app instead.
See original README
GitHub Desktop - The Linux Fork
GitHub Desktop is an open-source Electron-based GitHub app. It is written in TypeScript and uses React.
This repository contains specific patches on top of the upstream
desktop/desktop repository to support Linux usage.
It also publishes releases for various Linux distributions:
- AppImage (
.AppImage) - Debian (
.deb) - RPM (
.rpm)
You can use your operating system's package manager to install github-desktop and
keep it up to date on Debian and RPM-based distributions.
There are two APT package feeds available, both hosted in the US. You only need to add one or the other here, as both of these are generated based on the releases from this repository.
@shiftkey package feed
wget -qO - https://apt.packages.shiftkey.dev/gpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/shiftkey-packages.gpg > /dev/null
sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/shiftkey-packages.gpg] https://apt.packages.shiftkey.dev/ubuntu/ any main" > /etc/apt/sources.list.d/shiftkey-packages.list'@mwt package feed
wget -qO - https://mirror.mwt.me/shiftkey-desktop/gpgkey | gpg --dearmor | sudo tee /usr/share/keyrings/mwt-desktop.gpg > /dev/null
sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/mwt-desktop.gpg] https://mirror.mwt.me/shiftkey-desktop/deb/ any main" > /etc/apt/sources.list.d/mwt-desktop.list'Once you have a feed configured, run this command to install the application:
sudo apt update && sudo apt install github-desktopThere are two RPM package feeds available, both hosted in the US. You only need to add one or the other here, as both of these are generated based on the releases from this repository.
@shiftkey package feed
sudo rpm --import https://rpm.packages.shiftkey.dev/gpg.key
sudo sh -c 'echo -e "[shiftkey-packages]\nname=GitHub Desktop\nbaseurl=https://rpm.packages.shiftkey.dev/rpm/\nenabled=1\ngpgcheck=1\nrepo_gpgcheck=1\ngpgkey=https://rpm.packages.shiftkey.dev/gpg.key" > /etc/yum.repos.d/shiftkey-packages.repo'@mwt package feed
sudo rpm --import https://mirror.mwt.me/shiftkey-desktop/gpgkey
sudo sh -c 'echo -e "[mwt-packages]\nname=GitHub Desktop\nbaseurl=https://mirror.mwt.me/shiftkey-desktop/rpm\nenabled=1\ngpgcheck=1\nrepo_gpgcheck=1\ngpgkey=https://mirror.mwt.me/shiftkey-desktop/gpgkey" > /etc/yum.repos.d/mwt-packages.repo'Once you have a feed configured, run this command to install the application:
# if yum is your package manager
sudo yum install github-desktop
# if dnf is your package manager
sudo dnf install github-desktop
# if zypper is your package manager
sudo zypper ref && sudo zypper in github-desktopThere are two RPM package feeds available, both hosted in the US. You only need to add one or the other here, as both of these are generated based on the releases from this repository.
@shiftkey package feed
sudo rpm --import https://rpm.packages.shiftkey.dev/gpg.key
sudo sh -c 'echo -e "[shiftkey-packages]\nname=GitHub Desktop\nbaseurl=https://rpm.packages.shiftkey.dev/rpm/\nenabled=1\ngpgcheck=1\nrepo_gpgcheck=1\ngpgkey=https://rpm.packages.shiftkey.dev/gpg.key" > /etc/zypp/repos.d/shiftkey-packages.repo'@mwt package feed
sudo rpm --import https://mirror.mwt.me/shiftkey-desktop/gpgkey
sudo sh -c 'echo -e "[mwt-packages]\nname=GitHub Desktop\nbaseurl=https://mirror.mwt.me/shiftkey-desktop/rpm\nenabled=1\ngpgcheck=1\nrepo_gpgcheck=1\ngpgkey=https://mirror.mwt.me/shiftkey-desktop/gpgkey" > /etc/zypp/repos.d/mwt-packages.repo'sudo zypper ref && sudo zypper in github-desktopArch Linux users can install GitHub Desktop from the AUR.
gnome-keyring is required and the daemon must be launched either at login or when the X server is started. Normally this is handled by a display manager, but in other cases following the instructions found on the Arch Wiki will fix the issue of not being able to save login credentials.
GitHub Desktop is also available cross-platform as a Flatpak and AppImage.
Debian/Ubuntu users can also install directly from this repository using deb-get: deb-get install github-desktop.
If you're having troubles with Desktop, please refer to the Known issues document for guidance and workarounds for common limitations.
If your package manager is still trying to reach PackageCloud, refer to the cleanup instructions for details about migrating away.
Please check out the README on the upstream GitHub Desktop project and desktop.github.com for more product-oriented information about GitHub Desktop.
See our getting started documentation for more information on how to set up, authenticate, and configure GitHub Desktop.
The MIT license grant is not for GitHub's trademarks, which include the logo designs. GitHub reserves all trademark and copyright rights in and to all GitHub trademarks. GitHub's logos include, for instance, the stylized Invertocat designs that include "logo" in the file title in the following folder: logos.
GitHub® and its stylized versions and the Invertocat mark are GitHub's Trademarks or registered Trademarks. When using GitHub's logos, be sure to follow the GitHub logo guidelines.






