DocsWork with agents
Messages and context
Give the agent a task in the composer. Add files, quote a previous response, or include a skill when the task needs more context.
Messages can contain up to 120,000 characters. Longer drafts stay in the composer so you can shorten them or split them into several messages.
Pasting 32 KiB or more of text adds that fragment as a text-file attachment so the agent
can inspect it without filling the model context. A smaller paste also becomes an
attachment when inserting it would exceed the message limit. On a hardware keyboard, use
Cmd+Shift+V on Apple devices or Ctrl+Shift+V elsewhere to keep a
large paste editable in the composer instead.
Formatting
The composer writes Markdown and shows it styled as you type. Markers such as
** stay in the text and show beside the styled words when your cursor is on
them. Lines starting with - , 1. , - [ ] ,
> , # or --- become lists, task lists, quotes,
headings and rules; ``` followed by Enter opens a code block. What you typed
is what the agent receives, markers and numbering included, and #1234 without
a space still looks up a pull request.
Enter sends. In a list or quote, Shift+Enter continues it, and
Shift+Enter on an empty line leaves it; Tab nests a list item. In a code
block, Enter starts a new line at the current indentation, Tab and
Shift+Tab indent the selected lines, and a closing
``` followed by Enter, or two blank lines at the end, leave the block.
Backspace at the start of a code block turns it back into plain lines.
Choose the language in a code block's corner to change it. Very large code blocks are
shown without syntax highlighting.
Attach files
Attach up to 100 files per message. Each image can be up to 10 MiB, with at most 80 MiB of images in one message. Other files, including videos, can be up to 50 MiB each, subject to the environment's upload support and limit. The agent receives them on the environment's machine. Provider and model limits still apply, including images already in the conversation. A video attachment gives the agent a file path; it does not enable native video input.
Uploads begin when you add an attachment. All uploads must finish before the message can send. Retry or remove a failed upload. On web and desktop, reloading before an upload finishes requires you to attach that file again.
You can drag or paste images into the web or desktop composer. HEIC and HEIF photos are converted to JPEG there; photos over the image limit are also resized to fit.
See images and videos for previewing and saving media.
Send while the agent is working
On web and desktop, choose Settings → General → Follow-up behavior to
queue new messages for a later turn or steer the running turn immediately. The setting
applies to this client; already queued messages keep their place. Queued messages are
saved on the server and can be edited, reordered, or removed above the composer.
Cmd+Enter on macOS or Ctrl+Enter on Windows and Linux uses the
opposite action: it steers when your default is Queue and queues when your default is
Steer.
Use Cmd+Shift+Enter on macOS or Ctrl+Shift+Enter on Windows and
Linux to send the oldest queued message as a steer. This leaves the current draft intact
and requires an active turn that supports steering. Change
thread.steerQueuedMessage in Settings → Keybindings to use
another shortcut.
Press Option+Up on macOS or Alt+Up on Windows and Linux with the
cursor at the start of the composer to edit the most recently queued message. Change
thread.editQueuedMessage to use another shortcut.
Custom models
On web and desktop, use Settings → Providers → Models to add an unlisted model with a custom name and options. Only options supported by the provider integration affect turns. Antigravity uses its account catalog and does not support custom models.
To rename a built-in model on every client, edit the server's
settings.json in its userdata directory. Add a custom model
entry with the built-in model ID and a new name under that provider instance:
{
"providerInstances": {
"codex": {
"driver": "codex",
"config": { "customModels": [{ "slug": "gpt-5.5", "name": "Team GPT" }] }
}
}
}
Model defaults
Moonfold remembers your provider, model, and model options for new threads. A project's configured model takes precedence; resetting that project setting returns to the remembered selection.
Leaving reasoning level or service tier unset uses the provider's own configuration.
Quote an assistant response
On web and desktop, select text within one assistant response and choose Cite in composer. You can add a comment about the quote and write instructions around it.
Select the quote in a draft or sent message to return to its source. If the source is unavailable or has changed, the saved quote remains readable.
The chip shows your comment when it has one, or a short quote preview otherwise. Use the pencil button to add or change the comment. To remove the citation, place the caret beside its chip and delete it like other inline context. Copying, reloading, and restoring a stashed prompt keep each comment with its quote, and sending tells the agent which words were quoted and which comment you wrote. The quoted text and comment count toward the message limit.
Recall a sent prompt
Press ArrowUp in an empty composer to bring back the last prompt you sent in
this thread. Press ArrowUp again to go further back, and
ArrowDown to come forward. Moving forward past the newest prompt clears the
composer. Recall walks the prompts loaded in the thread. Attachments, terminal context,
and other extras from the original message are not restored, only the text you typed. A
composer that holds an attachment or a picked element does not count as empty.
When the composer has text, the arrow keys move the caret as usual. Recall takes over only
while the text is an unedited recalled prompt, with the caret on the first visual line for
ArrowUp or the last visual line for ArrowDown, counting wrapped
lines. Editing a recalled prompt turns it into a normal draft.
Ask on the side
Select the question-mark bubble in the thread header to ask a quick question about the thread, such as "which files did the agent change?". The thread's model answers from the recent conversation in that popover. Nothing is added to the thread, and a turn that is running carries on. The model has no tools here, so it answers only from what the conversation shows. Answers are gone when you leave the thread.
Send a failed message again
When the agent's latest turn fails, select Send again under the error to send the same message and attachments as a new turn, with the thread's current model and settings. Earlier turns stay as they were. A usage-limit error offers no resend, because it would fail again until the limit resets.
Edit an earlier prompt
On web and desktop, choose Edit from here beneath a sent message to rewind the conversation to before that message. Choose Revert and keep changes to leave workspace files as they are, or Revert files too to restore them as well. File restore is only offered for threads running in a worktree, and it is refused when another thread or agent session also uses that directory, a folder inside it, or a folder that contains it, since restoring would erase their changes. A thread that works in the project directory rewinds the conversation only. The selected prompt and its attachments return to the composer for editing and resending. Any unsent draft stays above the restored prompt.
This removes the selected message and later conversation from the active thread and provider history. It does not undo external actions or separate provider memory. The action is available only when the provider supports rewind.
Prompt stash
On web and desktop, press Cmd+S on macOS or Ctrl+S on Windows
and Linux to save the current prompt and its attachments for later. Wait for uploads to
finish first. With an empty composer, the same shortcut restores a single stash or opens
the stash menu when there are several.
Stashes containing uploaded files must be restored in their original environment. Those files are retained for 24 hours. After an upload expires, restore the prompt and use Attach again or remove the missing file before sending.
Queued messages
On web and desktop, the composer shows Interrupt while the agent is
working and the draft is empty. Adding text or attachments replaces it with a steer arrow.
Click it to send a message into the active turn, or press Enter on desktop.
Hold Cmd on macOS or Ctrl on Windows and Linux to switch the
button to a queue icon. Click while holding that key, or press Cmd+Enter or
Ctrl+Enter on desktop, to queue the message for after the active turn.
Queued messages appear above the composer. Rows show a thumbnail of any attached image alongside the text. Drag a row by its handle to reorder it, use the handle's arrow keys, promote the message to a steer, or remove it.
If the server restarts, saved queued messages keep their order and are held. Press Resume in an empty composer to continue. You can edit, reorder, or remove held messages without starting them.
The pencil on a queued row opens that message in the composer for editing. The original message stays in the queue until you save, and its row is highlighted while you edit. The message's attachments appear above the text with a remove control, and new images can be added the usual way. The checkmark saves the queued message in place; Cancel on its row leaves it unchanged. Whatever you had typed in the composer before starting the edit is restored afterwards. If the queued message starts or is removed while you are editing, the edit ends: changed content moves into the composer when it is empty, and is discarded otherwise.
Commands and skills
Type / for commands or $ to add a skill from the selected
environment and provider.
The slash menu also includes skills unless you turn off Settings → General → Show skills in slash menu. Only skills enabled for the provider are listed.
After you add or change skills, plugins, or MCP servers, use Restart agent session in the command palette on web and desktop. The conversation continues, and your next message starts the agent again with the new setup.
Provider commands must start the message to run. Moonfold commands such as
/model and /plan, and skill mentions, work on any line.
Send /compact in an existing conversation to reduce context usage when the
provider supports it. Web and desktop also offer compaction from the context meter.
Plans
Switch to plan mode (/plan) to have the agent propose a plan before it
changes anything. Send feedback to refine the plan, or send an empty message (or select
Implement) to start the work. To change the plan yourself first, open the
plan's menu and choose Edit plan; implementing then sends your
version. Use the original plan discards your edit. Edits stay on this
device.
Goals
With Codex and Claude, send /goal followed by what "done" means,
for example /goal all tests in packages/api pass. The agent keeps working
across turns until it judges the goal met. The thread shows Goal while it
works, and a row above the composer shows the goal and its progress.
-
/goalalone shows the current goal./goal clearremoves it. -
Codex also supports
/goal pauseand/goal resume. Stopping a Codex goal pauses it. -
Codex goals can have a token budget:
/goal --budget 200k all tests passsets one with the goal, and/goal budget 500kor/goal budget offchanges it later. The goal row shows tokens used against the budget, and Codex stops the goal when it runs out. - Stopping Claude ends the current turn, but the goal stays set. Claude checks it again at the end of your next message.
Context in your message
Context you attach lands where your cursor is, as a chip inside your text: a terminal excerpt, a review comment from a diff or file, a preview annotation, or a file. You can type before and after a chip, move it by cutting and pasting, and delete it like a character. Hover a chip for its brief details. Select a terminal excerpt to open its captured output, or select a review comment, picked element, or preview annotation to open its full details. Chips read as "Terminal excerpt, Terminal 1 lines 3-4" and similar to screen readers.
A pull request appears as its icon and number. Its color reflects whether it was open,
draft, merged, or closed when it was attached. Select it to inspect the captured title and
branches, then choose Open pull request to visit the pull request. On web
and desktop, type # to browse the newest pull requests in the current
project's repository. Pull requests linked to the thread are included from any
repository and listed first, after any exact number match. Continue typing digits to
filter the recent list by any part of its pull request numbers. A complete number is also
resolved directly, even when that pull request is older than the recent list. Type a
single word after # to search pull requests in the repository by text. Choose
a result to insert it as a chip.
Another thread can be context too. Type @ followed by part of its title to
pick one from the same server, or on web and desktop drag a thread out of the sidebar and
drop it on the composer; a multi-selection drops together. The chip shows the thread's
current title and opens it when selected. Your prompt only carries a reference: the agent
reads the thread's history on demand, so attaching a long thread costs nothing until
the agent looks. Attaching a thread does not change it, and the agent cannot send messages
to it unless you ask.
Dropping a thread from another environment attaches a saved transcript file. The source environment must be connected and up to date. The transcript includes the visible history and saved text context at the time of the drop; later messages and the contents of attached files are not copied. The agent can read the saved transcript after the source disconnects. Normal file attachment limits apply.
Images keep their thumbnail shelf above the text and also get a chip at your cursor, so you can say exactly which image you mean. Deleting an image chip leaves the image on the shelf; removing the thumbnail asks first when the image is still mentioned in your text, then removes both. Files exist only as chips: deleting a file's last chip removes the file from the message.
Copy text that holds chips and paste it into another draft, in the same thread or another one, and the chips come along with what they point to. Images and files are fetched again from the environment they came from; while that happens the chip shows a dashed outline, and if it cannot complete Moonfold tells you and leaves the chip for you to remove or replace. A chip whose context is no longer available shows the same dashed outline; hover it for what to do.
Copying a message with the copy button, or copying text out of it, gives other apps readable Markdown with a link in place of each chip. Older messages that were sent before chips still show their context. Stashing a prompt keeps its chips and what they point to; restoring brings them back.
Attached files
Select a file chip in your draft or a sent message to preview it. Code and JSON use syntax highlighting; Markdown, HTML, CSV, and TSV offer rendered and raw views. Audio files have playback controls. Large text files show a limited preview; save the file to read it in full.
On web and desktop, files open beside the conversation with the same controls as a workspace file: a header row with the view toggle, Copy contents and Save file.
Images and videos in messages
Select an image or video attachment or link to preview it. Playback support depends on your browser or device; save an unsupported video to open it in another app.
On web and desktop, right-click media to save it or copy its path or URL.
File links refer to the environment's machine, including when you connect remotely. Previews use the original file, even outside the workspace. Moving or deleting it can break the preview, so save a copy if you need to keep it.
Files outside the workspace
Follow an agent's file link to read a report or other file outside the workspace. These files open read-only. An HTML file outside the workspace cannot load scripts, styles, or images from neighboring files.
HTML and PDF files in the file viewer
On web and desktop, HTML and PDF files open as rendered pages. Switch an HTML file to source view to read its markup; a link to a specific line opens source automatically. HTML previews cannot access your Moonfold session.
The file viewer recognizes images, HTML, and PDF files by their filename extension,
including filenames or folders containing # or ?.