Build from source¶
You can run Scelo from the repository and produce your own installers.
Prerequisites¶
- Bun ≥ 1.1
- A C toolchain (for native modules like
node-pty) - Git
- For packaging: the usual electron-builder system deps for your target (e.g.
dpkg/fakerootfor.debon Linux)
Layout¶
| Path | What it is |
|---|---|
apps/scelo-ide |
The Electron main process + packaging |
apps/web |
The React renderer (the whole UI) |
swarms |
The separate swarm server (council + simulation) |
Run in development¶
Renderer changes need a rebuild
bun run dev rebuilds only the main process. After editing anything in
apps/web, rebuild the renderer:
(build:renderer builds apps/web and copies its dist into
resources/renderer.)
To run the renderer alone in a browser (limited — no window.scelo bridge):
Type-check¶
Bundle the runtimes¶
The packaged app ships its own Python and R. Build them once before packaging:
This downloads a portable CPython (PBS) and R into extraResources.
Package installers¶
bun run ide:dist:linux # AppImage + .deb
bun run ide:dist:win # NSIS .exe (see note)
bun run ide:dist:mac # .dmg (see note)
Artifacts land in apps/scelo-ide/dist. Packaging config is
apps/scelo-ide/electron-builder.yml (appId io.intelligentactuaries.scelo,
product name Scelo IDE).
Cross-compiling is limited
A .dmg can only be built on macOS. Windows .exe builds need a Windows
host (or CI) for a clean result — cross-building from Linux via Wine is
unreliable because of the bundled native runtimes. For releasing all three
platforms, build each on its own OS (or in CI). End users on Windows/macOS can
also use the finish-on-your-OS path.
Run the swarm¶
The swarm is its own server, not bundled:
See Running the swarm.