Files
wehub-resource-sync 426e9eeabd
Benchmark Bridge Tests / benchmark (bunx @biomejs/biome check packages/lifeops-bench/src, benchmark-lint) (push) Waiting to run
Benchmark Bridge Tests / benchmark (bunx vitest run --config packages/lifeops-bench/vitest.config.ts --root packages/lifeops-bench --passWithNoTests, benchmark-tests) (push) Waiting to run
Build Agent Image / build-and-push (push) Waiting to run
Chat shell gestures / Chat shell gesture + parity e2e (push) Waiting to run
ci / test (push) Waiting to run
ci / lint-and-format (push) Waiting to run
ci / build (push) Waiting to run
ci / dev-startup (push) Waiting to run
Cloud Gateway Discord / Test (push) Waiting to run
Cloud Gateway Webhook / Test (push) Waiting to run
Cloud Tests / lint-and-types (push) Waiting to run
Cloud Tests / unit-tests (push) Waiting to run
Cloud Tests / integration-tests (push) Waiting to run
Cloud Tests / e2e-tests (push) Blocked by required conditions
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Deploy Apps Worker (Product 2) / Determine environment (push) Waiting to run
Deploy Apps Worker (Product 2) / Deploy apps worker to apps-control host (${{ needs.determine-env.outputs.environment }}) (push) Blocked by required conditions
Deploy Eliza Provisioning Worker / Determine environment (push) Waiting to run
Deploy Eliza Provisioning Worker / Deploy worker to Hetzner host (${{ needs.determine-env.outputs.environment }} @ ${{ needs.determine-env.outputs.deployment_sha }}) (push) Blocked by required conditions
Dev Smoke / Classify changed paths (push) Waiting to run
Dev Smoke / bun run dev onboarding chat (push) Blocked by required conditions
Dev Smoke / Vite HMR dependency-level smoke (push) Blocked by required conditions
Electrobun Submodule Guard / electrobun gitlink is fetchable (push) Waiting to run
gitleaks / gitleaks (push) Waiting to run
Markdown Links / Relative Markdown Links (push) Waiting to run
Publish @elizaos/example-code / check_npm (push) Waiting to run
Publish @elizaos/example-code / publish_npm (push) Blocked by required conditions
Publish @elizaos/plugin-elizacloud / verify_version (push) Waiting to run
Publish @elizaos/plugin-elizacloud / publish_npm (push) Blocked by required conditions
Quality (Extended) / Homepage Build (PR smoke) (push) Waiting to run
Quality (Extended) / Comment-only diff guard (push) Waiting to run
Quality (Extended) / Format + Type Safety Ratchet (push) Waiting to run
Quality (Extended) / Develop Gate (secret scan + UI determinism) (push) Waiting to run
Quality (Extended) / Develop Gate (lint) (push) Waiting to run
Sandbox Live Smoke / Sandbox live smoke (push) Waiting to run
Snap Build & Test / Build Snap (amd64) (push) Waiting to run
Snap Build & Test / Build Snap (arm64) (push) Waiting to run
supply-chain / sbom (push) Waiting to run
supply-chain / vulnerability-scan (push) Waiting to run
Build, Push & Deploy to Phala Cloud / build-and-push (push) Waiting to run
Test Packaging / Validate Packaging Configs (push) Waiting to run
Test Packaging / PyPI on Python ${{ matrix.python }} (push) Waiting to run
Test Packaging / Pack & Test JS Tarballs (push) Waiting to run
Test Packaging / elizaos CLI global-install smoke (node + bun) (push) Waiting to run
UI Fixture E2E / ui-fixture-e2e (push) Waiting to run
UI Fixture E2E / fixture-e2e (push) Waiting to run
UI Story Gate / story-gate (push) Waiting to run
vault-ci / test (macos-latest) (push) Waiting to run
vault-ci / test (ubuntu-latest) (push) Waiting to run
vault-ci / test (windows-latest) (push) Waiting to run
vault-ci / app-core wiring tests (push) Waiting to run
verify-patches / verify patches/CHECKSUMS.sha256 (push) Waiting to run
Voice Benchmark Smoke / voice-emotion fixture smoke (push) Waiting to run
Voice Benchmark Smoke / voiceagentbench fixture smoke (push) Waiting to run
Voice Benchmark Smoke / voicebench-quality unit smoke (push) Waiting to run
Voice Benchmark Smoke / voicebench TypeScript unit (no audio) (push) Waiting to run
Voice Benchmark Smoke / voice bench smoke summary (push) Blocked by required conditions
Windows CI / windows ([bun run --cwd packages/app-core test bun run --cwd packages/elizaos test bun run --cwd packages/cloud/shared test], app-and-cli) (push) Waiting to run
Windows CI / windows ([bun run --cwd packages/scenario-runner test bun run --cwd packages/vault test bun run --cwd packages/security test bun run --cwd plugins/plugin-coding-tools test], framework-packages) (push) Waiting to run
Windows CI / windows ([bun run --cwd plugins/plugin-elizacloud test bun run --cwd plugins/plugin-discord test bun run --cwd plugins/plugin-anthropic test bun run --cwd plugins/plugin-openai test bun run --cwd plugins/plugin-app-control test bun run --cwd plugins/pl… (push) Waiting to run
Windows CI / windows ([node packages/scripts/run-turbo.mjs run build --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/agent --concurrency=4 node packages/scripts/run-bash-linux-only.mjs scripts/verify-riscv64-buildpaths.sh node packages/scripts/run… (push) Waiting to run
Windows CI / windows ([node packages/scripts/run-turbo.mjs run typecheck --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/cloud-shared --concurrency=4 bun run --cwd packages/core test bun run --cwd packages/shared test], core-runtime, 75) (push) Waiting to run
Test Packaging / Build & Test PyPI Package (push) Waiting to run
Voice Workbench / headless workbench (mocked backends) (push) Has been cancelled
Voice Workbench / real acoustic lane (nightly, provisioned only) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:43:05 +08:00

10 KiB
Raw Permalink Blame History

elizaOS Live

elizaOS Live is the canonical elizaOS Debian fork and bootable USB Linux distribution. It uses Tails' live-OS plumbing for the hard parts of amnesia, Tor mode, MAC spoofing, AppArmor, persistence, and live-build, but the primary boot, greeter, and desktop experience are branded as elizaOS Live. Tails attribution is kept in credits, license files, and engineering docs; users should not see derivative branding as the main product identity.

The product boots into a normal GNOME desktop with the bundled elizaOS app as the home surface. Users choose storage behavior and network privacy per boot: amnesia or encrypted USB persistence, and direct networking or Tor Privacy Mode.

┌────────────────────────────────────────────────┐
│  Full Linux desktop (GNOME by default)         │
│                                                │
│   ┌──────────────────────────────────────┐    │
│   │      elizaOS desktop app             │    │
│   │   (chat, agent, BUILD_APP, voice…)   │    │
│   └──────────────────────────────────────┘    │
│                                                │
│  + Files, Terminal, Browser, apt ecosystem     │
│  + Notifications, panel, workspace switching   │
│  + GPU acceleration (Vulkan / CUDA / ROCm)     │
└────────────────────────────────────────────────┘

Product scope

USB-only distribution. Boot from a USB stick. Pick one of two storage modes at boot, optionally combine with Tor privacy mode.

Storage modes (chosen at the greeter, every boot)

What user gets What survives reboot
Amnesia (default) RAM-only user state; no persistence unlocked Nothing — fresh every time
Persistent USB (opt-in) LUKS-encrypted partition on the same USB stick, bind-mounted to ~/.eliza/ and friends Preserves chat history, built apps, model downloads, Wi-Fi, API keys; VM USB-image persistence creation is validated, physical USB persistence validation is still pending

A returning user can pick a different mode per-boot. The greeter shows the same window every time; the persistence row either offers "Create" (first-time) or shows a passphrase field (returning). Skip the passphrase → amnesia for that boot, persisted data stays sealed.

Privacy mode (chosen at the boot menu, independent of storage)

What user gets
Normal (default) Direct internet. Fast cloud APIs, fast model downloads.
Privacy Mode (opt-in) Tor-routed networking. Slow but anonymous where supported. Same product surface, with the current embedded web/OAuth caveat below.

The target contract is that all four combinations work with the same feature surface, except for speed and persistence. QEMU has proven the normal branded greeter/desktop/app path and virtual USB-image Persistent Storage creation on the latest validated artifact, but physical USB boot, physical USB persistence, and Privacy Mode network behavior still need validation before those rows can be treated as production evidence. See docs/user-experience.md for the boot-time walkthrough and docs/mode-parity.md for the acceptance matrix.

What we're NOT shipping in v1.0

  • Install to internal disk — deferred to v2.0. The upstream live-OS design refuses this for forensic reasons; we're considering it carefully. See PLAN.md § Deferred.
  • Runtime privacy toggle — switching modes requires reboot in v1.0.
  • Claiming embedded web/OAuth Privacy Mode parity — known v1.0 gap. The live OS routing is present, but embedded browser and OAuth surfaces need explicit proxy proof before we market them as Tor-safe.
  • Production update infrastructure — current demo builds still require a new ISO for OS/base changes. The production plan is signed app/runtime updates in encrypted persistence, signed model downloads, and signed OS deltas or full-image fallback. See docs/distribution-and-updates.md.
  • End-user GUI USB flasher — developers can use the guarded just usb-write path today. Production needs the same removable-disk policy in a signed cross-platform flasher.

Repo Shape

This is the active Linux distro path. The old usbeliza prototype and the intermediate nested distro wrapper were removed from this branch so the Linux tree has one source of truth: packages/os/linux/. Multi-architecture support is expressed by build targets and package contracts, not by separate distro directories.

This is the only elizaOS Linux distribution in the repo. The inherited upstream tree remains at tails/ because that name is part of the Tails live-OS code, AppArmor, persistence, and update contracts; it is not a separate product or variant.

The user-facing product is elizaOS Live. Internal paths that still say elizaos are app/runtime paths and should only be renamed when the app package itself moves.

Architecture

We keep the upstream live-OS internals intact and layer elizaOS branding, the elizaOS app, persistence wiring, and supervised OS capabilities on top. Tor, AppArmor, MAC spoofing, persistence setup, Plymouth, and the normal desktop remain preserved. The additions live as new chroot hooks + package lists + branding overrides.

This matches the packages/os/android/vendor/eliza/ pattern in this monorepo (brand vendor tree inside the upstream system's structure).

Primary UI should say elizaOS. Engineering paths may still contain tails, elizaos, or upstream filenames because those names are part of the plumbing and package contracts. Do not rename those paths only for cosmetic reasons.

License

GPL-3.0-or-later for the inherited live-OS components. Our additions are Apache-2.0 where possible, dual-licensed under both where required.

Status: Demo Branch Versus Production

Current branch status, 2026-05-22: this branch has produced local artifacts that pass QEMU greeter/desktop/app startup validation and virtual USB-image Persistent Storage creation. The latest validated files are out/binary.iso (0738eaf5291263de43d5c7cb326ca69bc011bcbd8ddefafe03e023db6310ced9) and out/binary.img (ff9f5dc15729164bb115ae73cc4d2d75e43f0b45596227149469971300ce123c). Release promotion must rebuild and validate the exact release commit if the branch moves after the latest tested artifact. See docs/current-status.md for the exact validation state.

Phase 1 — done. The containerized build pipeline produced a bootable base ISO, and Tails' normal live-OS boot path was verified through QEMU using -cdrom.

Phases 27 — implemented in source, QEMU demo path proven on the latest validated artifact. Branding, Privacy Mode plumbing, bundled elizaOS app install/autostart, the conservative elizaOS capability broker, and elizaOS Persistent Storage rows/hooks are in the tree. The current gate is physical USB flash/readback, real hardware boot, reboot persistence, and privacy validation.

Phases 89 — spec/backlog. Mode-parity harness and customization actions are planned but not production-complete. Production also still needs signed releases, update/rollback infrastructure, a GUI USB flasher, hardware compatibility evidence, and enterprise policy/audit hardening. See PLAN.md for the phase map and RELEASE_PATH.md for the road from demo to release.

Build it

Only requirement is Docker. From this directory:

just static-smoke # CPU-light syntax/config checks, no Docker/QEMU
just config    # ~1 min live-build go/no-go
just build     # full clean ISO -> out/
just build-cool # low-CPU demo build, skips offline docs, caps Docker+squashfs to 2 CPUs
just build-demo # fastest full demo build; skips bundled offline website/docs
just boot      # boot the latest ISO in QEMU
just usb-write /dev/sdX # write the latest USB .img with removable-disk guards

Set ELIZAOS_BUILD_CPUS=2, ELIZAOS_MKSQUASHFS_PROCESSORS=2, or ELIZAOS_BUILD_MEMORY=8g when you need Docker to stay out of the way of Android/AOSP/app builds on the same machine. just build-cool sets the CPU and squashfs caps to 2 by default and skips rebuilding the bundled offline website/docs; set ELIZAOS_SKIP_WEBSITE=0 if you need exact offline docs in a cool build.

Docs