1# Messages and context
2
3Give the agent a task in the composer. Add files, quote a previous response, or
4include a skill when the task needs more context.
5
6Messages can contain up to 120,000 characters. Longer drafts stay in the composer
7so you can shorten them or split them into several messages.
8
9Pasting 32 KiB or more of text adds that fragment as a text-file attachment so
10the agent can inspect it without filling the model context. A smaller paste also
11becomes an attachment when inserting it would exceed the message limit. On a
12hardware keyboard, use `Cmd+Shift+V` on Apple devices or `Ctrl+Shift+V` elsewhere
13to keep a large paste editable in the composer instead.
14
15## Formatting
16
17The composer writes Markdown and shows it styled as you type. Markers such as
18`**` stay in the text and show beside the styled words when your cursor is on
19them. Lines starting with `- `, `1. `, `- [ ] `, `> `, `# ` or `---` become lists,
20task lists, quotes, headings and rules; ` ``` ` followed by Enter opens a code
21block. What you typed is what the agent receives, markers and numbering
22included, and `#1234` without a space still looks up a pull request.
23
24Enter sends. In a list or quote, **Shift+Enter** continues it, and Shift+Enter
25on an empty line leaves it; **Tab** nests a list item. In a code block, Enter
26starts a new line at the current indentation, **Tab** and **Shift+Tab** indent
27the selected lines, and a closing ` ``` ` followed by Enter, or two blank lines
28at the end, leave the block. **Backspace** at the start of a code block turns it
29back into plain lines. Choose the language in a code block's corner to change
30it. Very large code blocks are shown without syntax highlighting.
31
32## Attach files
33
34Attach up to 100 files per message. Each image can be up to 10 MiB, with at most
3580 MiB of images in one message. Other files, including videos, can be up to
3650 MiB each, subject to the environment's upload support and limit. The agent
37receives them on the environment's machine. Provider and model limits still
38apply, including images already in the conversation. A video attachment gives
39the agent a file path; it does not enable native video input.
40
41Uploads begin when you add an attachment. All uploads must finish before the
42message can send. Retry or remove a failed upload. On web and desktop, reloading
43before an upload finishes requires you to attach that file again.
44
45You can drag or paste images into the web or desktop composer. HEIC and HEIF
46photos are converted to JPEG there and when selected from the mobile photo
47library; photos over the image limit are also resized to fit. On mobile, you can
48also send files to T3 Code through another app's system share sheet.
49
50See [images and videos](#images-and-videos-in-messages) for previewing and saving media.
51
52## Send while the agent is working
53
54On web and desktop, choose **Settings → General → Follow-up behavior** to queue
55new messages for a later turn or steer the running turn immediately. The setting
56applies to this client; already queued messages keep their place. Queued messages
57are saved on the server and can be edited, reordered, or removed above the composer.
58`Cmd+Enter` on macOS or `Ctrl+Enter` on Windows and Linux uses the opposite action:
59it steers when your default is Queue and queues when your default is Steer.
60
61Use `Cmd+Shift+Enter` on macOS or `Ctrl+Shift+Enter` on Windows and Linux to send
62the oldest queued message as a steer. This leaves the current draft intact and
63requires an active turn that supports steering. Change
64`thread.steerQueuedMessage` in **Settings → Keybindings** to use another shortcut.
65
66Press `Option+Up` on macOS or `Alt+Up` on Windows and Linux with the cursor at the
67start of the composer to edit the most recently queued message. Change
68`thread.editQueuedMessage` to use another shortcut.
69
70Mobile has the same choice under **Settings → Follow-ups**. While a turn is
71running the send button shows which action it will take. Long-press it to use the
72other action for a single message, or hold `Cmd` while sending from a hardware
73keyboard. The button only offers Steer when the running agent supports it.
74
75## Queue messages offline on mobile
76
77Mobile keeps local copies of draft attachments, so you can preview them and queue
78messages while disconnected. Uploads resume when you reconnect. Drafts and queued
79messages survive app restarts. Signing out of T3 Connect keeps that work on your
80device until you sign back into the same account.
81
82## Custom models
83
84On web and desktop, use Settings → Providers → **Models** to add an unlisted model with a custom
85name and options. Only options supported by the provider integration affect turns. Antigravity
86uses its account catalog and does not support custom models.
87
88To rename a built-in model on every client, edit the server's `settings.json` in its `userdata`
89directory. Add a custom model entry with the built-in model ID and a new name under that provider
90instance:
91
92```json
93{
94 "providerInstances": {
95 "codex": {
96 "driver": "codex",
97 "config": { "customModels": [{ "slug": "gpt-5.5", "name": "Team GPT" }] }
98 }
99 }
100}
101```
102
103## Model defaults
104
105T3 Code remembers your provider, model, and model options for new threads. A
106project's configured model takes precedence; resetting that project setting
107returns to the remembered selection.
108
109Leaving reasoning level or service tier unset uses the provider's own configuration.
110
111## Quote an assistant response
112
113On web and desktop, select text within one assistant response and choose
114**Cite in composer**. You can add a comment about the quote and write instructions
115around it.
116
117Select the quote in a draft or sent message to return to its source. If the source
118is unavailable or has changed, the saved quote remains readable.
119
120The chip shows your comment when it has one, or a short quote preview otherwise. Use the pencil
121button to add or change the comment. To remove the citation, place the caret beside its chip and
122delete it like other inline context. Copying, reloading, and restoring a
123[stashed prompt](#prompt-stash) keep each comment
124with its quote, and sending tells the agent which words were quoted and which comment you wrote.
125The quoted text and comment count toward the message limit.
126
127Mobile displays saved quotes and comments, but does not create citations or
128navigate to their sources.
129
130## Recall a sent prompt
131
132Press `ArrowUp` in an empty composer to bring back the last prompt you sent in this thread. Press
133`ArrowUp` again to go further back, and `ArrowDown` to come forward. Moving forward past the newest
134prompt clears the composer. Recall walks the prompts loaded in the thread. Attachments, terminal
135context, and other extras from the original message are not restored, only the text you typed. A
136composer that holds an attachment or a picked element does not count as empty.
137
138When the composer has text, the arrow keys move the caret as usual. Recall takes over only while
139the text is an unedited recalled prompt, with the caret on the first visual line for `ArrowUp` or
140the last visual line for `ArrowDown`, counting wrapped lines. Editing a recalled prompt turns it
141into a normal draft.
142
143## Edit an earlier prompt
144
145On web and desktop, choose **Edit from here** beneath a sent message to rewind
146the conversation to before that message. Choose **Revert and keep changes** to
147leave workspace files as they are, or **Revert files too** to restore them as well.
148File restore is only offered for threads running in a worktree, and it is
149refused when another thread or agent session also uses that directory, a folder
150inside it, or a folder that contains it, since
151restoring would erase their changes. A thread that works in the project directory
152rewinds the conversation only. The selected prompt and its attachments return to the composer for editing and
153resending. Any unsent draft stays above the restored prompt.
154
155This removes the selected message and later conversation from the active thread
156and provider history. It does not undo external actions or separate provider
157memory. The action is available only when the provider supports rewind.
158
159## Prompt stash
160
161On web and desktop, press `Cmd+S` on macOS or `Ctrl+S` on Windows and Linux to save
162the current prompt and its attachments for later. Wait for uploads to finish first.
163With an empty composer, the same shortcut restores a single stash or opens the
164stash menu when there are several.
165
166Stashes containing uploaded files must be restored in their original environment.
167Those files are retained for 24 hours. After an upload expires, restore the prompt
168and use **Attach again** or remove the missing file before sending.
169
170## Voice input on iPhone
171
172On supported iPhones with iOS 26 or later, use the composer's microphone to record,
173then confirm to transcribe. Text is inserted where your selection was when
174recording started, ready for you to review and edit before sending.
175
176The first use may download Apple's speech model and needs a network connection.
177Later transcription works offline for that language. Recordings can be up to five
178minutes long. Canceling, leaving the screen, or an audio interruption discards the
179recording and preserves your existing draft. While recording, the screen stays
180awake; it can sleep normally once recording stops.
181
182Voice input records from the first connected microphone in **Settings → Microphone**.
183The list mixes kinds (built-in, other wired, other Bluetooth, CarPlay) with wired and
184Bluetooth devices you have dictated with, listed by name. Drag to rank them together:
185for example, put **Other Bluetooth** above your AirPods so a new headset is preferred
186while the AirPods microphone stays low. By default, CarPlay comes after the built-in
187microphone.
188
189Transcription runs on your device. T3 Code deletes the temporary audio after
190transcription or cancellation; only the message text is sent when you submit.
191
192## Queued messages
193
194On web and desktop, the composer shows **Interrupt** while the agent is working and the draft is
195empty. Adding text or attachments replaces it with a steer arrow. Click it to send a message into
196the active turn, or press `Enter` on desktop. Hold `Cmd` on macOS or `Ctrl` on Windows and Linux to
197switch the button to a queue icon. Click while holding that key, or press `Cmd+Enter` or
198`Ctrl+Enter` on desktop, to queue the message for after the active turn.
199
200Queued messages appear above the composer. Rows show a thumbnail of any attached image alongside
201the text. Drag a row by its handle to reorder it, use the handle's arrow keys, promote the message
202to a steer, or remove it.
203
204If the server restarts, saved queued messages keep their order and are held. Press
205**Resume** in an empty composer on web or desktop, or **Resume queue** in the queue
206sheet on mobile, to continue. You can edit, reorder, or remove held messages without starting them.
207
208The pencil on a queued row opens that message in the composer for editing. The original message
209stays in the queue until you save, and its row is highlighted while you edit. The message's
210attachments appear above the text with a remove control, and new images can be added the usual way.
211The checkmark saves the queued message in place; **Cancel** on its row leaves it unchanged. Whatever
212you had typed in the composer before starting the edit is restored afterwards. If the queued
213message starts or is removed while you are editing, the edit ends: changed content moves into the
214composer when it is empty, and is discarded otherwise.
215
216## Commands and skills
217
218Type `/` for commands or `$` to add a skill from the selected environment and
219provider. On mobile, both are also available before starting a thread on
220**New task**.
221
222The slash menu also includes skills unless you turn off **Settings → General →
223Show skills in slash menu**. Only skills enabled for the provider are listed.
224
225After you add or change skills, plugins, or MCP servers, use **Restart agent
226session** in the command palette on web and desktop. The conversation continues,
227and your next message starts the agent again with the new setup.
228
229Provider commands must start the message to run. T3 Code commands such as
230`/model` and `/plan`, and skill mentions, work on any line.
231
232Send `/compact` in an existing conversation to reduce context usage when the
233provider supports it. Web and desktop also offer compaction from the context meter.
234
235## Goals
236
237With Codex and Claude, send `/goal` followed by what "done" means, for example
238`/goal all tests in packages/api pass`. The agent keeps working across turns
239until it judges the goal met. The thread shows **Goal** while it works, and a
240row above the composer shows the goal and its progress.
241
242- `/goal` alone shows the current goal. `/goal clear` removes it.
243- Codex also supports `/goal pause` and `/goal resume`. Stopping a Codex goal
244 pauses it.
245- Stopping Claude ends the current turn, but the goal stays set. Claude checks it
246 again at the end of your next message.
247
248## Context in your message
249
250Context you attach lands where your cursor is, as a chip inside your text: a terminal excerpt,
251a review comment from a diff or file, a preview annotation, or a file. You can type before and
252after a chip, move it by cutting and pasting, and delete it like a character. Hover a chip for
253its brief details. Select a terminal excerpt to open its captured output, or select a review
254comment, picked element, or preview annotation to open its full details. Chips read as "Terminal
255excerpt, Terminal 1 lines 3-4" and similar to screen readers.
256
257A pull request appears as its icon and number. Its color reflects whether it was open, draft,
258merged, or closed when it was attached. Select it to inspect the captured title and branches,
259then choose **Open pull request** to visit the pull request. On web and desktop, type `#` to browse the newest
260pull requests in the current project's repository. Pull requests linked to the thread are included
261from any repository and listed first, after any exact number match. Continue typing digits to filter the recent list
262by any part of its pull request numbers. A complete number is also resolved directly, even when that
263pull request is older than the recent list. Type a single word after `#` to search pull requests in
264the repository by text. Choose a result to insert it as a chip.
265
266Another thread can be context too. Type `@` followed by part of its title to pick one from
267the same server, or on web and desktop drag a thread out of the sidebar and drop it on the
268composer; a multi-selection drops together. The chip shows the thread's current title and
269opens it when selected. Your prompt only carries a reference: the agent reads the thread's
270history on demand, so attaching a long thread costs nothing until the agent looks. Attaching a
271thread does not change it, and the agent cannot send messages to it unless you ask.
272
273Dropping a thread from another environment attaches a saved transcript file. The source
274environment must be connected and up to date. The transcript includes the visible history and
275saved text context at the time of the drop; later messages and the contents of attached files
276are not copied. The agent can read the saved transcript after the source disconnects. Normal
277file attachment limits apply.
278
279Images keep their thumbnail shelf above the text and also get a chip at your cursor, so you can
280say exactly which image you mean. Deleting an image chip leaves the image on the shelf; removing
281the thumbnail asks first when the image is still mentioned in your text, then removes both. Files
282exist only as chips: deleting a file's last chip removes the file from the message.
283
284Copy text that holds chips and paste it into another draft, in the same thread or another one,
285and the chips come along with what they point to. Images and files are fetched again from the
286environment they came from; while that happens the chip shows a dashed outline, and if it cannot
287complete T3 Code tells you and leaves the chip for you to remove or replace. A chip whose
288context is no longer available shows the same dashed outline; hover it for what to do.
289
290Copying a message with the copy button, or copying text out of it, gives other apps readable
291Markdown with a link in place of each chip. Older messages that were sent before chips still
292show their context. Stashing a prompt keeps its chips and what they point to; restoring brings
293them back.
294
295On mobile, tap a chip to inspect its content. File references open the current file; attached
296files show the copy that was attached to the message.
297
298## Attached files
299
300Select a file chip in your draft or a sent message to preview it. Code and JSON use syntax
301highlighting; Markdown, HTML, CSV, and TSV offer rendered and raw views. Audio files have
302playback controls. Large text files show a limited preview; save the file to read it in full.
303
304On web and desktop, files open beside the conversation with the same controls as a workspace
305file: a header row with the view toggle, **Copy contents** and **Save file**. On mobile, documents
306open in the same file screen as workspace files; its menu holds **Copy contents**, **Save or
307share** and **Open in file viewer**. Pictures, videos and PDFs keep their native viewers, and
308other document formats such as Word or Pages open in the device's own viewer when it has one.
309If nothing on the device can show a format, save or share it to open it elsewhere.
310
311## Images and videos in messages
312
313Select an image or video attachment or link to preview it. Playback support depends
314on your browser or device; save an unsupported video to open it in another app.
315
316On web and desktop, right-click media to save it or copy its path or URL. On mobile,
317touch and hold an image or video thumbnail and choose **Save or share**. On iOS,
318return to the thumbnail to open this menu after watching a full-screen video.
319
320File links refer to the environment's machine, including when you connect remotely.
321Previews use the original file, even outside the workspace. Moving or deleting it
322can break the preview, so save a copy if you need to keep it.
323
324## Workspace files
325
326On web and desktop, Markdown files open in an editable preview. Select text to reveal
327its Markdown syntax; changes save automatically. Use the source toggle to edit raw
328Markdown. Control-click or Command-click a link to open it, or place the caret in the
329link and press Control+Enter or Command+Enter. Open files and folders update when
330files change on the environment's machine, including over a remote connection.
331
332## Files outside the workspace
333
334Follow an agent's file link to read a report or other file outside the workspace.
335These files open read-only. An HTML file outside the workspace cannot load scripts,
336styles, or images from neighboring files.
337
338## HTML and PDF files in the file viewer
339
340On web and desktop, HTML and PDF files open as rendered pages. Switch an HTML
341file to source view to read its markup; a link to a specific line opens source
342automatically. HTML previews cannot access your T3 Code session.
343
344The file viewer recognizes images, HTML, and PDF files by their filename extension,
345including filenames or folders containing `#` or `?`.
346
347On mobile, select a PDF attachment or link to open it. iOS uses the native viewer;
348Android opens a compatible installed file viewer.