Talking to an Agent
Freddy's first question went well. Now he wants the agent to fix the export bug, and he realises he is about to make four decisions without noticing: which agent, which model, how hard it thinks, and whether it may touch a file without asking.
The problem
Starting a task with an agent is mostly typing, and a little
bit of deciding. The deciding is the part people skip. They
use whatever the agent defaulted to, and find out what that
meant when it has already edited eleven files. The typing has
its own friction: you think of something while the agent is
working, you have a screenshot of the bug, you want to point at
src/export/csv.ts without spelling the path.
The hard way
In a terminal, a new thought while the agent works means interrupting it, and an interrupted agent often loses the thread of what it was doing. A screenshot means saving a file, finding its path and describing it. A path means typing it, or letting the agent search for it. None of that is hard, and all of it is friction at exactly the moment you are trying to explain something.
Sending, queueing and stopping
Type in the message box at the bottom of a thread and press
Enter to send. Shift+Enter starts a
new line. ⌘L puts the cursor in the message
box from anywhere.
-
↑in an empty message box brings back the messages you sent earlier, newest first;↓goes forward again. - What you type is kept per thread. Switching threads does not lose a draft.
- While the agent is working, the send button turns into Queue. Your message waits and is sent when the turn ends. Queued messages are shown above the message box. You can remove them, or press Send now to deliver one into the running turn (Claude Code, Codex, Elyra and Pi).
-
Stop (or
⌃Cin the message box) interrupts the agent.
Queue is the answer to the problem above. Freddy thinks of a second thing while the agent works on the first. He types it, presses Enter, and it waits above the box. Nothing is interrupted, and nothing is forgotten.
Attachments
-
Images: paste them (
⌘V), drop them on the window, or use the paperclip button. They are sent to the agent with your message. Supported: PNG, JPEG, GIF and WebP. -
Other files dropped or picked are added as
@pathmentions, so the agent reads them itself. - Long pasted text (over 4,000 characters or 60 lines) becomes a Pasted text chip instead of filling the message box. It is sent with the message.
Remove an attachment with the × on its chip. A pasted stack trace is the classic use of the third one: it stays out of your way, and the agent gets all of it.
@ and /
Type @ to get a list of the files and folders in
the project. Choose one with ↑/↓
and Enter or Tab, and the path is
inserted. The list respects .gitignore and matches
loosely: @thrview finds
src/thread_view.rs. With Claude Code, the list
also shows its subagents as @agent-<name>,
for example @agent-Explore, to ask for a specific
subagent.
Type / at the start of the message to see the
commands:
| Command | What it does |
|---|---|
/clear | Start a fresh conversation in this thread (the agent forgets the earlier messages) |
/compact | Ask the agent to summarize the conversation to free up context |
/rename <title> | Rename the thread |
/plan | Switch to Plan only |
/default | Switch back to Ask for approval |
/status | Show the model, context use and cost |
The agent's own commands are listed after these. For Claude Code that includes your custom commands and skills. Choosing one inserts it, and you can add arguments before sending.
The row under the box
This row controls the thread, and it is where the four decisions from the start of the chapter live.
- Agent: Claude Code, Codex, Elyra, Pi, Gemini CLI, Cursor Agent, OpenCode or your custom agent. You can change it only before the first message. To switch later, use Continue with (chapter 6). Agents you switched off in Settings are not listed.
- Model: the models the agent offers. Workspace learns the list from the agent after its first start and remembers it. At the bottom of the menu, Star this model saves the agent and model as a preset. Starred presets are listed at the top of the menu for every thread. Before the first message, picking one also switches the agent.
- Account: only shown when you set up accounts for the agent in Settings. Like the agent, it can be chosen only before the first message.
- Effort: how hard the model thinks (Claude Code: low to max; Codex: minimal to extra high; Elyra and Pi: off to extra high). Not every agent supports it.
- Permission mode, below.
- Local / New worktree: where the thread works. Chapter 7 is about this.
New threads start with the agent, model, effort and permission mode you used last.
Permission modes: the decision that matters
| Mode | The agent… |
|---|---|
| Ask for approval | asks before editing files or running commands |
| Accept edits | edits files freely, asks before anything else |
| Plan only | reads and plans, but changes nothing |
| Full access | does everything without asking |
Choose by what the task can break, not by how much you trust the agent. A question about the code is a Plan only task. A change you will review in the diff anyway can be Accept edits. Full access is for a folder you can throw away, which chapter 7 makes cheap.
Debug mode, and the context meter
The Debug button (the bug icon) turns on reproduce-first mode. The agent is told to write a failing test or a minimal reproduction first, explain the root cause, make the smallest fix and show the reproduction passing. The button turns yellow while it is on, and the change applies from the next message. For Freddy's export bug it is the right default: “the export drops the last note” is a failing test waiting to be written.
The context meter shows how full the model's
context window is, with the cost so far when the agent reports
it. When it is nearly full, use /compact, which
asks the agent to summarize the conversation and free up
room.
Enter on a second message while it is still
answering, and watch it appear above the box as a queued
message.
What you learned
- How to queue a message while the agent works, and when Send now is the better choice
- How to attach images, files and long pasted text, and what @ and / do
- What the row under the message box controls, and that the agent is fixed after the first message
- The four permission modes, and how to choose one by what the task can break
- That Elyra and Pi run tools without asking, so approvals are not how you supervise them
- What Debug mode and the context meter are for