Norman Chat
Modern chat interface for the Norman platform. Built with Next.js, NextAuth.js, and Tailwind CSS, Norman Chat provides a polished user experience for interacting with Norman's AI agents.
What It Does
- Streaming Chat UI — Real-time token streaming via SSE for instant feedback
- Agent Mode Switching — Toggle between v0.1 (simple chat) and v1 (task agent)
- Chat History — Persistent conversations stored in MongoDB
- File Management — Upload, browse, and download files via Norman Library
- Task Dashboard — View and manage background tasks (v1 mode)
- Authentication — Secure login via ShellApps OAuth / NextAuth.js
Architecture
Norman Chat is a BFF (Backend For Frontend) — it proxies API calls to the appropriate Norman service:
| Chat Route | Upstream Service | Description |
|---|---|---|
/api/chat | Engine or Agent | Chat completions (routes based on agent mode) |
/api/tasks | Agent | Task management proxy |
/api/files | Library | File operations proxy |
/api/dashboard | Self (MongoDB) | Dashboard stats |
Tech Stack
- Next.js 14+ (App Router)
- NextAuth.js — ShellApps OAuth integration
- Tailwind CSS — Styling
- MongoDB — Chat history persistence
- SSE — Streaming responses