Chat
Conversations in Insulin support streaming responses, tool execution, plan approvals, model selection, attachments, memory, and cross-surface threads.
Conversations
Each conversation is a multi-turn thread between you and an agent. Conversations are persisted automatically and appear in the sidebar for easy access. You can have multiple conversations open and switch between them.

Each agent or channel view has a tab bar with Messages, Files, and Jobs — the same three whether you are in a solo agent chat or a channel. The Files tab lists the attachments in the thread. The Jobs tab surfaces jobs: in a solo chat, that agent’s own scheduled and on-demand jobs; in a channel, the jobs belonging to the agents that are members of it.
When you open a fresh solo chat, the empty state shows the agent’s welcome message and a set of clickable conversation-starter buttons — click one to begin without typing.
Insulin also supports thread events through a live stream. This lets the UI update while an agent is running, while a channel is active, or while a paused run is waiting for an approval.
Message Types
- User messages — Your inputs, including text, file references, and images.
- Assistant messages — Responses from the agent, streamed in real time as they are generated.
- System messages — Status updates, such as when an agent is switched or a tool completes execution.
The Composer
The composer is the input bar at the bottom of the conversation. It holds the controls for everything you send:
- Text with @mentions and /slash commands — Type your message;
@and/open inline pickers (see below). - Mic / voice — Dictate a message instead of typing. The button shows a live elapsed timer while recording; stop to insert the transcribed text.
- Attach (paperclip) — Add files for the agent to read. You can also drag and drop files onto the composer or paste them.
- Thinking toggle — The Brain button turns extended thinking on or off for the session.
- Send / Stop — Send your message, or stop a response that is still streaming.
File Attachments
Attach files by clicking the paperclip, dragging them onto the composer, or pasting them. Files upload before the message is sent and appear as attachment chips you can remove before sending.
| Limit | Value |
|---|---|
| Files per message | Up to 10 |
| Size per file | Up to 25 MB |
Before sending, each attachment shows as a chip you can remove. Attachments become viewable once the message is sent (see Attachments in a Thread).
Slash Commands
Type / at the start of the composer to see the commands available for the current agent. The list includes the agent’s built-in skills (for example, /skill-creator) plus any skills you have enabled, each slugified from its name. Selecting a command inserts it into your message.
One command is built in everywhere: /clear starts a fresh chat for the current agent or channel (see Resetting a Conversation).
@Mentions
Type @ to mention a participant. In a channel, this addresses a specific agent so it answers your message. Clicking an @agent mention in a message switches you to that agent’s solo chat.
Model Selection
Insulin selects the model for you — there is no per-conversation model picker. Each agent runs on the models available to it and fails over automatically: if a model call fails — a provider outage, a usage limit, or a rejected key — the turn retries on your next connected provider, so a single provider problem doesn’t stall the conversation.
Which models an agent can draw on depends on its ownership:
- The built-in Insulin assistant and Personal (only-you) agents run on your connected providers only — the models from the LLM providers you’ve connected under Settings → Integrations (bring-your-own-key). If you haven’t connected a provider yet, Insulin can’t run and prompts you to connect one first.
- Organization agents can additionally fall back to a Suger-hosted model, so an organization keeps a working model even before it connects its own provider.
See Agents for how an agent’s ownership and its configured Default model determine which models it uses.
Where you set the model
There is no picker in the composer, but you do still choose the model — just once, not per message.
For the built-in Insulin assistant: open a chat with Insulin and click the pencil button in the conversation header (its accessible label reads Insulin model settings). A panel slides out with a Models section listing every model your connected providers make available.
- Search or scroll to the model you want
- Click its row — that makes it Insulin’s default
- The row you picked now carries a Default badge
Insulin runs that model first, then fails over to your other connected models from there. The same panel is where you find out you have nothing to pick from: with no provider connected it reads “Connect a provider to use Insulin” and offers a Connect a provider link.
For a custom agent: the model is a field on the agent itself. Set Default model in the agent’s own settings — see Agents.

When a model fails over
Failover is surfaced, not silent. When a turn switches models and then succeeds, the reply carries a short italic note at the end naming both models, in this form:
first-modelhit its usage limit — continued withsecond-model.
The note reads was unavailable instead of hit its usage limit when the switch was caused by an error — a provider outage or a rejected key — rather than a quota.
When there is nothing left to fail over to, the turn stops and says why:
- One model is out of quota. A usage-limit card appears in the thread — “You’ve hit the usage limit for
<model>.” — plus “Your limit resets at<time>” when the provider reports one. The card links to that provider’s usage page, or points you at Settings when the model was Suger-hosted. - Every connected model is limited. You get a message naming the model you hit first, listing the others that are limited too, and the time the first limit resets, with a suggestion to check your providers’ usage pages or try again once a limit clears.
Streaming Responses
Agent responses stream token by token as they are generated. You can read the response as it appears without waiting for the full message to complete.
Extended Thinking
When extended thinking is enabled, the agent shows its reasoning process before delivering a final answer. The thinking steps appear in a collapsible section above the response. This helps you understand the agent’s logic and verify its approach on complex tasks.
Toggle thinking on or off with the Brain button in the composer. The setting applies to the session and is remembered in your browser.
Tool Calls
Agents can execute tools — external actions like querying data, calling APIs, or running code. When a tool is invoked during a conversation, you see:
- Running — The tool call is in progress, with a spinner and the tool name displayed.
- Success — The tool completed and its output is shown inline.
- Error — The tool failed, with the error message displayed.
Tool call details are expandable so you can inspect inputs and outputs.
Plan Approvals
For multi-step tasks, an agent may present a plan before executing. The plan lists the steps the agent intends to take. You can:
- Approve the plan to let the agent proceed
- Reject or modify the plan before execution
This gives you control over complex workflows before any actions are taken.
Tool Approvals
Some tool calls pause for your explicit approval before they run. When one does, a Tool Approval Required card appears in the thread. It names the tool, shows the arguments it would be called with, and explains why it stopped to ask. Two buttons:
- Allow — the tool runs and the turn carries on.
- Deny — the tool is not called.
Once you answer, the card keeps a badge recording what you chose: Approved or Rejected. If you leave it alone, the request times out after about three minutes, the card is marked Expired, and nothing is sent.

