Chat Controls

Everything in the chat input area: model selector, preconfig selector, variants, response formats, auto-approve.

The chat input area has several selectors that control how the agent behaves in the current session. All of them are in the bar at the bottom of the screen, around the message box.

Model selector

Location: Bottom-left of chat input

Click to open a searchable list of all available models. Models are labeled Budget / Standard / Premium. Pick one to switch models mid-session. The conversation continues with the new model.

Preconfig selector

Location: Next to the model selector

Click to switch preconfigs: agent personalities. Each preconfig bundles a model, tools, system prompt, and spawn rules. Switching preconfigs changes the agent's behavior without starting a new session.

Variant selector

Location: Within the model selector (for models that support it)

Models with variants show a High / Medium / Low effort selector. This controls reasoning depth. Higher effort means more thinking, slower responses, more tokens.

On desktop, the model, variant, and preconfig selectors are combined into a single unified popover.

Response format selector

Location: Right side of chat input

Click to apply a response format. When active, the model's reply conforms to the JSON schema you defined. A badge stays visible to remind you it's active.

Auto-approve shield

Location: Right side of chat input (shield icon)

Controls how aggressively the agent auto-approves tool calls. See Auto-Approve for the full breakdown.

Prompt autocomplete

Location: In the message box, type /

Type / to trigger the prompt autocomplete. Pick a prompt template from the dropdown. Your input after the command replaces ARG in the template.

Goal mode

Location: Next to the send button. Click the mode dropdown (shows "Chat" or "Goal").

Normally the agent does one turn and stops. If the task isn't done, you say "keep going." Goal mode eliminates that.

Switch the send mode from Chat to Goal. Type your completion condition instead of a regular message. Set the max turns (default 5). Press send.

The agent works in a loop: work a turn, evaluate itself, continue or stop. After each turn, a separate evaluator inspects actual tool outputs (test results, build status, file contents). It doesn't trust the agent saying "I'm done." It verifies from evidence. If the condition isn't met, the evaluator tells the agent what's still missing and the agent continues.

Example: You set the condition "all tests pass and lint is clean." The agent runs tests, finds failures, fixes them, runs tests again. Each turn, the evaluator checks the actual test output. Only when the output shows green does the loop stop.

Cancel anytime by pressing Stop. The agent doesn't know it's in a loop. It just receives continuation messages.

What's next