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 build:prodruns the production build plus the smoke test used before packaging
Source-mode development uses the bundled portable toolchain under resources/toolchain/, matching the packaged Desktop layout under resources/extra/toolchain/. There is no separate .runtime/node-dev/ runtime or bundled-dev dependency source.
npm run prepare:bundled-toolchain:optional stages the governed Node runtime when the current platform is supported. npm run dev runs that preparation step through predev.
Managed npm packages are installed beside the selected bundled Node runtime using npm's default global layout:
- Unix-like platforms:
resources/toolchain/node/binandresources/toolchain/node/lib/node_modules - Windows:
resources/toolchain/nodeandresources/toolchain/node/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 details