Desktop Material

Desktop Material

A four-step map from the wiki home to the right guide

Use this map to choose a starting point: learn the daily workflow in the User Guide, browse shipped surfaces in the Feature Gallery, or open a specialist guide for deeper details.

Platform support: Desktop Material is Windows-only. Windows owns the supported runtime, build, package, installer, release, and E2E paths. The retained Linux TUI prototype, package notes, and five Xvfb captures are historical July 27 evidence, not a supported edition or Windows-release blocker.

Desktop Material is an independent Material Design 3 (M3 Expressive) remake of GitHub Desktop. It is a fork of desktop/desktop (MIT) with the entire application shell rebuilt around Material Design 3 — animated light/dark theming, dynamic type and color tokens, and a browser-like, tabbed workspace — while keeping GitHub Desktop's complete Git workflow intact underneath.

On top of that shell, Desktop Material ships multi-provider accounts and organizations, automation, GitHub Actions and logs, agent access, searchable graph History, multiple stashes, pull-all, multi-window workflows, per-account repository tabs, Git-backed settings and notification bulk triage, configurable bottom-right error notices, and a non-modal dialog framework. Its Material first-run experience, adaptive toolbar, profile-backed app identity, favorite/portable tabs, and layered appearance controls let the workspace respond to both the active profile and the selected repository. Initialized submodules can open as temporary repositories without entering the saved repository list, with a profile-customizable Back control to the persisted root. The completed parity roadmap turns audited Git, gh, REST, and GraphQL capabilities into named app functions rather than a searchable command or endpoint catalogue.

Status: Desktop Material is in active development. Its numbered roadmap now extends through M27; M0–M21 and M23 have published receipts, M22 keeps a separately tracked visual refresh, and M24–M27 retain their exact acceptance/publication states in PLAN.md, ROADMAP.md, and HANDOFF.md. The current source completes detailed Cheap LFS commit progress, a persisted three-file/sequential upload choice, a large-file Changes filter, safe partial failure continuation, GHCR and Docker Hub full-snapshot storage, encrypted private-repository objects, pointer-only clone repair, and proven sub-1.5 GB automatic commit/push batches. Exact build, headless, source-publication, installer, Pages, and wiki receipts are maintained in HANDOFF.md. Corrective source c22e29a03a passed cloud, CI, CodeQL, Pages, and installer run 30057456712, which published immutable six-asset Release v3.6.3-beta3-zadthusbjk. The public 14.8 GB Bambu exercise completed four proven UI batches after a durable HTTP 408 retry, retained raw fallback across 26 cloud assets, passed its exact manifest verifier at 712ad85, and restored 10/10 hashes from pointer-only Git history. Its first automatic/manual overlap prompted repository-scoped serialization; the corrected UI receipt remains explicitly separated in HANDOFF.md.

The July 27 exact-90% restore look-ahead, sandboxed app-hosted browser, and private-repository lock passed the final focused 760/760 across 58 files gate, 14/14 verifier contracts, full TypeScript, the exact Windows production build, and isolated hidden-desktop interaction/privacy review. The source and captures are pushed through 2abccae8fd, and Pages/wiki publication is verified live. Packaged Windows E2E is verified. Installer/Release evidence remained pending at that dated checkpoint; the archived TUI compatibility work is outside the current Windows acceptance boundary.

M21 closes the complete 30-item GitHub Desktop demand brief: exact account and repository identity, native PR review/creation/activity, selective and external stashes, full tag lifecycle, scalable repository/branch/history navigation, fork checkout, reviewed batch sync, tree/CSV/TGA diff ergonomics, editor and WSL integration, global ignores, custom commands, patch exchange, bulk branch cleanup, network paths, and live/offline GitHub Projects. The feature ledger links every request to a dedicated safety and verification contract.

Advanced tag lifecycle workspace with local, pushed, and remote-only tags

