TomLabs Launcher
Install, update and launch TomLabs desktop apps from one place
TomLabs Launcher
The desktop client of the TomLabs app store (https://apps.tomlabs.cz): browse the catalogue, install desktop apps into your profile with one click, keep them updated, launch and uninstall them — all from one window or from the tray. Web apps are listed too and open in the browser.
- Catalogue — every app the store lists, with icon, tagline, tags, the installed version and the newest build per channel (stable / nightly). Sidebar views: all, installed, updates, desktop, web.
- Install — downloads the portable zip from the store (or GitHub Releases for apps hosted there), verifies its
SHA-256, extracts it into
%LOCALAPPDATA%\TomLabs\Apps\<App>, adds a Start menu shortcut and an entry in Windows Apps & features. Nothing needs elevation. - Update — one app or Update all; apps that update themselves (TomLabs.AutoUpdate) are recognised by the version
of the exe on disk, and an update never installs an older build over a newer one. Files a running app still locks are moved aside as
.oldand cleaned up next time. - Launch / uninstall — from the card, the detail pane, the command palette or Apps & features; uninstalling can also drop the app's own data folders.
tomlabs://links —tomlabs://install/<App>[?channel=nightly],tomlabs://open/<App>,tomlabs://launch/<App>,tomlabs://uninstall/<App>. The store's Install with Launcher buttons use them; a second instance forwards the link to the running one.- Sign in — an access token (today a download token of the store, later your account) shows private apps; the
header chip says what the store takes you for (
GET /api/me). - Tray — closing the window keeps the launcher running; it checks installed apps every few hours and shows the number of updates in the tray tooltip and the header badge. Optional start with Windows.
- Ops console — command palette (Ctrl+K), theme switch System / Light / Dark, Logs page, version in the header; the launcher updates itself from the store through TomLabs.AutoUpdate.
Keyboard
| Keys | Action |
|---|---|
| Ctrl+K | Command palette: jump to an app, group or action |
| F5 | Reload the catalogue and check for updates |
| Ctrl+U | Update all |
| Ctrl+F | Filter |
| Ctrl+L | Logs |
| Ctrl+Shift+L | Cycle the theme: System → Light → Dark (System follows Windows live) |
| Ctrl+, | Settings |
| Esc | Close the detail pane / palette |
Files
| Where | What |
|---|---|
%LOCALAPPDATA%\TomLabs\Launcher\settings.json |
Settings (the store token DPAPI-protected). |
%LOCALAPPDATA%\TomLabs\Launcher\installed.json |
Installed apps: version, channel, folder, executable. |
%LOCALAPPDATA%\TomLabs\Launcher\downloads, icons, logs |
Verified zips (pruned), cached icons, daily log files. |
%LOCALAPPDATA%\TomLabs\Apps\<App> |
Installed applications (changeable in Settings). |
HKCU\Software\Classes\tomlabs |
The tomlabs:// protocol, re-pointed at the exe on every start. |
HKCU\...\Uninstall\TomLabs.<App> |
Apps & features entries; Run\TomLabsLauncher when Start with Windows is on. |
TomLabsLauncher --health prints the health JSON; --minimized starts in the tray. TOMLABSLAUNCHER_DATA_DIR
points the launcher at another data folder — such a run is sandboxed: no registry, shortcuts or protocol writes.
Build
dotnet build TomLabs.Launcher.slnx
dotnet test tests/TomLabs.Launcher.Core.Tests
dotnet publish src/TomLabs.Launcher/TomLabs.Launcher.csproj -c Release
TomLabs.AutoUpdate.Avalonia (nuget.org) is the self-update library. TomLabs.UiAutomation (nuget.org) is
the headless UI automation channel used to verify the UI without touching the desktop (see CLAUDE.md).
Releases are published by azure-pipelines.yml through the store's publish-desktop-app.yml template: pushes to
master go to the nightly channel, v* tags to stable. Before the first release run
pwsh F:/Root/GIT/TomLabs.AppStore/tools/Setup-AppPublishing.ps1 -AppName TomLabsLauncher -RepoRoot F:/Root/GIT/TomLabs.Launcher
(the public key is embedded in src/TomLabs.Launcher/UpdateSigning.cs; run Export-UpdateSigningKey TomLabsLauncher once to back the
private key up in KeePass).
Changelog
See CHANGELOG.md.
Changelog
Changelog
0.1.1 — 2026-09-25
- Fixed: Update and Update all could downgrade an app that had updated itself (e.g. put ClipCanvas 0.3.3 over 0.4.0). The launcher now reads the version of the exe on disk before installing over it and never installs an older build over a newer one; the stale record is corrected instead.
- Update all first re-reads the installed versions and checks the store again, so an hours-old catalogue can no longer pick what gets updated.
0.1.0 — unreleased
- Theme switch System / Light / Dark: the header button shows the current mode (half circle = System, sun, moon), Ctrl+Shift+L cycles it, the palette sets each mode directly; System follows Windows live. Light/Dark saved by the earlier two-state toggle is reset to System once.
- Catalogue of apps.tomlabs.cz with install, update, launch and uninstall of desktop apps; web apps open in the browser.
- Installs into
%LOCALAPPDATA%\TomLabs\Apps\<App>with a Start menu shortcut and an entry in Windows "Apps & features". tomlabs://install/<App>,tomlabs://open/<App>,tomlabs://launch/<App>andtomlabs://uninstall/<App>links, used by the store's Install with Launcher buttons.- Sign in with a store access token (private apps), settings for the install folder, channels, tray and autostart.
- Runs in the tray, checks installed apps for updates every few hours, updates itself through TomLabs.AutoUpdate.
- Ops-console UI: command palette (Ctrl+K), light/dark theme, Logs page.
- The self-update library comes from nuget.org (TomLabs.AutoUpdate 0.3.2) instead of a git submodule; updates work as before.