boxlang-runtime-desktop-electronlisted
Install: claude install-skill ortus-boxlang/skills
# BoxLang Desktop Runtime (Electron + MiniServer)
## Overview
This skill applies to desktop applications that embed BoxLang using Electron and run a local BoxLang MiniServer process.
Core model:
- Electron owns desktop lifecycle (window, tray, menu, shortcuts).
- A local MiniServer process serves the BoxLang app.
- The BrowserWindow loads the local MiniServer URL.
- Frontend assets are served via Vite in development and built artifacts in production.
This pattern gives a desktop UX without replacing BoxLang with another backend stack.
---
## Architecture Baseline
Expected module boundaries:
- `app/electron/Main.js`: app bootstrap and module wiring.
- `app/electron/BoxLang.js`: MiniServer process manager (start/stop/restart/readiness).
- `app/electron/AppMenu.js`: application menu.
- `app/electron/TrayMenu.js`: tray behavior and status.
- `app/electron/Shortcuts.js`: global keyboard shortcuts.
- `runtime/Package.bx`: MiniServer runtime packager using `.bvmrc`.
- `miniserver.json`: local server runtime controls.
- `.boxlang-dev.json`: development BoxLang runtime defaults.
- `.boxlang.json`: production BoxLang runtime defaults.
Preserve modular boundaries in `app/electron/*` instead of collapsing logic into a single file.
---
## Packaging Model
Package the MiniServer runtime, not Java:
- Packaged runtime paths:
- `runtime/bin`
- `runtime/lib`
- Version source: `.bvmrc`
- Packager script: `runtime/Package.bx`
- Startup preference: packaged `runtime/bin/boxlang-m