Desktop Material workspace with a profile-customized app identity and favorite repository tab


Install on Windows

The automated release supports x64 Windows, and Windows packaging now produces a portable GitHub Desktop-x64.zip beside the installer outputs. From Windows PowerShell 5.1 or PowerShell 7, run this one line in a normal, non-administrator shell:

Microsoft.PowerShell.Utility\Invoke-RestMethod 'https://raw.githubusercontent.com/Ding-Ding-Projects/desktop-material/main/script/install-windows.ps1' | Microsoft.PowerShell.Utility\Invoke-Expression

The tracked script resolves the latest stable installer release from this exact repository, requires the matching GitHub SHA-256 asset digest, checks any Authenticode signature, installs silently for the current user, and cleans up its temporary download. Windows releases are permanently unsigned; packaging and publication require NotSigned, and release notes warn about possible SmartScreen or unknown-publisher prompts. The script reports that fact and refuses an unsupported architecture or unverified download. See the User Guide for explicit silent install, update, and uninstall examples, the current-user scope and no-force-close contract, the portable-ZIP extraction note, and the manual-download path.


Historical Linux TUI prototype record (unsupported)

The commands below reproduce the July 27 prototype record. They are retained for audit, not as a current installation recommendation; Desktop Material's supported installation path is Windows.

Linux shell:

git clone https://github.com/Ding-Ding-Projects/desktop-material.git && cd desktop-material && uv tool install ./tui && uv tool update-shell

Windows PowerShell:

git clone https://github.com/Ding-Ding-Projects/desktop-material.git; if ($LASTEXITCODE -ne 0) { throw 'git clone failed' }; Set-Location .\desktop-material; uv tool install .\tui; if ($LASTEXITCODE -ne 0) { throw 'uv tool install failed' }; uv tool update-shell

Close and reopen the terminal afterward, then run github /path/to/repository on Linux or github C:\path\to\repository on Windows. The interactive acceptance target was Linux-first; the Windows Terminal launch path and cross-platform core were also tested at that checkpoint. github push scanned safe working candidates and the publication delta, with a conservative full-source-history fallback, before the real push; github pull restores verified canonical pointers after native Git succeeds, and github git … passes other native Git argv through without a shell. Open/Create includes a clickable folder browser. Bracketed or Textual clipboard paste immediately unwraps one matching outer quote pair; submission applies the same normalization as a fallback. See the TUI installation guide for the requirements, packaging, Docker, security, and failure-mode details.


Contents

Page What it covers
Historical Linux TUI prototype Archived July 27 package and launcher commands; not a supported product route or Windows-release blocker.
Install on Windows Fully automatic PowerShell install, portable ZIP, integrity checks, architecture limits, and manual download.
User Guide Task-oriented walkthrough for the Material welcome, appearance scopes, adaptive toolbar, accounts, the app-hosted browser, guided Git/GitHub functions, Cheap LFS restore progress, organizations, tabs, automation, Actions, History, stashes, pull-all, multi-window, and the MD3 shell.
Guided Feature Gallery Machine-checked target of one distinct screenshot for each of 86 Windows visual scenes; the searchable Publish organization owner and current-source updater frames are accepted and published as their own slots, while five retained Linux/Xvfb assets stay explicitly archived outside the set.
Automation Scheduled commit & push and pull, layered overrides, safety guards, and merge-all branches/worktrees.
Submodules The simplest page in the wiki — what submodules are (toy boxes inside toy boxes), pre-clone badges, temporary open-and-Back navigation, the Submodule Manager, configuration, fixes, and submodule vs subtree, all in pictures.
Regex Guide Filter chips, substring/regex modes, the regex builder, and the search surfaces that use them.
Developer Guide Architecture for contributors — Electron windows, store/dispatcher flow, dugite, profile repos, agent server, CLI routing, and SCSS tokens.
Agent API Shipped MCP, local REST, stdio proxy, and CLI access for safe AI-agent control.
Living parity roadmap Completed named-function delivery waves, current maintenance, and production acceptance gates.

