How a turn runs
From your message to Najimi's answer streaming into the room, in the background, so it finishes even if everyone leaves.
A turn is one answer from Najimi. It runs in the background worker, never inside your page, and streams to everyone in the room as it goes.
- 01
You send
Saved and shown to the room at once
POST /api/rooms/<id>/messages
- 02
Queued
One turn per room at a time; at most one waiting
pg-boss · agent-turn · stately
- 03
Najimi works
Your taste, the room, the screen; tools composed, up to ten steps
AI SDK streamText
- 04
Live to the room
Text, steps and cards stream to every member
live_events · LISTEN/NOTIFY · SSE
In a circle, the same turn answers for everyone in it. Here is a real one from the Friday crew circle: Juno asks, Najimi asks Qloo for places that fit both tastes, scores the same five against each person, and the card lands for Juno and Kemi at once.


Step by step
Your message is saved and announced on the room's live channel. If it calls Najimi (always in your own chat; @najimi or "Najimi…" in a circle or DM), one turn of your daily allowance is used and a turn is queued for that room.
The worker picks it up. Each room runs one turn at a time, so answers never cross. Up to eight rooms are answered at once.
Najimi reads the room: your taste and, in a circle, everyone's; the screen you were on; your plans, bookings and connected accounts; the room's polls; photos shared here; the whole conversation.
It works: tool calls, several at once when they're independent, up to ten steps. The growing answer is saved and sent to the room about every 150 milliseconds.
Cards that wait. A call, a post, a picture in Ask me first, or a question card pauses the turn. When it's answered (an approval only by the person who asked), a new turn picks up exactly where it stopped. Approvals are signed, so nobody can forge a yes.
Done. The answer is final, the run folds into one line (5 steps · 5 Qloo calls), and a new chat gets a title in your language.
Because the turn lives in the worker, it finishes even if you close the app; anyone who opens the room later sees it.
Stop and try again
- Stop ends a turn within a second and keeps what was already said.
- Try again removes the last answer and runs it fresh. It doesn't use a turn of your allowance.
- If the AI provider fails, the answer says so, with Try again.
What it knows each turn
| You | name, city, every love with its weight, your taste's words |
| The room | in a circle or DM: each member's name, city and top five loves |
| Where you are | the screen you opened it from and the thing on it (a feed card, a pick, a square on Earth, a graph node, a plan, a business plan) |
| Your life in Najimi | plans and bookings from the last 30 days, and how they went; your connected accounts |
| The room's latest | the last three polls with their votes; photos shared; what Najimi made here |
| When | today's date in your time zone; it replies in your language |
Models and cost
| Work | Model |
|---|---|
| Every answer in every room, reading a feed screenshot, writing a business plan | gpt-6.1-sol (OpenAI) |
| Chat titles, reading a business's website, picking culture names out of posts | gpt-6-luna (OpenAI), a small, cheap model |
| Web search | OpenAI's hosted search, with your city as a rough location |
Every model call is logged with its tokens, time and cost in dollars, and Settings shows what Najimi's thinking cost you this month.
Real-world actions
Najimi phones venues, books hotels, posts on X and makes pictures. Exactly what happens, what it asks first, and what it will never do.
On its own
What Najimi does without being asked: chasing call results and hotel confirmations, asking how it went, dealing the daily game, refreshing business plans, and tuning your feeds each morning.