m2/org/openalice-live
openalice-live
“> Stream with Alice as your AI co-host. Browser-source ready for OBS — drop in `live.blal.pro/scene/<user>` and Alice's avatar + voice embed straight into your broadcast.”
Features
44
Status
·unknown
Last activity
5h ago
Branch
mvp
live/agent-desktop
1 feature- live.os.standalone-desktopsrc/app/os/[user]/page.tsx:27Standalone Agent Desktop OS — fullscreen virtual desktop the agent drives via the same scene-control WS as the OBS scene mode. Persists window layout in localStorage so the surface survives reloads. Foundational v0 of the "fake OS in the browser" track.page:/os/[usersince 0.4.0
live/api
3 features- live.api.browse-sessionsrc/app/api/browse-session/route.ts:4Server-side proxy that mints openalice-browse sessions for the OS BrowserApp. Keeps the internal secret on the server.api:POST /api/browse-sessionapi:DELETE /api/browse-sessionsince 0.2.0
- live.api.healthsrc/app/api/health/route.ts:4Liveness probe — returns 200 with timestamp for monitoring + Traefik healthchecks.api:GET /api/healthsince 0.1.0
- live.api.pty-sessionsrc/app/api/pty-session/route.ts:4Server-side proxy that mints openalice-pty sessions for the OS TerminalApp. Keeps the internal secret on the server and hands the browser a fully-formed ws_url with a one-shot token query param.api:POST /api/pty-sessionapi:DELETE /api/pty-sessionsince 0.3.0
live/audio
6 features- live.scene.bgm-playersrc/app/scene/[user]/lib/BgmPlayer.tsx:99Per-stream background-music engine. Hidden <audio> element loops the streamer's chosen BGM track (preset OR custom upload). Drives volume / loop / fade-in / fade-out / cross-fade-on-track-change / auto-ducking-when-TTS-speaks. Decoupled from voice + SFX surfaces; ducking listens to oa-voice-chunk + oa-voice-finished postMessages.component:BgmPlayersince 0.10.0
- live.scene.bgm-rotatorsrc/app/scene/[user]/lib/BgmRotator.tsx:42Wires the bgmRotation policy + persona-server SSE rotation events into the live scene BGM pipeline. Subscribes to idle.bgm_change, falls back to a client-side max-loops trigger, and applies a 2s crossfade via the underlying BgmPlayer.component:BgmRotatorsince 0.12.0
- live.scene.bgm.presetssrc/app/scene/[user]/theme/bgmPresets.ts:29Bundled background-music preset library — five royalty-free vibes (lofi-amber, synthwave-cyan, jazz-cafe, ambient-spacy, silence). Hub picker uses these as starting points; tenant-uploaded tracks plug into the same dropdown via the persona /v1/me/audio CRUD.since 0.10.0
- live.scene.radio-playersrc/app/scene/[user]/lib/RadioPlayer.tsx:48Live-page radio channel subscriber. Resolves a radio:<slug> bgm_source into a WebSocket subscription against openalice-radio; each now_playing frame updates the underlying BgmPlayer config so the live page picks up new tracks with the same cross-fade / duck-during-tts plumbing as static BGM.component:RadioPlayersince 0.11.0
- live.scene.sfx-enginesrc/app/scene/[user]/lib/SfxPlayer.tsx:63Sound-effects audio engine for the live stream player. Listens to chat append / mood transition / gesture / subscribe / caption events and plays a short clip per channel, debounced per event type. Master / per-event volume + per-event URL overrides via `branding.theme.sfx`. Mounts only when `theme.sfx.enabled === true` so SFX-disabled streams pay zero cost.component:SfxPlayersince 0.9.0
- live.scene.sfx.presetssrc/app/scene/[user]/theme/sfxPresets.ts:23Five bundled sound-effect preset vibes (silent / subtle-warm / arcade / sci-fi / nature) — each a coordinated set of audio clips for the stream player's chat, mood, gesture, subscribe, and caption events. Hub picker uses these as starting points; per-event URL overrides land on top via `branding.theme.sfx.sfx_<event>_url`.since 0.9.0
live/auth
7 features- live.auth.forgot-passwordsrc/app/forgot-password/page.tsx:22Public form that asks tenants to email a password-reset link. Always returns generic copy to avoid account-enumeration leaks.page:/forgot-passwordsince 0.3.0
- live.auth.loginsrc/app/login/page.tsx:37Public login form — email + password, two-leg MFA prompt for accounts with TOTP/email-MFA.page:/loginsince 0.3.0
- live.auth.password-strengthsrc/components/AuthShell.tsx:11Heuristic password-strength meter (close-enough to zxcvbn) plus visual bars. Stays local until v0.7 promotes a shared meter.component:PasswordStrengthMetersince 0.3.0
- live.auth.reset-passwordsrc/app/auth/reset-password/page.tsx:24Lands here from the password-reset email link. Form: new password + confirm. POSTs to /tenants/reset-password.page:/auth/reset-passwordsince 0.3.0
- live.auth.session-bridgesrc/lib/auth-session.ts:19Stash tenants-issued JWT into the shared SSO localStorage slot.module:src/lib/auth-sessionsince 0.3.0
- live.auth.signupsrc/app/signup/page.tsx:39Public signup form — email, username, display name, password (with strength meter), ToS opt-in.page:/signupsince 0.3.0
- live.auth.verify-emailsrc/app/auth/verify-email/page.tsx:23Confirms the verification token from the welcome email. Auto-POSTs on mount; surfaces a re-send button on failure when the user is logged in.page:/auth/verify-emailsince 0.3.0
live/loading
1 feature- live.scene.global-preloadersrc/app/scene/[user]/lib/AssetPreloader.tsx:65Game-style up-front asset preloader — fetches every URL the active theme references (VRM via persona, HDR env, BGM, scene background video/image, parallax layers, custom fonts, SFX bundle) before the scene fades in. Branded progress UI with X/Y count and percentage. 30 s safety timeout, soft per-asset failures don't block the scene. Eliminates the late-load "model loads on first scene with avatar" hiccup.since 0.11.0
live/marketing
1 feature- live.landing.herosrc/app/page.tsx:14Marketing landing for OpenAlice Live — stream with Alice as AI co-host.page:/since 0.1.0
live/os
1 feature- live.os.terminal-appsrc/app/os/[user]/apps/TerminalApp.tsx:7Real xterm.js terminal in the Agent Desktop OS — connects to openalice-pty over WebSocket and renders any TUI (claude, vim, btop, htop, neovim, tmux) pixel-perfect with full ANSI escape support.since 0.3.0
live/scenes
11 features- live.scene.be-right-backsrc/app/scene/[user]/modes/be-right-back.tsx:25AFK placard with a tasteful sleeping-moon SVG animation, breathing BRB title, and desaturated gradient mesh that signals "paused". Atelier-only, prefers-reduced-motion respected.since 0.7.0
- live.scene.event-celebrationsrc/app/scene/[user]/lib/EventCelebrationOverlay.tsx:80Subscribe / follow / donation celebration-overlay layer for the live broadcast page. Listens for `oa-event-celebrate` window events and slides a branded animated card into the scene with platform-coloured chrome, a confetti burst, optional TTS read-out, and per-platform SFX. Queues up to 16 events; honours reduced-motion. Mount-time gated by `theme.event_celebration.enabled`. Closes the polish gap to Streamlabs / StreamElements / Neuro-sama-grade event handling.component:EventCelebrationOverlaysince 0.10.0
- live.scene.intermissionsrc/app/scene/[user]/modes/intermission.tsx:31Editorial chapter card for between-segments transitions ("1 / 3 — Coding session"). Twin-band gradient mesh, oversized chapter index, slow horizontal wipe transition. Calm, intentional, premium.since 0.7.0
- live.scene.mode-registrysrc/app/scene/[user]/modes/index.ts:8Catalog of Live broadcast scene modes — VRM fullscreen + static placards (starting-soon / be-right-back / outro). Each scene declares its voice + render cost so the page knows whether to attach the SFU and the admin can warn on GPU-less hosts.since 0.2.0
- live.scene.moderation-overlaysrc/app/scene/[user]/lib/ModerationOverlay.tsx:55Administrative toast for AI-driven mod actions on the live scene. Listens for `oa-mod-action` window events and paints a muted lower-left card with an inline Undo button. Separate from the celebratory overlays — visually neutral on purpose.component:ModerationOverlaysince 0.13.0
- live.scene.outrosrc/app/scene/[user]/modes/outro.tsx:31Polished farewell placard with social-handle pills, optional next-stream timestamp, Solar Amber Subscribe CTA, and Plasma Cyan gradient mesh distinct from the warm starting-soon family.since 0.7.0
- live.scene.placard-ateliersrc/app/scene/[user]/modes/placard-shared.tsx:23Shared placard primitives — Atelier-themed gradient mesh, brand watermark, social pills, BGM "now playing" pill, countdown clock. Used by starting-soon / be-right-back / outro / intermission.since 0.7.0
- live.scene.poll-overlaysrc/app/scene/[user]/lib/PollOverlay.tsx:26Engagement poll overlay for the live scene page. Listens for oa-poll-opened / oa-poll-vote / oa-poll-closed window events and paints a Q+A card with growing option bars + linear countdown + winning-option highlight on close. Optional per-platform colour theme.component:PollOverlaysince 0.11.0
- live.scene.redemption-overlaysrc/app/scene/[user]/lib/RedemptionOverlay.tsx:58Channel-point / SuperChat redemption toast for the live scene page. Listens for `oa-redemption-triggered` window events and paints a per-platform branded card ("🎁 ViewerName redeemed «Evil Laugh»"). Separate from the EventCelebrationOverlay (which handles sub/follow/cheer); this one is the dedicated viewer-trigger surface.component:RedemptionOverlaysince 0.11.0
- live.scene.scene-backgroundsrc/app/scene/[user]/modes/SceneBackgroundLayer.tsx:184Animated 2D backdrop renderer for vtuber scenes — color / image / video / preset modes plus parallax layers, atmospheric particles (snow / cherry-blossoms / embers / dust / rain / stars), and drift (slow-pan / Ken-Burns). Pure CSS keyframes, no canvas, no WebGL — runs at ~0% GPU on the no-GPU broadcaster host. Reduced-motion strips every animation.since 0.9.0
- live.scene.starting-soonsrc/app/scene/[user]/modes/starting-soon.tsx:29Polished pre-roll placard with Atelier gradient mesh, animated countdown to start_at_ms, brand block, and "now playing" pill. Atelier-only colours, calm motion, prefers-reduced-motion respected.since 0.7.0
live/streaming
4 features- live.scene.demo-pickersrc/app/scene/[user]/_components/DemoPicker.tsx:37Floating reviewer-navigation overlay on the live demo page (?demo=1&picker=1) — six tabs (Scene / Render / Avatar / Theme / Background / Audio) let a reviewer hop between any combination of scene modes, avatar render modes/presets, theme presets, background presets, BGM and SFX presets in two clicks each. Pauses the auto-cycling demo timeline so selections stick. URL state syncs via history.replaceState so refreshes keep the reviewer's working selection.since 0.11.0
- live.scene.demo-timelinesrc/app/scene/[user]/demo-timeline.ts:71Canned timeline of scene/mood/chat/gesture/window/splitscreen events the demo room replays on a loop so we exercise every renderer mode without requiring live agents or a WS connection.since 0.6.0
- live.scene.error-boundarysrc/app/scene/[user]/error.tsx:6Route-segment ErrorBoundary for /scene/[user]. Any unhandled error in the OBS Browser Source page renders a "Reconnecting…" card on a dark background instead of a blank surface, then auto-reloads after 3s so transient failures (WS drop, iframe race, persona crash) recover without operator intervention.route:/scene/[usersince 0.4.3
- live.scene.obs-sourcesrc/app/scene/[user]/page.tsx:66OBS Browser Source endpoint — multi-mode renderer (VRM fullscreen + static placards) driven by ?scene= query param and a live-control WebSocket so the agent's ChangeScene ToolCall flips scenes mid-stream without restarting the broadcaster Chromium.page:/scene/[usersince 0.2.0
live/studio
7 features- live.studio.agents.marketplacesrc/app/studio/agents/marketplace/page.tsx:48Agent Marketplace browse + pair UI — capability-scoped grants against openalice-tenants.page:/studio/agents/marketplacesince 0.2.0
- live.studio.audio-mixersrc/app/studio/audio/page.tsx:10Per-channel volume mixer + BGM picker for the active broadcast. Sliders for mic / desktop / TTS / BGM (linear UI, log-mapped on send), default royalty-free BGM presets, custom URL field, play/pause/skip transport, persisted per-broadcast in localStorage, debounced 200 ms before POST to live-control.page:/studio/audiosince 0.3.18
- live.studio.chatsrc/app/studio/chat/page.tsx:25Multi-platform live chat reader + reply box for the streamer. Subscribes to the live-control scene WS for inbound, posts to chat-bridge for outbound. Lets the streamer talk to viewers without leaving studio.page:/studio/chatsince 1.1.0
- live.studio.dashboardsrc/app/studio/page.tsx:112Streamer-facing studio — shows the OBS browser-source URL with copy-to-clipboard. Login required.page:/studiosince 0.1.0
- live.studio.onboardingsrc/app/studio/onboarding/page.tsx:21First-run checklist for Live — avatar, voice, stream destination, desktop pairing, branding. Each step deeplinks to the editor that fixes it.page:/studio/onboardingsince 1.0.0
- live.studio.settingssrc/app/studio/settings/page.tsx:37Per-user TTS / STT / avatar / system-prompt editor for the Live product. Saves to agent_config; takes effect on the next /live/start.page:/studio/settingssince 1.0.0
- live.studio.settings.privacysrc/app/studio/settings/privacy/page.tsx:60Privacy & Data settings — consent flags, GDPR export, audit log, paired agents, account deletion.page:/studio/settings/privacysince 0.2.0
live/tenants
1 feature- live.tenants.clientsrc/lib/tenants-client.ts:14Browser HTTP client for openalice-tenants — consent flags, audit log, GDPR export, account deletion, paired-agent grants.module:src/lib/tenants-clientsince 0.2.0
live/theming
1 feature- live.scene.stream-themesrc/app/scene/[user]/theme/types.ts:23Per-stream visual theme for the broadcast player. Decouples streamer-facing scene look from the Atelier platform tokens — themes are CSS variables (bg / fg / accent / fonts / texture / motion) scoped to the player's <main> element. Streamers pick from a preset library (vtuber-warm, vtuber-neon-cyan, minimal-mono, glass-dark, vintage-sepia, pastel-bubblegum, editorial-print) or pass a fully-custom override. Atelier values are the fallback so existing broadcasts paint identically.since 0.8.0