Hagicode Desktop is the native control center for running and managing HagiCode Server on a developer machine.
The desktop app packages the HagiCode experience into a local-first workflow for setup, monitoring, upgrades, and day-to-day operations.
- Monitor local resources and service health from a desktop dashboard
- Start, stop, and switch embedded server versions without leaving the app
- Manage package sources, dependencies, and license information in one place
- Provide onboarding, tray integration, RSS updates, and bilingual UI support
- Offer agent executor choices such as Claude Code, Codex, and GitHub Copilot CLI
src/main/- Electron main-process services for configuration, runtime control, and package managementsrc/preload/- the bridge layer between desktop runtime and renderer UIsrc/renderer/- React-based desktop interface and Redux stateresources/- packaged desktop assetsdocs/- deeper guides for development, signing, and storage sync
npm install
npm run dev
npm run build:prodnpm run devprepares the optional bundled portable toolchain, starts the renderer, watches Electron processes, and launches the app in development modenpm run dev:steam-modeboots development mode directly against a fixed extracted runtime so Steam mode startup can be verified quicklynpm run build:prodruns the production build plus the smoke test used before packaging
Source-mode development uses the shared Desktop runtime tree under build/desktop-runtime/current/components/node/runtime/, matching the packaged Desktop layout under resources/extra/runtime/components/node/runtime/. There is no separate .runtime/node-dev/ runtime or bundled-dev dependency source.
npm run dev runs predev, which stages the governed Desktop runtime payloads for supported platforms: the embedded .NET runtime, the bundled Node toolchain, the vendored code-server runtime, and the vendored OmniRoute runtime.
Those prepare:* commands now delegate the staging workflow to hagiscript runtime install with a Desktop-specific manifest, so the runtime layout still lands under build/desktop-runtime/current/components/... while the install orchestration stays inside hagiscript.
Managed npm packages are installed into Desktop-owned writable runtime data under userData/runtimeData/node/:
- Unix-like platforms:
userData/runtimeData/node/node<major>/npmGlobal/binanduserData/runtimeData/node/node<major>/npmGlobal/lib/node_modules - Windows:
userData/runtimeData/node/node<major>/npmGlobalanduserData/runtimeData/node/node<major>/npmGlobal/node_modules
- Download failures: check network access to the pinned host in
resources/embedded-node-runtime/runtime-manifest.json, or pre-populate the staged archive cache used by the bundled toolchain preparation script. - Unsupported platform/architecture: the command uses the platforms pinned in
resources/embedded-node-runtime/runtime-manifest.json; add a governed platform entry before expecting detection to succeed. - Version mismatch: rerun
npm run prepare:bundled-toolchain:optionalafter governance updates so the staged executable matches the active Node version.
docs/development.md- local development notes and update-source configurationdocs/artifact-signing.md- Windows signing setupdocs/azure-storage-sync.md- downstream release synchronization detailsdocs/i18n-hagi18n.md- Desktop locale maintenance with hagi18n YAML sources and generated runtime JSON