-
Notifications
You must be signed in to change notification settings - Fork 93
Mobile PWA: installable Agent UI on iOS + Android #894
Copy link
Copy link
Open
Labels
consumerBlocks consumer adoption — must ship for the v0.20.0 consumer launch windowBlocks consumer adoption — must ship for the v0.20.0 consumer launch windowdomain:surfacesAgent UI, Telegram, WhatsApp, Slack/Discord, mobileAgent UI, Telegram, WhatsApp, Slack/Discord, mobileelectronElectron app changesElectron app changesenhancementNew feature or requestNew feature or requestp1medium prioritymedium prioritytrack:consumer-appHermes-competitor consumer product — mobile-first, voice + messaging + memory + skillsHermes-competitor consumer product — mobile-first, voice + messaging + memory + skills
Metadata
Metadata
Assignees
Labels
consumerBlocks consumer adoption — must ship for the v0.20.0 consumer launch windowBlocks consumer adoption — must ship for the v0.20.0 consumer launch windowdomain:surfacesAgent UI, Telegram, WhatsApp, Slack/Discord, mobileAgent UI, Telegram, WhatsApp, Slack/Discord, mobileelectronElectron app changesElectron app changesenhancementNew feature or requestNew feature or requestp1medium prioritymedium prioritytrack:consumer-appHermes-competitor consumer product — mobile-first, voice + messaging + memory + skillsHermes-competitor consumer product — mobile-first, voice + messaging + memory + skills
Goal
Make the Agent UI an installable Progressive Web App (PWA) so consumers reaching GAIA via the ngrok tunnel can "Add to Home Screen" on iOS / Android and get an app-like experience instead of a bookmarked URL.
Why this matters for consumer adoption
The tunnel work in #872 already gives GAIA a mobile reach — but raw
https://abc123.ngrok.appURLs aren't a consumer experience. With a PWA manifest + service worker:This is the cheapest possible win for the mobile story: ~1 day of work, huge perceived-quality delta.
Scope (single PR, v0.18.2)
A. Web App Manifest
src/gaia/apps/webui/public/manifest.jsonwith:name: "GAIA",short_name: "GAIA"display: "standalone"(full-screen on launch)theme_color,background_colormatching the Agent UI palettestart_url: "/"scope: "/"index.html<link rel="manifest">apple-mobile-web-app-*tags + apple-touch-icon)B. Service worker (minimal — no offline-first yet)
vite-plugin-pwa, MIT) — handles registration, manifest injection, service worker generation/api/*(always try fresh, fall back to cache only if offline), CacheFirst for static assetsC. Icons
src/gaia/img/D. Add-to-Home-Screen prompt UX
beforeinstallpromptE. Tests
tests/e2e/pwa.spec.ts(under Agent UI: Playwright + Strix Halo E2E suite (validate every UI feature on real AMD hardware) #883 Playwright work) — verify manifest loads, service worker registers, install prompt appearsWhat this is NOT
Acceptance criteria
Attribution / prior art
vite-plugin-pwa(vite-pwa-org.netlify.app) — upstream library, MITDependencies