packages/os/linux/variants/milady-tails/docs/user-experience.md
Plain-language walkthrough of what users actually see and do. elizaOS Live uses a proven live-USB welcome-screen pattern, but the visible product is elizaOS Live. Tails remains credited in the license/about materials and engineering docs, not as the primary user-facing brand.
Same greeter window every boot — the only thing that changes is whether an encrypted persistence partition has been created on the USB. Status as of 2026-05-19: this is the intended v1 behavior. A recent ISO artifact proved the normal QEMU greeter/desktop/app-service path. Rebuild and retest the exact release commit if the branch moves, and complete real-USB persistence/privacy validation before every storage and privacy row below is marked proven.
Always shows the same fields:
┌───── Welcome to elizaOS ─────────────────────────┐
│ │
│ Language: [ English ▼ ] │
│ Keyboard: [ US ▼ ] │
│ Formats: [ US ▼ ] │
│ │
│ Admin Password: [_______________] (optional) │
│ │
│ MAC Spoofing: [ ● ON ○ OFF ] │
│ │
│ Persistent Storage: │
│ ← THIS ROW changes based on USB state │
│ │
│ [ Start elizaOS ] │
│ │
│ About elizaOS │
└──────────────────────────────────────────────────┘
The Persistent Storage row is the only thing that shifts between scenarios.
Persistent Storage row shows:
Persistent Storage: [ Create Persistent Storage ]
Steps:
Optionally during the session, after the agent action exists: user says "save my work to this USB" -> elizaOS opens the Persistent Storage UI:
~/.eliza/, Wi-Fi passwords, etc.)No password entered at boot. Amnesia mode is the default state for new users.
Persistent Storage row shows:
Persistent Storage: [_______________ passphrase] [ Unlock ]
Steps:
~/.eliza/, legacy app state dirs, and
selected system settings.They typed their passphrase once at boot. Everything else is the same as on their previous session.
Same greeter, same persistence row with the passphrase field. The user just doesn't type it.
Steps:
This is the "give my laptop to a friend for an hour" pattern — they get a clean session, the friend can't see your stuff, your stuff survives.
Privacy Mode is picked at the boot menu (one step earlier than the greeter), so it's independent of amnesia / persistent. All 4 combinations are valid product modes:
Normal Mode (default) Privacy Mode (Tor)
───────────────────── ──────────────────
Amnesia "burner with AI" "burner + anonymity"
Persistent "portable AI laptop" "portable + anonymity"
The user can pick a different combination on every boot. No commitment.
| Amnesia + Normal | Amnesia + Privacy | Persistent + Normal | Persistent + Privacy | |
|---|---|---|---|---|
| Chat history | ✗ | ✗ | ✓ | ✓ |
| Built apps | ✗ | ✗ | ✓ | ✓ |
| Downloaded models | ✗ (re-download next boot) | ✗ (slow re-download via Tor) | ✓ | ✓ |
| Wifi passwords | ✗ | ✗ | ✓ | ✓ |
| API keys (Anthropic, OpenAI) | ✗ | ✗ | ✓ (in LUKS keyring) | ✓ (in LUKS keyring) |
| Onboarding answers | redo every boot | redo every boot | ask once | ask once |
| Wallpaper / theme / WM choice | reset to defaults | reset to defaults | persists | persists |
Important: a returning persistent user who chooses Amnesia for one boot doesn't LOSE their persistent data — it's encrypted on the USB and sealed. They just don't see it that session.
This is the target v1.0 contract. The current HEAD still needs an ISO rebuild plus QEMU/USB validation before these rows can be treated as verified behavior.
| Feature | Status |
|---|---|
| Local LLM chat (Ollama / node-llama-cpp) | ✓ identical, no network needed |
| BUILD_APP via local stub | ✓ identical |
| BUILD_APP via Claude (signed-in) | ✓ identical (slower via Tor) |
| OPEN_APP (Chromium windowed apps) | ✓ identical |
| Voice (Whisper STT, Kokoro TTS) | ✓ identical, local |
| Wallpaper / SET_WM / theming | ✓ identical |
| GPU acceleration (NVIDIA / AMD / Intel) | ✓ identical |
| MAC spoofing | ✓ identical (enabled by default, can toggle in greeter) |
| Cloud APIs (Anthropic, OpenAI, etc.) | Intended, but provider blocks over Tor are expected |
Known v1.0 gap: embedded browser/OAuth windows are not yet
production-claimable in Privacy Mode. The elizaOS agent path is intended to
respect Tor, but any embedded browser shell needs explicit proxy proof
before we market it as Tor-safe. This is documented in
docs/privacy-mode-v1-gap.md.
memlockd aggressively zeros RAM on shutdown (upstream live-OS behavior,
kept).Not supported in v1.0. See PLAN.md § Deferred for the rationale —
the upstream live-OS design refuses this by default, and we're considering
it carefully for v2.0 because the threat model implications matter.
The greeter handles it all. Three flows:
The choice is per-boot. Users can mix and match every session. Same USB, different decisions, different experiences.
The v1.0 release is intentionally small: a USB stick that boots into either amnesia or persistent, with an optional Tor mode, and elizaOS as the desktop home. That's the whole product. Everything else is later.