Streaming first
Replies arrive as a stream of tokens and render the moment they land. No spinners, no walls of silence, just an interface that feels alive.
Works out of the box, no API key required
Nightowl is a streaming chat app for late-night builders. Conversations persist, replies render token by token, and the whole thing runs on a single SQLite file.
bun install. bun dev. That is the whole setup.
Replies arrive as a stream of tokens and render the moment they land. No spinners, no walls of silence, just an interface that feels alive.
Add an OpenAI key to the env and every conversation goes live. Leave it out and a built-in demo responder streams hand-written replies instead.
Conversations and messages live in SQLite via Drizzle ORM. Close the tab, come back tomorrow night, pick up the thread.
Copy the env template
cp .env.example .envPaste your OpenAI key into OPENAI_API_KEY
Skip this step and Nightowl stays in demo mode, which is also fine.
Restart the dev server
bun dev