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
PDF 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

Was this helpful?