What happens when you send a message
What June brings to a reply, how much of the thread it sees, when it reads a steer, which model answers, and what it keeps afterwards.
Read this when you want to know why June answered the way it did. Each reply goes like this:
What June can do in a reply
Every tool June has, when it uses each, and where one is not available.
June's sandbox
The computer June runs code on: which chats share it, how your work gets out, what it refuses.
Where a conversation lives
Who sees a thread, what June remembers, whose connections run and who pays, place by place.
Whose sign-in June uses
Whose connections run in each place, and which of yours work in an organization.
How schedules run
Timing, where results go, who pays, and what happens when a run fails.
What June brings to a reply
On the web and in the app, before the model reads your message, June puts this in front of it:
- The Soul of the place: yours in your own chats and the organization's in its chats. In a project, the project's Soul comes as well (which Souls).
- The project. In a project, its instructions and the names of its files. June opens a file when the work needs it.
- Your integrations. Which ones are connected and which are set up but not connected, up to 24, so June knows what it can reach and what to ask you to connect.
- What this chat can use, such as web search and its sandbox.
- Memories that fit your message, up to 8 (how June picks them).
- Notes on recent replies. The start of what was asked and what June answered, for the 6 latest replies in the same space: your own chats, the project, or the organization. These can include earlier turns of the chat you are in.
Then come the thread's earlier messages (see below) and your message.
Skills are not sent up front: June looks for one that fits when the task calls for it and loads only that one.
In Slack, June brings the Soul in a direct message only, never a project's, and neither the list of your integrations nor the notes on recent replies.
How much of the thread June sees
On the web and in the app, June reads the thread back from your new message, newest first, until it has about 64,000 tokens (roughly 250,000 characters) or 500 messages. The oldest messages drop out first, and what June sees always starts at a person's message, never in the middle of a reply.
- A file attached to an earlier message counts as about 4,096 tokens, and the text read from it is cut to 20,000 characters.
- On your new message, a plain-text file such as a CSV is read up to 200,000 characters, for all its files together. The text read from a spreadsheet or a slide deck is cut at 20,000 characters. A PDF or an image goes to the model as the file itself.
In Slack, June reads the newest 100 messages of the thread.
Past that window, the oldest messages leave what June sees; they stay in the thread for you. For a long piece of work, start a new thread and say what matters there, or put it in a project's instructions or a memory.
In an organization's chats, the earlier messages carry the name of the person who wrote each one, so June can tell people apart.
While June works
June works in steps. In each step the model either answers or asks for tools: a web search, a command in its sandbox, a call to one of your integrations. June runs them and hands back the results, and the next step begins. What June can do in a reply lists every tool.
A reply goes on until the model answers without asking for another tool, you stop it (Stop reply on the web, Stop in the app), or it fails. A model call that fails is retried up to 2 times before the reply fails. If June cannot get ready to answer within 60 seconds, the reply fails, and the thread offers Try again.
When June reads a steer
A message you send while June replies is a steer. June looks for one:
- after each step, once the tools that step asked for have finished;
- every 2 seconds while June is thinking or writing and no tool is running. Then June stops where it is and continues with your message.
June never cuts off a tool that is running; it waits for the step to end. In Slack, it reads a steer only after a step.
In an organization's chats, a steer from another member carries the reply on as that member: with their connections, and on the model they last picked. A steer from someone who has left the organization is not answered.
Stop there, only the invoices from March
Which model answers
The model you picked in the composer answers, on the plan or key that pays for the chat; Models and who pays explains the groups.
- If your ChatGPT plan does not offer the model you picked, June uses GPT-5.6 Luna if the plan has it, or else the plan's first model.
- If your Claude plan does not offer the model you picked, June uses Claude Opus 4.8 if the plan has it, or else the plan's first model.
- If the model does not offer the reasoning effort you picked, June uses a level it does offer.
After the reply
On the web and in the app, about 10 minutes after the last reply in a chat, June reads back over it, saves what is worth keeping as memories and may refine the Soul. Each new reply starts the 10 minutes again. June does not do this in Slack. When June saves on its own says what it keeps and where.
What June does not do
- It does not summarize a long thread: older messages drop out of what it sees.
- It is not told your time zone. Unless you or the chat name one, it works in UTC, so say "9:00 Berlin time" when the time matters.
- It does not cap a reply's steps.
- It does not switch to another model when your plan's limit is reached: the reply fails.
Use an API key
Pay for June's turns with your own API key from OpenAI, Anthropic, OpenRouter, Requesty, Vercel AI Gateway or any compatible endpoint.
What June can do in a reply
Every tool June can use while it answers, when it reaches for each, and where one is not available: the web and the app, Slack, or a scheduled run.