Plan Progress
When an agent executes a multi-step plan, a progress tracker shows the status of each step:
| Status | Meaning |
|---|---|
| Pending | Step has not started yet |
| In progress | Step is currently executing |
| Completed | Step finished successfully |
| Failed | Step encountered an error |
| Skipped | Step was bypassed (e.g., due to a prior failure) |
The progress tracker updates in real time as the agent works through the plan.
Long-running work
Some requests take more than one exchange to finish. “Reconcile last quarter’s entitlements and write up what doesn’t match” isn’t one answer — it’s a stretch of work. Ask for something like that and the agent may keep going across many turns until the job is done, rather than stopping at the end of its first reply.
What you see is just the conversation. Each piece of progress arrives as an ordinary message in the thread, in order, indistinguishable from any other agent reply. There is no separate progress view to keep open and nothing to poll — close the window, come back later, and the messages are waiting for you.
You steer it in plain English. There are no controls for this; you simply write another message:
- “Actually, only look at AWS.” — the agent applies your change from its next step onward and carries on with the same objective.
- “Stop.” — the agent stops the work and confirms in one line. “Cancel”, “pause”, and “drop it” are read the same way.
Your message is picked up even while the agent is mid-step, so you never have to wait for a gap to redirect it. In a channel the same is true: the work belongs to the conversation, so it’s steered by writing in the channel.
Memory
Insulin maintains memory across conversations:
- Short-term memory — Context from the current conversation, including earlier messages and tool results.
- Long-term memory — Persistent knowledge the agent retains across conversations, such as your preferences, decisions, and recurring instructions. Long-term memories are categorized as fact, preference, decision, context, or learned.
Memory recall happens automatically — when the agent surfaces relevant past context, you see a memory recall indicator showing the number of memories retrieved and their content. Memory confidence decays over time, so older memories that are no longer reinforced gradually become less prominent.
You can also manage long-term memory directly: review the stored memories, delete individual ones, or clear them all in bulk.
Connection Status
The chat interface shows a Connecting… banner while it establishes a connection to the AI service. Once connected, streaming is active and the agent can respond.
If the connection drops briefly, the client reconnects on its own in the background — no banner is shown and no action is needed on your part.
Sub-Threads
Within a conversation, you can branch into sub-threads to explore a topic without disrupting the main conversation flow. Sub-threads appear as nested discussions tied to a specific message.
How you get into one depends on where you are:
| Way in | Solo chat | Channel |
|---|---|---|
| Hover a message, then click Reply in thread | Yes — starts a new sub-thread, or reopens the existing one | Not offered |
| Click the N replies badge on a message | Yes | Yes — this is the only way in |
In a channel, an agent’s reply is delivered into a sub-thread and the parent message grows a 1 reply / N replies badge you click to read it. Sending a message in a channel no longer pops the side panel open by itself — it used to interrupt whatever you were reading. Open the panel yourself while a reply is still being written and it streams live from that point.
You can rename a sub-thread, or ask Insulin to regenerate its title from the conversation. Renaming and title regeneration are available to the sub-thread’s owner.
Unread Messages
Organization channels in the sidebar carry an unread count, so you can see where the conversation moved on while you were away. The badge counts up to 99 and then reads 99+.
Nothing else accumulates unread counts — not personal channels, not your one-on-one chats with an agent, and not sub-threads. Those are places only you and your own agents write, so a badge there would only ever be counting your own conversation back at you.
Attachments in a Thread
Files you attach in the composer are uploaded and shown as attachment chips before you send. Once sent, they belong to the thread and appear in its Files tab, where they are listed and can be downloaded. Click an attachment on a sent message to open it in the Preview app — PDFs, images, and video render there.
Quick Replies
Agents may offer quick reply suggestions — pre-written response options you can click instead of typing. These appear as buttons below the agent’s message and are useful for common follow-up actions.
Draft Preservation
If you start typing a message and navigate away from the conversation, your draft is preserved. When you return, your unsent message is restored in the composer. Your scroll position is preserved the same way, per conversation.
Message Pagination
Long conversations load messages incrementally. As you scroll toward the top, earlier messages load automatically. When you scroll away from the bottom of the conversation, a floating jump to latest button appears so you can return to the newest message in one click.
Slack and Teams
When Slack or Microsoft Teams is connected for your organization, Insulin can receive messages from those surfaces and mirror agent replies back to the same conversation context. Slack and Teams are personal DM bots for the built-in Insulin assistant — you chat with the assistant one-on-one, not in a shared channel. The web, Slack, and Teams DM surfaces share the same underlying Insulin thread, so work can continue across tools. (For multi-agent group discussions inside Insulin, see Channels.)
Resetting a Conversation
To start over with a clean slate, send the /clear command in the composer. This starts a fresh chat for the current agent or channel context. Your previous messages remain in their own thread — /clear simply begins a new conversation.
Spotted something wrong or out of date on this page? Tell us and we'll correct it.