Planning
Every chat keeps one plan — in the browser and in the terminal, the same structure — and any chat can be put into Plan mode, where the model reads, changes nothing, and puts its plan to you first.
What the model writes
A model working on anything with a few steps writes a plan before it starts, and keeps it as it goes. A plan is not a list of sentences; it is a structure, and every part of it has an id the model refers to:
| Part | What it holds |
|---|---|
| Title and summary | What the work is, in a line, and a short account of the approach. |
| Findings | What it found out on the way — how the code is laid out, what a file says, what turned out false. |
| Objectives | What the work is for: the outcomes, each open, done or dropped. |
| Phases of tasks | The work itself, in order. A phase is pending, active or done; a task is to do, doing, done or dropped — with why. |
The ids (p1, t3, o2…) are given by the program, never chosen by the model, so a task can never be ticked off by a name the model made up. A plan is bounded — at most eight phases of twelve tasks, eight objectives, twenty findings — because it is read by a person and put in front of the model on every turn while it exists.
Kept current
As the work goes on the model marks each task as started, done or dropped, adds work the plan did not foresee, and records what it finds. It is the same plan from the first step to the last: the whole of it is in the prompt on every turn, so the model cannot lose track of where it is, and you can see where it is without asking. The plan belongs to the conversation — it is kept with the chat or the session, is there again when you come back, and a new chat starts without one.
Where you see it
In the browser
- Above the message box, while anything is still to do: the task in progress, what is left, and the last two done. The whole card is one click away.
- In the reply that last changed it, as a card showing the plan as it stood then — each message that changed the plan keeps its own snapshot, so reading back through a chat shows how the plan grew.
- A chat from before the plan existed shows the plan it had, if any; the old todo list above the message box is gone, replaced by this.
In the terminal
- Above the prompt, a panel with the active phase, the task being done, what is next, the last two done and the count, while anything is open.
- A plan change is not drawn as a tool line in the transcript; the panel and the card follow the plan itself.
/plan showprints the whole plan with its ids,/plan cleardrops it, and/planssays whether this session has one and lists the project’s saved ones.
One plan, two windows. An agent chat’s plan is the same plan in both places: the device keeps it, the browser shows it, and a change made on either side is seen on the other.
Plan mode
Planning happens on its own in any mode. Plan mode is for when you want to see the plan before anything is done.
A chat
The mode control beside the message box offers Normal or Plan. In Plan mode the model reads and searches freely — the library, the web, whatever it may use — but changes nothing: every tool that writes to the library or runs something is withheld. It finishes by putting its plan to you on a card.
An agent chat
An agent chat keeps its four modes — Manual, Edit, Auto and Plan — enforced on the device at every step. In Plan the model reads the project and writes its plan, and nothing else; see Agent chats → Modes. In the terminal, /plan switches to it (/plan <task> starts on a task straight away) and Shift+Tab cycles out of it.
The card
The plan arrives as a card, in the chat and in the terminal alike — if the session is open in both, the first answer counts. Three answers:
| Answer | In a chat | In an agent chat |
|---|---|---|
| Approve | Plan mode ends and the model carries the plan out in the same reply, with the tools it was planning for, keeping it current above the message box. | Choose let it edit (Edit mode: it asks only before running commands) or ask me each time (Manual). In the terminal, a or m. |
| Send it back | Say what to change; the model revises the plan and puts it to you again. | The same. In the terminal, r with a note. |
| Put it aside | The plan stays on the chat, nothing is carried out, and the chat is yours again. | The same. In the terminal, Esc keeps planning. |
Carry out this plan
The plan card in any chat has a Carry out this plan button, for a plan that was put aside, or one you are looking at later: an agent chat switches to Edit (commands still ask), an ordinary chat just leaves Plan mode, and the model works through the plan in order with it staying above the message box. The panel’s own card carries the plan out as it stands now.
The record
When a plan is submitted for approval in a terminal session, a copy is written under .agent/plans/<date>-<slug>.md in the project. That file is a record of what was proposed, for you and for the history — the plan itself lives with the session, and editing the file changes nothing. /plans lists them.
Older names
The plan is the shared harness specification’s (1.1.0): tools plan_write, plan_update and plan_submit, the same in LLeMbas Server 1.3.0 and LLeMbas CLI 1.3.0. The former todo tool is a name of plan_write now — a call under it, from a stored session or a model trained on it, becomes a plan with one phase called Work. A permission rule written for todo applies to plan.