An open API service indexing awesome lists of open source software.

https://github.com/hagicode-org/desktop

Electron desktop app for installing, running, monitoring, and updating HagiCode on developer machines.
https://github.com/hagicode-org/desktop

desktop-app developer-tools electron hagicode local-server react

Last synced: 18 days ago
JSON representation

Electron desktop app for installing, running, monitoring, and updating HagiCode on developer machines.

Awesome Lists containing this project

README

          

# Hagicode Desktop

[简体中文](./README_cn.md)

Hagicode Desktop is the native control center for running and managing HagiCode Server on a developer machine.

## Product overview

The desktop app packages the HagiCode experience into a local-first workflow for setup, monitoring, upgrades, and day-to-day operations.

## Core capabilities

- 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

## Architecture at a glance

- `src/main/` - Electron main-process services for configuration, runtime control, and package management
- `src/preload/` - the bridge layer between desktop runtime and renderer UI
- `src/renderer/` - React-based desktop interface and Redux state
- `resources/` - packaged desktop assets
- `docs/` - deeper guides for development, signing, and storage sync

## Local development

```bash
npm install
npm run dev
npm run build:prod
npm run build:win:portable
npm run build:win:appx
npm run build:win:msix
npm run build:linux:appimage
npm run build:linux:zip
npm run build:mac:x64:dmg
npm run build:mac:arm64:zip
```

- `npm run dev` prepares the optional bundled portable toolchain, starts the renderer, watches Electron processes, and launches the app in development mode
- `npm run dev:steam-mode` boots development mode directly against a fixed extracted runtime so Steam mode startup can be verified quickly
- `npm run build:prod` runs the production build plus the smoke test used before packaging
- platform packaging commands now map directly to the CI matrix so local artifact verification can follow the same release contract

### Development bundled Node runtime

Source-mode development uses the shared Desktop runtime tree under `resources/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 now lands under `resources/components/...` while the install orchestration stays inside hagiscript.

Managed npm packages are installed into Desktop-owned writable runtime data under `userData[/dev]/runtimeData/node/`:

- Unix-like platforms: `userData/runtimeData/node/node/npmGlobal/bin` and `userData/runtimeData/node/node/npmGlobal/lib/node_modules`
- Windows: `userData/runtimeData/node/node/npmGlobal` and `userData/runtimeData/node/node/npmGlobal/node_modules`

### Development runtime troubleshooting

- Download failures: check network access to the pinned host in `resources/manifest.yml` under `desktopExtensions.embeddedNodeRuntime`, 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/manifest.yml` under `desktopExtensions.embeddedNodeRuntime`; add a governed platform entry before expecting detection to succeed.
- Version mismatch: rerun `npm run prepare:bundled-toolchain:optional` after governance updates so the staged executable matches the active Node version.

## Related guides

- `docs/development.md` - local development notes and update-source configuration
- `docs/artifact-signing.md` - Windows signing setup
- `docs/azure-storage-sync.md` - downstream release synchronization details
- `docs/i18n-hagi18n.md` - Desktop locale maintenance with hagi18n YAML sources and generated runtime JSON