Skip to content

Latest commit

 

History

37,176 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub Desktop for Linux

Linux Packages

This repository maintains a Linux-focused fork of GitHub Desktop, the open-source Electron app written in TypeScript and React.

The previous Linux fork went quiet for several years. This project is taking over maintenance with a practical goal: keep GitHub Desktop usable on Linux, catch up important Windows/macOS Desktop features where possible, and ship installable Linux packages directly from GitHub.

Current Focus

  • Keep the Linux app building and installable.
  • Continue catching up high-value Desktop workflows such as Git hooks, multi-domain account flows, security status links, and GitHub browser shortcuts.
  • Prefer small, tested, end-to-end feature slices over large rewrites.
  • Publish user-installable .deb, .rpm, and .AppImage artifacts from GitHub Actions.

See TODO.md for the active catch-up roadmap.

Linux Catch-up Features

This fork includes Linux-focused catch-up work on top of the upstream GitHub Desktop codebase:

  • AI commit messages: generate commit summaries and descriptions from the currently selected changes. Configure OpenRouter in Preferences, choose the model and base URL, and optionally disable generation per repository in Repository Settings.

    Commit AI preferences

    Commit AI generation

  • AI-native workflow: four one-shot AI actions that reuse the same OpenRouter provider as AI commit messages — generate a pull request description (title + body) from the branch's commits and diff, summarize a set of changes or a commit in plain language, review your changes before committing (severity-tagged findings), and get merge-conflict assistance that explains a conflict and suggests a resolution. Each shows in a shared result dialog with Copy/Regenerate. Reach the review/summarize actions from the command palette and PR descriptions from the "Open pull request" dialog.

  • Command palette: a fuzzy action launcher opened with Ctrl/Cmd+K — jump to repository sections, push/pull/fetch, create a branch, toggle the terminal, open preferences, or run the AI actions, all from the keyboard.

  • Git blame: a per-line blame gutter in the Files viewer (toggle Blame) showing the author and short SHA that last touched each line, with contiguous runs of the same commit collapsed.

  • In-file find: Ctrl/Cmd+F in the Files viewer opens a find bar with a match count and next/previous navigation that highlights the active match.

  • Commit graph: the History list draws branch/merge topology as colored lane lines beside each commit.

  • Submodules management: a Submodules tab listing each submodule with its checked-out commit, status (uninitialized / out-of-date / conflicted), and actions to update (init + checkout) all or one, and to sync remote URLs.

  • Integrated terminal: a repo-scoped terminal panel docked at the bottom of the window, toggled with Ctrl+`. It runs real shell sessions (node-pty + xterm.js) with multiple tabs and per-repository session persistence.

  • Files browser: a read-only Files tab with a working-tree file tree and a multi-tab viewer. Open several files at once (reorder tabs by dragging, close via the per-tab button, middle-click, or a right-click menu with close others/left/right/all), with syntax highlighting, rendered Markdown, CSV/TSV tables, inline image/video preview, and "open in browser" for HTML/PDF. Right-click tree entries to rename, trash, copy paths, or open in your editor.

  • Interactive rebase: a planning dialog to reorder, squash, fixup, and drop a range of recent commits, then run a single git rebase -i through Desktop's multi-commit-operation machinery with progress and undo.

  • Repository health dashboard: a cross-repository status view showing uncommitted files, ahead/behind counts, open pull request count, default-branch CI status, and a per-repository attention score, with sorting, filtering, and refresh. Signal cells drill down — click one to open that repository on the relevant tab (changes → Changes, ahead/behind → History, CI → Actions).

  • In-app pull request review: review a pull request without leaving the app — load its review threads, draft line comments, set a verdict (approve, request changes, or comment), and submit the review in one shot.

  • Stash management: a Stashes tab listing every stash entry — created by Desktop or the Git CLI — with apply and create-with-message actions.

  • Worktrees management: a Worktrees tab listing the repository's linked worktrees with each one's checked-out branch, uncommitted-change count, and locked/prunable state — and actions to add a worktree (on a new or existing branch), remove one, and prune stale entries.

  • GitHub Actions workflow runs: an Actions tab listing recent workflow runs with status icons, filterable by state (queued, in-progress, completed, success, failure, cancelled), and a "Run workflow" button that opens a dispatch dialog with a workflow dropdown and branch input.

  • Working-directory change summary: the Changes tab shows aggregate added/removed line counts next to the changed-file count.

  • Changed-file filtering: filter the Changes view by path using one or more case-insensitive search terms while keeping the existing file selection flow.

  • Organization diagnostics: see visible organizations for each signed-in GitHub.com or GitHub Enterprise account in Preferences, with guidance for common missing-organization causes such as OAuth app restrictions, SAML SSO, private membership, and repository permissions.

  • Manual Linux release builds: maintainers can run the CI / Linux workflow manually for a branch, tag, or SHA and produce .AppImage, .deb, .rpm, and .sha256 artifacts, with optional draft GitHub Release creation.

Download and Install

Packages are distributed through GitHub Actions artifacts and GitHub Releases. Package-manager feeds from older Linux forks are no longer the primary distribution path for this project.

  1. Open the CI / Linux workflow.
  2. Choose the latest successful run, or a tagged draft release when available.
  3. Download the artifact for your architecture:
    • ubuntu-amd64-artifacts
    • ubuntu-arm64-artifacts
    • ubuntu-arm-artifacts
  4. Extract the artifact and install one package:
    • Debian/Ubuntu: sudo apt install ./GitHubDesktop-linux-*.deb
    • Fedora/RHEL/openSUSE: install the .rpm with your package manager.
    • Any supported Linux distribution: mark the .AppImage executable and run it.

Example AppImage install:

chmod +x GitHubDesktop-linux-*.AppImage
./GitHubDesktop-linux-*.AppImage

Example Debian package install:

sudo apt install ./GitHubDesktop-linux-*.deb

Manual Release Builds

Maintainers build Linux packages with the CI / Linux GitHub Actions workflow. Use Run workflow, choose the branch/tag/SHA to build, and leave publish_release disabled for artifact-only validation builds.

To create a draft GitHub Release, run the same workflow with:

  • publish_release: enabled
  • release_tag: a tag such as release-3.4.9-linux1

The workflow builds .AppImage, .deb, .rpm, and .sha256 files for the supported Linux architectures. Users can download these files directly from the workflow artifacts or from the draft release after it is reviewed and published.

Development

This repository uses Yarn 1.x and Node 20.17.0.

yarn
yarn build:dev
yarn start

Useful checks:

yarn test
yarn lint
yarn compile:dev

For contributor and agent guidance, see AGENTS.md and CLAUDE.md.

Known Issues

Linux-specific issues and workarounds are tracked in docs/known-issues.md. Some older documentation in docs/ still refers to the previous fork and upstream release process; prefer this README and TODO.md for current project direction.

Relationship to Upstream

This project is based on GitHub Desktop but is not an official GitHub product release channel. We will continue to reference upstream desktop/desktop for architecture, bugfixes, and feature parity, while maintaining Linux packaging and Linux-first fixes here.

License

MIT

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

GitHub® and its stylized versions and the Invertocat mark are GitHub's trademarks or registered trademarks. When using GitHub's logos, follow the GitHub logo guidelines.

About

Fork of GitHub Desktop to support various Linux distributions

Resources

Code of conduct

Contributing

Security policy

Stars

5 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages