Lumi is a mobile-first Next.js MVP for an AI Agent social app. The first Agent is Mochi, a cotton-elf fashion companion for text chat, realtime voice styling, and outfit camera analysis.
The frontend runs independently with a mock API adapter. Set NEXT_PUBLIC_API_BASE_URL to connect the same UI to an external backend.
Chat is wired to GoClaw through local Next.js proxy routes. After Google sign-in, NextAuth exchanges the Google token with GoClaw and forwards the returned GoClaw bearer token to upstream C-side requests.
Google login is wired through NextAuth. The button uses the Google OAuth provider, and Google One Tap uses a NextAuth credentials provider that exchanges the GIS credential with GoClaw. Configure NEXTAUTH_URL, NEXTAUTH_SECRET, NEXT_PUBLIC_GOOGLE_CLIENT_ID, GOOGLE_SECRET, and LUMI_AGENT_API_BASE_URL in .env.local; for local OAuth, NEXTAUTH_URL must match the port you are running.
pnpm devOpen http://localhost:3000 to see the app.
Useful docs:
docs/product/lumi-mvp.mddocs/characters/mochi.mddocs/api/frontend-contract.md
pnpm devstarts the app.pnpm lintruns ESLint.pnpm testruns Vitest unit/component checks.pnpm e2eruns Playwright mobile smoke tests.
In scope: Home, onboarding, Mochi text chat, Live state flow, Snap analysis, saved looks, profile/settings, mock API, and frontend/backend contract docs.
Out of scope: full community feed, friends, comments, DMs, multi-agent selection, shopping, and backend services.