June logo
JuneDocumentation
How June works

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:

June gathers the Soul, the project, your integrations, up to 8 memories and notes on the 6 latest replies.
It reads the thread back, newest first, up to about 64,000 tokens or 500 messages.
The model answers or asks for tools. June runs them and starts the next step.
June reads your steer after each step, or every 2 seconds while it thinks or writes.
The reply ends on an answer, Stop reply, or a failure.
About 10 minutes later, on the web and in the app, June saves what is worth keeping as memories.

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.