Agents
Composer
Write prompts, mention files, run commands, attach files and images, and queue or steer follow-ups while an agent works.
The composer is the card at the foot of every chat. You write the prompt there, bring in files, code and screenshots, and choose the model and what the agent may do. It keeps an unsent draft for each chat.
The composer card
The prompt starts empty with “Do anything” and grows as you type, up to a quarter of the window before it scrolls. Along its foot:
- + opens the palette of skills, context and extensions. See The + palette.
- The access chip says what the agent may do: Full access, Ask or Plan. See Modes & approvals.
- Auto-apply, in Full access chats on Cursor with an older Cursor CLI. See Cursor and OpenCode.
- A ring for the context window, once the provider has reported usage. It fills as the context does, turning orange at 75% and red at 90%. Point at it for the count, or click it for the details and your plan’s limit.
- The model chip: the model and its effort, with a bolt when fast mode is on. See Models & loadout.
- The send button. While a turn runs it becomes a stop button, with a second button beside it for a follow-up once you type one.
On a new chat, a bar above the card holds the project, where the chat runs (Local or Isolated) and the branch it starts from. Once the chat exists, these show in its header instead.
When the project has uncommitted changes, a files changed pill with the line counts floats above the composer; click it to open the Git panel. With Settings ▸ Agent & composer ▸ Turn status summary on, as it is by default, a line above the composer also says when the chat needs you: “Action needs your approval” or “This task needs attention”.
Send a message
↩ sends and ⇧↩ starts a new line. To make ↩ always start a new line and send with ⌘↩ instead, set Settings ▸ Agent & composer ▸ Submit messages to ⌘ Return. The same setting is Send message in Settings ▸ Keyboard shortcuts, where Restore shortcut defaults puts ↩ back.
The send button dims when the message can’t go yet: the chat has no project, its provider isn’t ready, an approval is waiting, or the chat is still loading. With nothing typed it stays lit, and clicking it puts the cursor in the prompt.
Mentions
Type @ anywhere in the prompt to pick a file or folder from the project. Keep typing to filter; the list names the project, and says “Indexing project…” while Codz reads it for the first time.
- Picking a file writes
@and its path for Claude Code, which reads the file in for you, and the plain relative path for every other provider. - Picking a folder keeps the list open inside it, so you can go on to a file.
- A path with spaces goes in backticks, so it stays one reference.
An @ only opens the list at the start of a word, so an email address in your prompt stays text.
Commands
Type / at the very start of the prompt for commands. Anywhere else, a slash is just a character, so paths are safe.
| Command | What it does |
|---|---|
/model | Opens the model picker |
/ask, /plan, /agent | Switches the chat to Ask, Plan or Full access |
/init | Writes a prompt asking the agent to draft an AGENTS.md for the project |
/review | Writes a prompt asking the agent to review your uncommitted changes |
/debug | Writes a prompt asking the agent to find the root cause before changing anything |
/new | Starts a new chat |
/goal | Sets or edits the chat’s goal |
/files, /terminal, /git | Opens that panel in the rail |
/browser, /computer | Opens the Browser or Computer panel, while it is turned on in Settings ▸ Browser & tools |
/commit | Opens the Git panel and stages everything, ready for a commit message |
/history | Opens the Git panel’s commit history |
/branch | Creates a branch |
/compact | Asks the agent to compact its context and free space |
/init, /review and /debug only fill in the composer. Nothing is sent until you press ↩, so you can edit the text first. The commands from /new down appear once a chat exists, and /compact only in Claude Code and Codex chats.
Once a chat has started, the list also includes the commands and skills its provider reported, marked Provider command. Picking one writes it into the prompt, and the provider runs it when you send. Claude Code and Cursor report theirs.
The + palette
+ opens a searchable list (“Search skills, context, extensions…”). Type to filter, use ↑ and ↓ to move and ↩ to choose.
| Section | What it holds |
|---|---|
| Skills | Plan, Debug, Review changes, Ask and Write AGENTS.md, the same as their / commands, and any skills the provider reported |
| Context | Files and Folder to attach, Changed files to attach everything Git reports as modified, Screenshot to capture part of the screen, and Remove all attachments |
| Extensions | The MCP servers, plugins, subagents and instruction files your agents load for this project, with a count. Open one to see each item, and choose an item to show its file in the Finder |
| Environment | On a new chat only: Local or Isolated |
⌫ in an empty search goes back out of an opened list. Agent extensions describes what the Extensions lists show.
Attachments and images
Add files to a message in any of these ways:
- Paste an image or a copied file with ⌘V.
- Drag files or folders onto the chat.
- Use Files, Folder, Changed files or Screenshot in the + palette.
Attachments sit above the prompt, inside the card. An image shows as a square thumbnail; click it to preview it. Another file shows as a tile with a preview (PDF, Word, PowerPoint and Excel files get a real one); click it to open the file in its app. Point at a tile for the ✕ that removes it. A single paste or drop brings in up to 12 items, and a pasted image can be up to 16 MB.
PNG, JPEG, GIF and WebP files are sent as images. Claude Code, Codex and OpenRouter receive them as pictures, and so does Cursor when its CLI accepts images; other providers get the file’s path, which the agent can open itself. Every other file is sent as its path, listed after your message for the agent to read. Images you attach appear as thumbnails above your message in the transcript.
Code references
To point the agent at particular lines, select them in the Files panel’s editor and press ⌘L, or click Add to Chat on the selection. A chip appears above the prompt with the file’s name and lines, such as “L24-30”; point at it for the full path. When you send, the file’s path, the line range and the code itself go after your message. Adding the same lines twice keeps one chip, and ⌫ at the very start of the prompt removes the last chip. Add to Side Chat sends the lines to the side chat instead.
Selecting text in the transcript offers three actions:
- Add to chat quotes the selection into your draft.
- More details sends the quote at once, asking the agent to tell you more.
- Ask in side chat opens the side chat with the selection.
While the agent works
While a turn runs, the prompt reads “Send a follow-up”. What happens to a message you send then depends on Settings ▸ Agent & composer ▸ Follow-up behavior:
- Queue for next turn, the default: the message waits in Up next above the composer, and messages go in order as each turn ends (“Runs automatically”). Open Up next to move a message earlier or later, Edit in composer or Remove from queue.
- Interrupt and continue: Codz stops the running turn and sends the newest message.
With Claude Code and Codex, ⌘↩ hands a typed message straight to the running turn instead, which the agent reads as it works. This works while ↩ is your send key; if the provider can’t take the message mid-turn, it joins the queue.
Drafts
Each chat keeps its own unsent text, and so does a new chat. Switch to another chat and back, or quit Codz, and the draft is still there. Attachments and code references aren’t part of a draft: switching chats clears them.
Custom instructions
Settings ▸ Agent & composer has three ways to shape every turn, whichever provider runs it:
- Personality: Friendly, Pragmatic (the default) or None. It sets the tone of answers without changing technical judgment.
- Custom instructions: text added to every new turn. Never put secrets here.
- Use local memory, off by default: turn it on to add the notes in Remember to future turns. The notes stay in this Mac’s preferences, and Clear memory empties them.
The agents’ own instruction files, such as AGENTS.md and CLAUDE.md, are covered in Agent extensions.
Keyboard shortcuts
| Key | In the composer |
|---|---|
| ↩ | Send (or a new line, with ⌘ Return as the send key) |
| ⇧↩ | New line |
| ⌘↩ | Approve a waiting action, or steer a running turn in Claude Code and Codex |
| Esc | Close a list or picker, deny a waiting action, or stop the running turn |
| ⇧Tab | Switch between Ask, Plan and Full access |
| Tab | Move out of the composer |
| ⌥Tab | Type a tab |
| ⌘L | Put the cursor in the composer from anywhere in the chat |
Troubleshooting
The prompt says “Approve or deny the pending action to continue”. The agent is waiting on an approval. Answer it, or type a reason and press ↩ to deny it with that reason. See Modes & approvals.
/compact isn’t in the list. It is offered only in a Claude Code or Codex chat that has started.
An OpenRouter turn stops with “… cannot read images”. The chat’s model can’t take pictures. Pick a model that can, or remove the image.
An attachment disappeared. Attachments and code references belong to the message you’re writing in that chat, and switching chats clears them. Add them again.