# Message composer Messages can contain up to 120,000 characters. If a draft is longer, T3 Code keeps it in the composer and shows how many characters need to be removed. Shorten the draft or split it into multiple messages, then send again in the same thread. On mobile, an empty composer shows an interrupt button while the agent is working. Adding text or an attachment replaces it with the send button. This applies to both compact and expanded composers. You can attach images up to 10 MB. On servers that support file uploads, you can also attach videos, text files, PDFs, ZIP archives, and other files. Each file can be up to the limit advertised by the server, capped at 50 MB. Each message can contain up to eight attachments in total. Files upload directly to the environment, where your agent can read, copy, or edit them by their file path. Attachments upload as soon as you add them while connected to a server that supports uploads. The send button becomes available after every upload finishes. Failed uploads can be retried or removed. On mobile, tap **+** to open the photo library from either the compact or expanded composer. When the connected server supports file uploads, **+** opens a menu beside the button with **Photo Library** and **Choose Files**. Videos use the server's file upload limit. You can also share photos, videos, and files into T3 Code from other apps through the system share sheet. Mobile keeps a local copy of each draft attachment, so you can still preview it and queue messages while offline. Uploads resume when you reconnect. Drafts and queued messages survive app restarts; signing out of T3 Connect keeps them on your device until you sign back into the same account. Select a received file on mobile to preview it or open the system share options. Tap an image or PDF before or after sending to open it. On iOS, images zoom from their thumbnail into the native viewer. Pinch or double-tap to zoom, and swipe down or tap Close to return. Use Share to save a copy or send it to another app. PDFs support page navigation and search. PDF links in assistant responses open the same preview. On Android, images open in the image viewer and PDFs open the system chooser. On web and desktop, select a sent PDF or HTML attachment to open it in the file viewer, or use the download button beside it to save a copy. Other attached files download when selected. Select a video attachment before or after sending to play it. Web and desktop use the browser's built-in controls. On mobile, videos open in a full-screen player with native playback controls. Supported videos show a thumbnail in the conversation and composer. Received videos stream from their environment as they play on every platform. Supported formats and codecs depend on the browser or device; you can save an unsupported video to open it in another app. On iOS, the system player zooms from the attachment. Swipe down or tap Close to return to the conversation or draft. Touch and hold a video thumbnail, then choose **Save or share** to open the system share options. On Android, the same menu is also available inside the preview. On web and desktop, if you reload before a file finishes uploading, the draft keeps the file's name and shows **Attach again** next to it. Attach the file again or remove it, then send. On web and desktop, HEIC and HEIF photos are automatically converted to JPEG when you drag them into the composer or paste them into a message. On iOS, selecting them from **Photo Library** also converts them to JPEG. The 10 MB image limit applies to the converted photo. On mobile, the model picker shows each OpenCode model's upstream provider, such as Anthropic, GitHub Copilot, or OpenCode Zen, beneath its name. Search by that provider name to narrow the list when starting a thread or changing an existing thread's model. ## Model defaults T3 Code remembers the last provider, model, and model options you selected and reuses that selection for new threads. A model configured in a project's settings overrides the remembered selection for that project; resetting the project setting returns it to the remembered selection. Model options shown as provider defaults remain display values until you choose them in T3 Code. T3 Code only sends options you selected explicitly, so an unset reasoning level or service tier can still come from the provider's own configuration. ## Quote an assistant response On web and desktop, select text in an assistant response, then choose **Cite in composer** from the menu that appears when you release the selection. This inserts an inline quote chip at your cursor and opens an optional comment bubble beside the selected text; press `Enter` or choose **Save** to attach the comment, or leave it blank to keep just the quote. You can type before and after the chip, such as a quote followed by "what do you mean?". A selection must stay within one response and fit in 8,000 characters. 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, and the remove button to delete the quote and its comment from the draft. Copying, reloading, and restoring a [stashed prompt](#prompt-stash) 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. Select a chip in the composer or a sent message to open the source thread, scroll to the response, and highlight the quoted passage — including in older history. The highlight pulses, holds for a moment, then fades on its own; press `Escape` to stop the navigation or clear it early. If the source is unavailable or its text has changed, the saved quote stays readable and T3 Code shows a warning. Mobile shows the full saved quote and its comment in sent messages. It does not offer **Cite in composer** or navigation to a quote's source. ## Images and videos in messages On web, desktop, and mobile, select a link to an image or video to open it inside T3 Code. Workspace image and video links open the file viewer. Links to media outside the workspace open a media preview. Videos opened from the file explorer or a file-viewer tab also play inside T3 Code. They stream from the environment as needed, rather than downloading the entire video before playback. Paths in inline code, such as `/tmp/recording.mp4`, work the same way. Image embeds stay inline; video embeds show a player with the browser's controls, full screen included. Visible video previews load an initial frame when supported, but stay paused until you press Play. Video file references use a filmstrip icon. On web and desktop, hover over a preview to see its full file path or original URL. Right-click to copy that reference, save the image or video, or copy an image to the clipboard. The video player's built-in controls can download a video too. If the player cannot decode a video, its error message offers a link to open the source in the browser. Workspace media also offers **Copy relative path** and **Open in file viewer**. These actions are available in expanded previews too. On mobile, touch and hold an inline image or a video thumbnail to see its source, copy the path or URL, or choose **Save or share**. Workspace files can open in the file viewer from the same menu. Saving downloads a copy only when you request it; it does not change how the video buffers during playback. On iOS, touch and hold a file reference in a message to copy its full or relative path or open it in the file viewer. Use Markdown image syntax to embed either kind of media: ```markdown ![Screenshot](/tmp/screenshot.png) ![Recording](/tmp/recording.mp4) [Open recording](/tmp/recording.mp4) ``` Relative paths resolve from the thread's workspace. Absolute paths and `file://` links refer to the environment's machine, even when you connect remotely or use your phone. Supported media can live outside the workspace, including in Downloads or `/tmp`. T3 Code serves the original file without adding it to attachment storage. If that file is moved or deleted, its preview can no longer load from the environment. A browser or device may still have a cached copy. Supported video formats and codecs depend on the browser or device. Bare paths in ordinary prose and paths inside code blocks stay text. Raw HTML `