Soliloquy is the desktop environment and browser shell for the Alpenglow OS appliance. It owns the Rust shell, Servo integration work, V8/RV8 runtime bridge, browser chrome, UI bundle, desktop controls, and browser-facing optimization code.
The installable operating system, rootfs composition, kernel policy, service graph, board support, and netd live in ../alpenglow-os.
This project is early-stage and not production-ready.
The root workspace currently contains these Rust packages:
src/-soliloquy_browser_optimizationssrc/shell/-soliloquy-shell(desktop shell + browser)src/desktop/-soliloquy-daemon(DE daemon, consumes alpenglow OS state)
Other important top-level areas:
ui/desktop/- Svelte desktop environment and browser chromethird_party/servo/- in-tree Servo checkout used by the desktop shell flowdocs/- project docs for the current Cargo, Bun, Servo/RV8, and desktop pathstools/soliloquy/- desktop build/dev/start helpers
soliloquy-shellhandles shell/runtime concerns, platform integration, and the Servo/V8 bridgesoliloquy_browser_optimizationsprovides cache, memory residency, GPU, network, and V8 support modulessoliloquy-daemonis the desktop environment daemon — reads alpenglow OS state (network, kernel), manages apps/sessions, exposes an HTTP API for the Svelte UI../rv8is the sibling experimental browser/runtime engine checkout with IPC, rendering, parsing, and JS execution pathsui/desktopprovides the appliance desktop surface that Alpenglow stages into its image../alpenglow-osowns OS packaging, install, kernel policy, rootfs generation, target-board boot, and the system daemons (alpenglow-netd,oil)
Boundary: Soliloquy consumes alpenglow-netd for state types (from ../alpenglow-os) but owns all desktop-environment concerns — windowing, browser shell, app launcher, session management, Svelte UI.
cargo build
cargo testTargeted packages:
cargo test -p soliloquy-shell --lib
cargo test -p soliloquy_browser_optimizations
cargo test -p soliloquy-daemonBuild the Alpine-based Soliloquy image and boot it in QEMU with one command:
./start.sh # build + boot QEMU (headless)
./start.sh --headless # serial console mode
./start.sh --build-only # prepare image, skip VMOn Apple Silicon, the boot uses qemu-system-aarch64 with HVF acceleration
and reaches the soliloquy-daemon in <1 second:
[ 0.000000] Booting Linux on physical CPU
[ 0.267349] Run /init as init process
sh: can't access tty; job control turned off
2026-06-16T05:37:24Z INFO soliloquy_daemon: listening on 127.0.0.1:9842
The image is built from ../alpenglow-os (Alpine Linux base + kernel) with
the soliloquy-daemon binary cross-compiled for aarch64-musl and a minimal
init that skips OpenRC — just mounts filesystems and starts the daemon directly.
cd ui/desktop && bun run buildCargo— local Rust desktop workBun— Svelte UI bundle../alpenglow-os— OS install, QEMU, kernel, image gates
- Servo has a backend selection seam controlled by
SOLILOQUY_JS_ENGINE v8-experimentalis a real mode, but unsupported work still falls back to Servo's existingmozjspath- the current bridge covers simple literals,
+expressions, structuredwindow.__soliloquyEval(...)calls, and live snapshot-backed reads/writes for a narrow DOM surface - the live snapshot bridge has been extracted into
third_party/servo/components/servo/soliloquy_bridge.rs cargo test --manifest-path src/shell/Cargo.toml --libpasses locally