If this project helps you, a coffee helps me keep working on it.
Install every Windows app you ship from one private catalog.
LocalDesktopStore turns GitHub Releases into a desktop app catalog for Windows. Point it at your account, review the available installers, then install or update without hunting through release pages.
Download the latest release · See the product · Review the trust model
| Your releases, one view | Discover installable apps from one GitHub user or several trusted owners. Search and topic filters keep larger catalogs manageable. |
| The right install path | Route MSI, MSIX, App Installer, Inno Setup, NSIS, interactive EXE, and portable ZIP releases through the correct Windows flow. |
| Checks before execution | Verify SHA-256 sidecars, require trusted Authenticode signatures for MSI and EXE packages, and pin known publishers across updates. |
| Local control | Keep settings and install history on the machine. Background checks can notify you, but they never install software automatically. |
LocalDesktopStore is the desktop companion to LocalChromeStore. It is useful on fresh workstations, test machines, and small Windows fleets where your own GitHub releases are the source of truth.
Real application UI with a clearly labeled sample catalog. No mock interface is used.
The real discovery settings view, shown with sample configuration data.
Open the latest release and choose the format that fits the machine:
| Download | Best for |
|---|---|
LocalDesktopStore-win-Setup.exe |
Normal per-user installation with Velopack updates |
LocalDesktopStore-win-Portable.zip |
A portable copy that can run from any writable folder |
LocalDesktopStore-vX.Y.Z-per-user-x64.msi |
Managed per-user deployment |
LocalDesktopStore-vX.Y.Z-per-machine-x64.msi |
Elevated machine-wide deployment through GPO or Intune |
LocalDesktopStore-vX.Y.Z-win-x64.zip |
Plain framework-dependent application files |
The app requires the .NET 9 Desktop Runtime for Windows x64.
Current release binaries are not Authenticode-signed because no code-signing certificate is available for this project. Verify each downloaded file against its published SHA-256 sidecar before opening it.
- Open Settings.
- Enter the GitHub user or organization that owns your releases.
- Add a personal access token if you need private repositories or higher API limits.
- Keep Verify SHA-256 sidecar enabled, then select Save and refresh.
- Review a card and choose Install.
The catalog accepts extra owners, hidden repository rules, and an optional windows-app topic filter. Search discovery is opt-in because results outside your curated owner list need stricter publisher checks.
LocalDesktopStore does more than match a filename.
- MSI and EXE installers must pass Windows
WinVerifyTrustbefore execution. The publisher certificate thumbprint is remembered for that repository, so a signer change is visible and requires approval. - MSIX installation stays with the Windows package APIs. Windows validates the package certificate and dependencies.
- Portable ZIP releases use a published SHA-256 sidecar when one is available. A mismatch stops the install.
- Search-discovered repositories require an explicit
owner/repo=THUMBPRINTpublisher pin before an MSI or EXE can run. - GitHub tokens stay in local settings. Catalog export does not include them.
Checks fail closed where execution is involved. Advisory lookups through OSV are optional and informational, so a temporary network failure does not hide the rest of the catalog.
| Release asset | Handling |
|---|---|
.msi |
Runs through Windows Installer with logged output |
.appinstaller |
Opens Windows App Installer for dependencies and update policy |
.msix, .msixbundle |
Installs for the current user through Add-AppxPackage |
Inno Setup .exe |
Uses Inno's silent install switches |
NSIS .exe |
Uses the NSIS silent install switch |
Other setup .exe |
Opens interactively instead of guessing unsafe switches |
Portable .zip |
Extracts to the local app store and creates a Start Menu shortcut |
When a release includes several supported assets, LocalDesktopStore favors the most Windows-native package. MSI wins first, followed by App Installer, MSIX, recognized EXE installers, then portable ZIP.
- Refresh checks release metadata and rebuilds the catalog.
- Update all processes outdated apps one at a time so failures remain tied to the correct package.
- Card checkboxes expose bulk install, update, and uninstall actions.
- Run after install and Pin after install remember per-app preferences.
- The File menu can export and import catalog settings without changing the destination machine's installed-app record.
- Optional scheduled checks run as the signed-in user, post a tray notification, and do not install anything.
Verified downloads are cached by repository, release, and SHA-256. A valid cache hit avoids a second download while still checking the stored bytes.
The same service layer is available without opening the WPF window:
.\LocalDesktopStore.exe --list
.\LocalDesktopStore.exe --install SysAdminDoc/ExampleApp --json
.\LocalDesktopStore.exe --run SysAdminDoc/ExampleApp
.\LocalDesktopStore.exe --uninstall SysAdminDoc/ExampleAppExit code 0 means success. Invalid arguments return 2, a missing app returns 3, operation failures return 4, and cancellation returns 5. Publisher changes remain blocked in command-line mode because there is no interactive approval surface.
| Path | Contents |
|---|---|
%APPDATA%\LocalDesktopStore\settings.json |
User settings and optional GitHub token |
%APPDATA%\LocalDesktopStore\installed.json |
Installed-app manifest |
%ProgramData%\LocalDesktopStore\settings.json |
Optional machine-level enterprise seed |
%LOCALAPPDATA%\LocalDesktopStore\apps\ |
Extracted portable apps |
%LOCALAPPDATA%\LocalDesktopStore\downloads\ |
Downloads and verified cache entries |
%LOCALAPPDATA%\LocalDesktopStore\logs\ |
Install logs and crash reports |
Set LOCALDESKTOPSTORE_DATA_ROOT before launch to redirect all writable app data beneath one isolated root. This is useful for testing, demonstrations, and disposable environments.
git clone https://github.com/SysAdminDoc/LocalDesktopStore.git
cd LocalDesktopStore
dotnet restore LocalDesktopStore.sln --locked-mode
dotnet build LocalDesktopStore.sln -c Release --no-restore
dotnet test LocalDesktopStore.sln -c Release --no-buildBuild the framework-dependent app and both WiX packages with:
pwsh -NoProfile -File installer\build.ps1Build the Velopack channel with:
pwsh -NoProfile -File installer\build-velopack.ps1All builds and release artifacts are produced locally. The repository does not use remote build workflows.
- WPF on .NET 9 with MVVM and no third-party MVVM toolkit
- Catppuccin Mocha by default, with a Latte light theme and optional Windows accent color
- English and Spanish UI resources
- MIT licensed
The actionable roadmap is in ROADMAP.md. Completed work is recorded in CHANGELOG.md.
Bug reports and focused pull requests are welcome. Include the Windows version, package type, and the relevant activity or crash log when reporting install behavior.
If LocalDesktopStore saves you time, you can support continued work on Ko-fi.
MIT © 2026 SysAdminDoc


