The chat

Everything happens in one screen: you write, Nemocode works, and the transcript stays readable while it does.

Messages and missions

Every message you send to Nemocode starts a mission: Nemocode works until the job is done, it needs an answer from you, you stop it, or — with a goal — the condition you named is met. What it does is written into the transcript step by step. A session holds any number of missions one after the other and remembers the conversation between them.

Two ways to talk

ModeWhat it is
CodeThe normal mode. Nemocode reads, plans, changes files and runs commands.
CuratorA conversation about the project memory only. It can look things up and — after arguing it out with you — write a fact down, but it cannot touch your code. Toggle it with /curator.

A third kind of chat is opened for you: the harvest session that belongs to a session. Ctrl + T switches to it and back. See The harvest session.

The five modes

Shift + Tab cycles how much Nemocode may do on its own: Read only, Plan, Ask, Accept edits, Auto, and back to Read only. /mode opens a window with the same five, under the same names, to pick one directly. The footer names the current mode.

ModeWhat it means
Read onlyNemocode looks and answers. Nothing changes: no edits, no commands that write.
PlanNemocode explores the project and writes a plan, but changes nothing until you approve the plan.
AskEvery change and every command asks first.
Accept editsFile changes go through; a shell command asks first. This is the default mode.
AutoFully autonomous.

The agent can ask to move into Plan mode for a bigger task, and only your yes does it. Read only never starts a plan. In Plan mode the plan ends in a question with four answers: approve and build in auto mode, approve and ask before shell commands, keep planning, or reject and stop. Esc on that question means keep planning. It never releases the plan. Under Settings ▸ General, Auto-approve plans skips the question for unattended runs; After a plan is approved then chooses which mode Nemocode continues in (accept edits or auto mode).

Your message is kept

What you type is saved while you type it. Leave the session and come back and it is still in the field. Clear it by accident and ↑ brings it back, next to the messages you sent earlier.

↑ and ↓ walk through what you sent in this session — never another one's.

Writing while it works

You do not have to wait. A message sent during a mission is queued: it starts as the next mission when the current one has finished, and the transcript says queued. The queue is per project, so a mission in another session of the same project comes first, too. If you want a message to change course now, use /steer <text>: it goes into the running mission and is read at its next step; if no mission is running, it starts one. Esc stops the running mission.

Setting a goal

A mission normally ends when the agent thinks it is done. With a goal, it ends when a condition you named is actually met:

/goal all tests in the server pass and the linter is clean

After every turn a small, separate model reads the conversation and judges whether the condition holds. It has no tools and cannot look anything up — it only sees what the agent already showed: test output, an exit status, a clean working tree. The agent saying “done” is not enough. If the condition is not met yet, the reason goes back to the agent as its next instruction and it keeps working. Once it is met — or if it cannot be met at all, which the check says with its reason — the goal is cleared and the mission ends as usual.

CommandWhat it does
/goal <condition>Start working on a goal now. It applies to this one mission only; the agent plans on its own, builds in Auto mode and the check can also say the goal is not achievable.
/goalShow the current goal and how many checks have said “not yet”.
/goal clearStop checking. stop, off, reset, none and cancel work too — but only as the whole argument, so /goal none of the tests may fail is a condition.

A goal applies to the one mission that starts with /goal; later messages are not checked. Without a goal, nothing is checked and nothing extra is spent. After forty checks in a row without success, Nemocode clears the goal on its own rather than run forever; Settings ▸ Advanced ▸ Goal max rounds changes that limit (1 to 1000).

Ultra keywords

Six keywords, written anywhere in an ordinary message in the code chat, start a bigger run at maximum reasoning effort. Nemocode highlights the keyword while you type, and when you send, a window asks whether to start it, send as a normal message or cancel (cancel puts your text back in the field) — a word never starts an expensive run silently. A message that begins with / is a command, not a keyword.

KeywordWhat it does
ultracodeBuild as carefully as possible: a grounded plan, build and check, an adversarial review, fixes, a second check.
ultratestBuild complete tests including edge cases, then a review that looks at test coverage.
ultrareviewA review from several angles — correctness, security, performance, tests — that ends in a report and changes nothing.
ultraplanSeveral planning perspectives in parallel, merged into one plan. Read only.
ultraresearchThe code searched from several angles in parallel, merged into one research report.
ultrathinkJust this mission at maximum reasoning effort.

/ultracode, /ultrareview and /ultrathink put the keyword in the input field for you; you add the task and send, and the window above still asks. These runs cost noticeably more than a normal mission.

Images and files

Ctrl + V with an image or a file on the clipboard attaches it: the message gets a reference such as #image 12 or #file 12. Each attachment has its own number, counted across all projects and never reused, so the agent cannot mix up two screenshots. Several copied files get one number each. A reference to an attachment of another project is refused. A model that can see images gets the picture; if the model cannot, and you assigned a vision model under Models, that one describes the picture and the description is used instead. Text you paste is pasted as text.

Reading the transcript

Each step is one line with the essentials, and detail underneath. Click a line, or press Ctrl + O for all of them, to open the detail. How much detail you see is yours to set under Settings ▸ Display: tool output, the model's thoughts, the memory lines, the technical notes. Turn on Compact mode for one line per step and nothing else. The mouse wheel and the scroll keys move through the transcript; dragging selects text and copies it when you let go.

Shells and subagents

Commands that keep running in the background are listed under Ctrl + B, where you can stop them. Subagents that Nemocode started show up as a chip in the footer; ← in an empty input field opens the list, and you can watch one, pause it or stop it. See Keys.

Panels

Anything that is an answer rather than a step opens in a window on top of the chat: /diff, /config, /todo, /mcp, /undo, /redo and the rest. Esc closes it and the conversation is where you left it. Long output scrolls — nothing is cut off with “run it yourself for the rest”. The memory screens (/pending, /pum, /pum-folders) take the whole screen instead; Esc brings you back to the chat.

When it asks

An approval appears in place, with the exact command or path it wants. You answer with a key: y allow once, a allow this command from now on (shell commands only), or n deny; Esc denies, too. What “from now on” remembers is per project: /allow shows the list and /allow <command> adds to it; removing an entry is under Settings ▸ Project ▸ Allowed commands. When the agent needs a folder outside the project, it asks a question with four answers: allow always, just this mission, no, never — Esc there means no. The full list of keys is on the Keys page.

When the conversation gets long

Nemocode watches how much context a mission is using and compacts the conversation before it runs out — it summarises what happened so far and keeps working. You can have it ask first (Settings ▸ General ▸ Compaction ask), do it yourself with /compact (not while a mission is running), or see where the tokens actually go with /context.