Summary
Currently, Lemonade Server is downloaded at runtime during gaia init (via LemonadeInstaller in src/gaia/installer/lemonade_installer.py). The NSIS installer only packages the Electron app. Users must wait for Lemonade to download on first launch, which adds friction to the onboarding experience.
This issue adds an option to install Lemonade Server as part of the GAIA NSIS installer, so users get a working setup out of the box.
Scope (v0.17.3 — Easy Path)
Goal: Include Lemonade Server MSI in the GAIA installer so it installs alongside the Electron app.
What needs to happen
- Download Lemonade MSI at build time — CI fetches the pinned Lemonade MSI (
lemonade.msi or lemonade-server-minimal.msi) from https://github.com/lemonade-sdk/lemonade/releases/download/v{version}/ during NSIS build
- Embed MSI in NSIS installer — Bundle the downloaded MSI as an installer resource
- Add NSIS install step — In
installer/nsis/installer.nsh customInstall, invoke msiexec /i "$INSTDIR\lemonade.msi" /qn /norestart to silently install Lemonade
- Skip Lemonade download in
gaia init — If Lemonade is already installed (correct version), LemonadeInstaller should detect it and skip the download step
- Version alignment — Use
LEMONADE_VERSION from src/gaia/version.py (currently 10.0.0) to pin which MSI gets bundled
Key files
installer/nsis/installer.nsh — Add Lemonade MSI invocation in customInstall
src/gaia/installer/lemonade_installer.py — Already has version check logic; ensure it skips when Lemonade is present
src/gaia/version.py — Version pin source of truth
- CI/CD workflow for NSIS build — Fetch Lemonade MSI artifact
Considerations
- Installer size will increase (~100-300MB depending on MSI variant)
- Lemonade MSI install is fast (~10s, silent mode)
- If Lemonade MSI install fails, GAIA app should still install — fallback to runtime download via
gaia init
- Uninstall:
gaia uninstall --purge-lemonade already handles Lemonade removal via msiexec /x
Future: Deep Integration with lemond (separate issue)
Lemonade recently shipped lemond, a standalone binary designed for bundling. A more integrated approach would:
- Use
lemond instead of the full Lemonade MSI
- Build a model management dashboard in Agent UI (download, delete, switch models)
- Tighter lifecycle management (start/stop
lemond from GAIA)
This deeper integration should be tracked in a future milestone, not v0.17.3.
Related issues
Summary
Currently, Lemonade Server is downloaded at runtime during
gaia init(viaLemonadeInstallerinsrc/gaia/installer/lemonade_installer.py). The NSIS installer only packages the Electron app. Users must wait for Lemonade to download on first launch, which adds friction to the onboarding experience.This issue adds an option to install Lemonade Server as part of the GAIA NSIS installer, so users get a working setup out of the box.
Scope (v0.17.3 — Easy Path)
Goal: Include Lemonade Server MSI in the GAIA installer so it installs alongside the Electron app.
What needs to happen
lemonade.msiorlemonade-server-minimal.msi) fromhttps://github.com/lemonade-sdk/lemonade/releases/download/v{version}/during NSIS buildinstaller/nsis/installer.nshcustomInstall, invokemsiexec /i "$INSTDIR\lemonade.msi" /qn /norestartto silently install Lemonadegaia init— If Lemonade is already installed (correct version),LemonadeInstallershould detect it and skip the download stepLEMONADE_VERSIONfromsrc/gaia/version.py(currently10.0.0) to pin which MSI gets bundledKey files
installer/nsis/installer.nsh— Add Lemonade MSI invocation incustomInstallsrc/gaia/installer/lemonade_installer.py— Already has version check logic; ensure it skips when Lemonade is presentsrc/gaia/version.py— Version pin source of truthConsiderations
gaia initgaia uninstall --purge-lemonadealready handles Lemonade removal viamsiexec /xFuture: Deep Integration with
lemond(separate issue)Lemonade recently shipped
lemond, a standalone binary designed for bundling. A more integrated approach would:lemondinstead of the full Lemonade MSIlemondfrom GAIA)This deeper integration should be tracked in a future milestone, not v0.17.3.
Related issues