JitHub is a native GitHub client for Windows. It brings repositories, issues, pull requests, code, commits, Stars, Gists, profiles, and notifications into one calmer desktop workspace.
- See recent activity, repositories, account overview, and useful shortcuts in a customizable Home workspace
- Work through personal and repository issue and pull request queues with Markdown, reactions, replies, reviews, and merge flows
- Browse branches and files with a native WinUIEdit editor, rich Markdown, secure SVG viewing, and virtualized CSV or TSV tables
- Review commit history with changed-file navigation, virtualized diffs, search, comments, checks, and branch comparison
- Organize Stars, create and edit Gists, inspect profiles and contributions, manage repositories, and triage notifications
- Keep working from cached data when connectivity changes, with keyboard access, High Contrast, and five live color themes in both Light and Dark
- Ship self-contained Native AOT Windows builds for x86, x64, and ARM64 with identifier-free diagnostics
.NET 10withglobal.jsonpinning SDK10.0.202- Windows App SDK and WinUI 3 for the packaged desktop app
- Self-contained Native AOT Release and Store builds for x86, x64, and ARM64
- React/Vite build-time rendering for the public static website, published through GitHub Pages
- GitHub device authorization in the desktop app, with credentials in Windows Credential Locker
- FlaUI-based UI automation for screenshot proof and smoke checks
- Native WinUIEdit/Scintilla code editing with app-owned tokenized chrome
JitHub.WinUI: the desktop appJitHub.Site: the static public websiteJitHub.Web: the temporary legacy sign-in host for Store builds released before device sign-inJitHub.WinUI.Automation: screenshot and UI smoke-test harness for the app design labMarkdownRenderer: native WinUI markdown renderer library, documented indocs/markdown-renderereng: local helper scripts for app launch, screenshot capture, packaging, and build checks
- The desktop app shows a GitHub device code, opens GitHub's verification page, and exchanges the approval directly with GitHub.
- Access and refresh tokens stay in Windows Credential Locker. The static website never handles sign-in.
- Older Store builds still use the temporary legacy sign-in host during the release transition.
- The desktop UI is driven by semantic WinUI resource dictionaries and reusable app-owned controls.
Use the latest Visual Studio 2022 with these workloads:
- .NET desktop development
- Windows application development
You also need the .NET 10 SDK.
Check optional local Windows CLI helpers with:
.\eng\Ensure-WindowsCliTools.ps1Install missing local helpers with:
.\eng\Ensure-WindowsCliTools.ps1 -InstallMissingLocal sign-in uses a GitHub OAuth app with Enable Device Flow selected in GitHub Developer settings. Configure the desktop app with that app's public client ID in JitHub.WinUI/appsettings.json or override it locally:
$env:JITHUB_OAUTH_CLIENT_ID = "<your GitHub OAuth client ID>"Device sign-in does not use a callback URL or client secret. Do not put credentials or tokens in this public repository.
The desktop app uses the native WinUIEdit/Scintilla component through its first-party CodeEditorControl wrapper. No web editor bundle or Node.js asset build is required.
Build and test the static site locally with Node.js 22:
cd JitHub.Site
npm ci
npm run build
npm test
The output in JitHub.Site/dist contains only static files.
Open JitHub.slnx in Visual Studio and run the packaged JitHub.WinUI project.
To build Debug, apply a debug package identity with the Windows App CLI, and launch the app from the terminal, run:
.\eng\Start-JitHubWinUIDebug.ps1This builds JitHub.WinUI as Debug|x64, registers the dedicated JitHub.WinUI.Debug identity, and launches JitHub.WinUI.exe.
To launch a different platform or pass app arguments:
.\eng\Start-JitHubWinUIDebug.ps1 -Platform ARM64
.\eng\Start-JitHubWinUIDebug.ps1 -AppArguments '--page=design-lab', '--theme=dark'Remove stale development identities without launching the app with eng\Reset-JitHubWinUIDebugIdentity.ps1. The cleanup is limited to development-mode registrations and preserves the installed Store package.
The desktop app includes a dev-only DesignLabPage plus a small UI automation harness for screenshot proof.
Generate the current light/dark screenshot matrix with:
.\capture-winui-design.ps1Artifacts are written to:
artifacts/screenshots/winui/index.htmlartifacts/screenshots/winui/*.png
The capture script builds JitHub.WinUI, launches scenario-specific pages with launch arguments such as --page=design-lab, --scenario=buttons, and --theme=dark, and then uses the JitHub.WinUI.Automation project to capture deterministic UI states through FlaUI.
winapp ui is also available as a lightweight command-line proof path. Use ./eng/Invoke-WinAppCliSmoke.ps1 for quick launch/wait/screenshot validation; keep the FlaUI design-lab harness for the full deterministic matrix.
Regenerate the website's paired Light/Dark product media and Home motion clip with:
.\eng\Capture-JitHubWebsiteMedia.ps1The website-showcase probe uses synthetic public-preview data, blocks outbound networking, captures exact 3200x1800 physical DWM windows with at least a 1200x675 logical workspace, and writes a hash-verified media manifest before updating the tracked website assets.
- Fork this repository and clone it locally.
- Create a branch for your feature or bug fix.
- Make your changes and commit them with a descriptive message.
- Push your branch to your fork.
- Open a pull request against
main.
Please follow CODE_OF_CONDUCT.md and CODING_STYLE.md.
JitHub is licensed under the MIT License. See LICENSE for details.
