What you can generate
The format catalog: PDFs, spreadsheets, HTML, charts, diagrams, math, ZIPs, plus auto-registered text outputs in a dozen formats.
A chat can produce a wide range of file formats, far beyond text. You don't have to memorize the catalog; just ask for what you want.
Composed artifacts
The model invokes a compose tool when the answer should be a structured file. The available formats:
| Format | Use for |
|---|---|
| Formatted reports, share-ready documents. Page size (A3 / A4 / A5 / Letter / Legal / Tabloid / Executive), orientation, margins, headers/footers all configurable. | |
| XLSX | Multi-sheet Excel spreadsheets. Used for Data Extractor output, comparison tables, structured data with formulas. |
| HTML | Self-contained HTML documents: no external resources, assets inlined as data URIs. Email-safe and convertible to PDF / DOCX / RTF. |
| Chart (SVG) | Interactive charts from a Vega-Lite spec. Bar, line, scatter, heatmap, layered, faceted: most data viz patterns. |
| Diagram (SVG) | Flowcharts, sequence diagrams, ER diagrams, mind maps, etc. from Mermaid source or Graphviz DOT. |
| Math (SVG) | Mathematical expressions rendered from LaTeX. |
| ZIP | A bundle of multiple artifacts in one archive. |
Auto-registered text outputs
Beyond composed artifacts (PDFs, spreadsheets, charts), structured text outputs are auto-registered as artifacts when they show up in an answer. Depending on the format and length, an artifact may also render an inline preview in the chat, not only a download chip. Supported text formats:
| Format | Typical content |
|---|---|
| md | Markdown reports, structured prose |
| json | Structured data, API payloads |
| csv / tsv | Tabular data without spreadsheet formatting |
| html | Snippets, fragments |
| xml | Structured markup, sitemaps, configs |
| yaml | Configs, frontmatter, metadata |
| svg | Vector graphics, custom diagrams |
| txt | Plain text reports |
Auto-registration is automatic; no extra step. The model decides when a fenced output deserves to be a file (it usually involves things like report shapes, datasets, configurations).
How to ask
The model usually picks the right format on its own when you describe the output shape:
- "Make a one-page PDF report I can share with my team." →
compose_pdf. - "Put the comparison in a spreadsheet with one row per contract." →
compose_xlsx. - "Show this as a bar chart by region." →
compose_chart(Vega-Lite). - "Draw a sequence diagram of the auth flow." →
compose_diagram(Mermaid). - "Give me the result as JSON." → fenced JSON block, auto-registered.
If you want a specific format, just ask: "as a PDF, A4 landscape, with a cover page" will steer the compose call accordingly.
Convert between formats
Already-produced outputs can be converted to a different format mid-session:
- HTML / Markdown ↔ PDF / DOCX / RTF / HTML (via Pandoc).
- DOCX / XLSX / PPTX / ODP / ODS ↔ PDF / HTML / DOCX / XLSX / RTF (via LibreOffice).
- EPUB / MOBI → PDF (via Calibre).
Just ask: "convert the spreadsheet to PDF". See Reuse outputs across turns.
What's next
- How downloads work: the basics of chat-produced artifacts.
- Reuse outputs across turns: chaining and converting.
- Save and export your work: getting the file out of the session.