Available product scope

The M0–M19 portions below have their existing production receipts. Post-M19 maintenance extensions are described separately and do not borrow those older receipts as acceptance evidence.

Live Settings history side sheet

Appearance, onboarding, and adaptive layout

Settings → Appearance now keeps only ordinary language, theme, scale, list, sorting, formatting, and diff preferences. Custom visuals stay with their owners. Shift+right-click the actual app identity/workspace, progress bar, toolbar, repository list, tab strip, code/diff surface, repository name or logo, tab title, reviewed Material entry point, or temporary-submodule Back control—or focus it and use the Context Menu key or Shift+F10—to open its editor beside it. Ordinary right-click remains available for native and component-specific commands.

Every owner has its own strict setting, local Git repository path, and History manager. Profile, feature, repository-instance, and tab-instance changes never share a mutable timeline; undo, redo, and restore append audit commits. Repository workspace, toolbar, tabs, list-name, and logo owners can inherit their matching profile owner. A local appearance UUID keeps those histories stable when the working copy moves. Rapid visual-control bursts persist only their latest normalized owner value before the commit debounce. Repository Settings therefore has no Appearance tab.

The app identity editor can replace the in-app name and logo, then tune geometry, colors, typography, spacing, emphasis, and effects. It restores with the profile but does not rename the signed executable or operating-system icon. An inherited repository logo can open the profile default editor beside that same actual logo.

Profile-customized app identity restored in the Material workspace

The first-run page uses the same Material type, color, shape, elevation, and responsive rules as the main shell. GitHub.com, Enterprise, and continue-locally routes stay inside one focused task card; the tonal workspace preview hides when a compact window needs the space.

Material first-run welcome with a focused setup card and tonal workspace preview

Appearance editor anchored beside its actual owner with History, a dedicated local Git path, and burst-safe persistence

Measured narrow toolbar with Build and Run and Commit and Push in the More actions surface

Automation, CI, and agent control

Compact Repository Releases at 200 percent scale with one complete row and keyboard-reachable filter and selection tools

Adaptive customization and navigation maintenance

Word-style tab appearance editor with typography, alignment, and independent text and background palettes

Arrange tabs surface with pinned and manual movement controls plus one-shot sorts

Runtime repository-tab search matching an active repository by name and path

History commit row with its named More actions control and hover hint

Short Repository Tools workspace scrolled to its reachable final results surface

Material workflow-run cancellation review naming the exact run, ref, actor, and commit

Reviewed current-branch rebase with ahead and behind counts and a bounded commit preview

Clone-style Add Submodule review with a synthetic URL, checkout path, and tracked branch

Initialized submodule opened temporarily with a context bar and Back control to the persisted root repository

Production-verified M0–M19 native Git and GitHub functions

Final full-history state after a verified deepen

Native pull-request creation success

Actions artifact download and digest evidence

Actions cache manager with usage totals, refs, wrapped keys, and delete controls

Headless Actions run pagination with the page-two sentinel retained

Headless Actions artifact inventory with bounded pagination

Headless Actions sentinel evidence with wrapped content and no clipping

Actions run page two retained after Refresh

Actions artifact page-two sentinel with wrapped text

Attempt-aware Actions job pagination with the recovered page-two job selected

Pending Actions deployment environments with long reviewer and protection details

Effective branch rules inspector

Automation preferences with global and account overrides

Agent access with loopback and bearer-token controls

History, stashes, repositories, and windows

History search and commit ancestry graph

History Commit list tab from the built Windows app

History Graph view from the built Windows app

Provider accounts for GitLab and Bitbucket

Open repositories and worktrees in another window

Requested 200 percent UI scale auto-fitted without clipping

Guided shallow clone with commit depth

Guided sparse-checkout directory editor

Account-aware GitHub notifications