Reference
Images, media and interactive previews
An agent’s reply in Coincide is more than text. When it links an image, a clip or a small HTML tool it made, Coincide shows the real thing under the reply. Every agent can do this, because it’s plain Markdown; Coincide tells each agent how at the start of its turns.
Updated
Images, audio and video
Coincide shows media that a reply links with Markdown:

[Demo recording](/Users/me/project/out/demo.mp4)

- Images: PNG, JPEG, GIF, WebP, HEIC, AVIF, BMP and TIFF. Click one to open it.
- Video (MP4, M4V, MOV, WebM) and audio (MP3, M4A, WAV, AAC, AIFF, FLAC, OGG) get player controls. Nothing autoplays.
- Local files work best with absolute paths. A relative path is read from the thread’s working folder; chats without a project have their own folder, so absolute paths are the safe choice there.
- HTTP and HTTPS addresses work too. Coincide fetches web images without cookies, up to 8 MB.
When Codex generates an image with its own image tool, Coincide copies the result into the thread’s attachments and shows it, even if the reply forgets to link it. Coincide doesn’t give any agent an image or video generator it doesn’t already have.
Interactive previews
For a chart, a diagram or a small tool, an agent can write a fenced block in the coincide-html or coincide-svg language. Coincide renders it as a live preview under the reply:
```coincide-html
<canvas id="c" width="400" height="200"></canvas>
<script>
const ctx = document.getElementById('c').getContext('2d');
[40, 90, 60, 120].forEach((v, i) => ctx.fillRect(20 + i * 90, 200 - v, 60, v));
</script>
```
Linking a local .html, .htm or .svg file does the same. Ordinary html fences stay code samples, so agents can still show you HTML without running it.
The sandbox
Previews run in a sandboxed web view with a strict content policy:
- Inline JavaScript and CSS work; external scripts, stylesheets and fonts don’t.
- No network requests, forms, downloads, pop-ups or navigation away from the preview.
- No cookies, saved logins or storage that outlives the preview, and no bridge to Coincide or your Mac.
- Images, media and fonts must be embedded as
data:orblob:URLs.
So build previews from inline code and embedded data, such as SVG, canvas or a table built from a JSON array in the script.
Limits
| What | Limit |
|---|---|
| Previews per reply | 8 (images, media and interactive previews together) |
| A coincide-html or coincide-svg block, or a linked .html or .svg file | 256 KB |
| Inline data: images | 12 MB as text, 8 MB decoded |
| Web images | 8 MB |
| Local images | 64 MB |
Previews wait until a streamed response finishes, so a half-written block is never run. If something can’t be shown, the card says “Preview unavailable”. The Markdown stays in the reply, selectable and copyable, either way.
What Coincide tells agents
Coincide adds a short note to each turn explaining these rules: how to link images and media, to use absolute paths, the two fence languages and the sandbox. It also asks agents to show only files and results they really created, and to say so when a generation tool failed or isn’t available instead of claiming an image or video that doesn’t exist.