How Naseem Works
The roles
Naseem splits a task between models, and always tells you which one did what. Choose them in Settings → Models.
- Planner — optional. Before a task with several steps, writes a short plan — Goal · Steps · Files · Done when — that the main model then follows. (Pro)
- Main model — does the work: reads, runs tools, edits files, answers. Every chat starts on it and can switch.
- Sub-agents — take delegated pieces of a task, several at once. Because they run in parallel they can use many tokens, so a fast, affordable model and a lower effort suit them. (Pro)
- Reviewer — optional. Checks finished work against your request before it's called done, and sends it back with a reason when it falls short. (Pro)
- Helper — Naseem's own background jobs: project suggestions, project notes, MCP descriptions.
- Vision and Reading — see images for a main model that can't, and read long documents once into notes.
- Image — makes and edits pictures when you ask for one: a logo, a banner, an illustration. Automatic uses your ChatGPT subscription if you're signed in (no key, no extra bill), then your OpenAI key, then Google. A chat can pick its own from the model menu → Image model, and every image is captioned with the model that made it. (Pro)
Each role has its own effort. "Same as main model" follows your chat.
Who did what
- Every reply names its model: Naseem · gpt-5.6-terra · Medium.
- A sub-agent card names its model: Sub-agent · glm-5.3.
- When a reviewer is on, every answer shows its verdict and who judged: ✓ Review · gpt-6-sol — passed, or sent back with the reason.
- Tools → Usage shows each model's tokens and the role it served.
What changed
- A task that edits files ends with a Changes card: every file it changed, lines added and removed, and each diff one click away. It's the thing to review — not committed, yours to decide.
- A sub-agent's card says what it actually did, from its own steps: 2 files changed · ran swift test, or read only.
- Naseem never commits unless you ask. A command that would commit, push, tag or hard-reset always asks first — even in a chat set to run without asking.
When a model fails
If a sub-agent's or the helper's model fails, that step runs again once on your main model, and the card says so: Sub-agent · glm-5.3 failed → gpt-5.6-terra. Stopping a task yourself never triggers a fallback. If the reviewer fails, the work stands, marked not reviewed.
One model for everything
In a chat, the ⋮ menu → Roles → This chat's model for all runs sub-agents and the reviewer on that chat's model and effort. It's useful for quick chats, local models, or when you want no surprises. The status line then says one model.
Who decides
1. The chat's "this chat's model for all", when on.
2. The chat's profile (Settings → Profiles → Roles for this profile).
3. Settings → Models.
4. Automatic — and the setting always shows what Automatic picked.
Planning
- The main model decides when a task needs a plan — several files or steps, or an unclear scope — and asks the planner. Simple requests get no plan, and cost nothing extra.
- Plan first — the clipboard button in the composer — asks for a plan for your next message.
- The planner can look at the project (read files, list folders, search) but never changes anything.
- The plan appears as a Plan card above the work, naming the model that wrote it. Its Done when list is what the reviewer checks.
- Show me the plan before it runs (Settings → Models → Planner): the plan waits for Run it / Edit / Cancel, and nothing changes until you choose. Rules and Telegram runs don't wait.
- A strong planner with a cheaper main model is the classic saving: think once on the expensive model, do the many steps on the cheap one.
Long conversations
- When a chat gets long, Naseem summarizes its older messages for the model and keeps the recent ones word-for-word, so long work stays fast and affordable and the model keeps track of the task.
- Your transcript never changes. A thin line marks where the summary ends, and View summary shows exactly what the model reads instead. Your own requests and exact file paths are kept as you wrote them.
- Type /compact in any chat to do it now. Add words after it to say what to keep in detail, for example
/compact keep the API design. It's also in the ⋮ menu → Compact Conversation. - Choose when it happens in Settings → Agent → Compact conversations at. If a model ever says a chat is too long, Naseem summarizes and tries once more on its own.