Built-in Skills Document Rendering Quarto

OpenClaw QMD Skill: The Document Rendering Secret Builders Love

Most people miss the QMD skill entirely — it's buried in the built-ins list between two flashier options. That's a mistake. For anyone doing data analysis, automated reporting, or technical documentation, it's the most underrated capability in the entire OpenClaw skill library.

RN
R. Nakamura
Technical Documentation & Automation
Jan 27, 2025 14 min read 4.9k views
Updated Jan 2025
Key Takeaways
The QMD skill gives OpenClaw agents the ability to create, modify, and render Quarto documents — turning raw data and analysis into polished HTML, PDF, or Word output.
Quarto CLI must be installed on the host system before the skill works. The skill itself does not bundle Quarto.
Agents can write .qmd files from scratch, populate them with data analysis code, and trigger rendering — enabling fully automated reporting workflows.
Best for: weekly data digests, parameterized reports, documentation automation, and research output formatting.
The skill captures render errors and surfaces them to the agent for self-correction — making it viable for agentic multi-step report generation.

Data analysis is only half the work. The other half is getting that analysis into a format someone can actually read. The QMD skill closes that gap by giving your OpenClaw agent direct access to Quarto — the document system that replaced R Markdown as the standard for reproducible technical documents.

What Quarto Is — and Why It Matters Here

Quarto is an open-source scientific and technical publishing system built by Posit (formerly RStudio). It's the successor to R Markdown, but unlike its predecessor, Quarto works natively with Python, Julia, and Observable JavaScript — not just R.

A .qmd file is a plain-text document that mixes three things: YAML metadata (title, author, output format), narrative prose in Markdown, and executable code chunks. When Quarto renders the document, it runs every code chunk, captures the output — tables, charts, computed values — and weaves everything into a finished document.

The result is reproducible. Every time the document renders, it re-executes the code against live data. That's exactly what you want for automated reports: the same document template, fresh data, new output every time.

💡
Quarto vs R Markdown
If you've used R Markdown before, Quarto will feel immediately familiar. The main difference: Quarto uses a unified CLI rather than an R package, supports multiple languages natively, and has better output format support. Your existing .Rmd files can often be renamed to .qmd and rendered without changes.

What the QMD Skill Actually Does

The QMD skill gives your OpenClaw agent four capabilities:

  • Read .qmd files — parse document structure, extract metadata and code chunks
  • Write .qmd files — create new documents or modify existing ones programmatically
  • Render documents — trigger Quarto CLI to produce HTML, PDF, or DOCX output
  • Capture and report errors — surface render failures back to the agent for correction

That error-capture capability is what makes the skill genuinely useful for agentic workflows. Without it, a failed render would silently stall your agent. With it, the agent gets the full error output, can diagnose what went wrong — a missing package, a syntax error in a code chunk — and attempt a fix before re-rendering.

Installation

openclaw plugins install qmd

After install, verify it's active:

openclaw plugins list | grep qmd
# qmd  v1.1.0  built-in  enabled

If the skill shows as enabled but render commands fail immediately, Quarto is not installed or not on PATH. That's the most common first-run failure. We'll handle that next.

The Quarto Prerequisite

The QMD skill is a wrapper around the Quarto CLI. Quarto must be installed separately on the host machine.

# Install Quarto CLI (macOS with Homebrew)
brew install --cask quarto

# Verify installation
quarto --version
# 1.4.557

For Windows, download the installer from quarto.org. For Linux, use the .deb or .rpm package. After install, confirm Quarto is on your PATH — OpenClaw calls quarto render as a subprocess, so it needs to find the binary.

If your documents use Python code chunks, ensure the Python packages your documents import are installed in the environment OpenClaw runs in. If you use R code chunks, R must be installed and the relevant packages available. The skill doesn't manage dependencies — that's on you.

⚠️
PDF Output Requires LaTeX
PDF rendering requires a LaTeX distribution. The easiest path: run quarto install tinytex after installing Quarto. TinyTeX is a lightweight LaTeX distribution that Quarto manages automatically. Without it, PDF renders will fail with a "LaTeX not found" error.

Configuration

After installation, the QMD skill creates a skill.md config in your agent's skills directory:

# skill.md — QMD skill configuration

skill: qmd
version: "1.1"

config:
  default_output_format: html       # html | pdf | docx
  output_directory: "./reports"     # where rendered files go
  execute_timeout_seconds: 120      # max time for code execution
  freeze_executed_chunks: false     # set true to skip re-execution
  quarto_binary: "quarto"           # override if not on PATH

The output_directory setting matters for agents that generate reports on a schedule — point it somewhere your file manager or notification system watches. The execute_timeout_seconds is critical for documents with heavy computation; increase it for data-intensive reports or you'll get timeout errors mid-render.

Use Cases That Work Well

Automated Weekly Data Digests

The most common QMD skill application. An agent pulls data from a database or API, creates a parameterized Quarto template, populates it with this week's numbers, and renders to HTML. The output lands in a shared folder or gets sent via the AgentMail skill. No manual effort — the report just appears every Monday morning.

Here's the pattern for a parameterized report in Quarto:

---
title: "Weekly Performance Report"
params:
  week_start: "2025-01-20"
  team: "engineering"
format: html
---

```{python}
import pandas as pd
week = params['week_start']
df = pd.read_csv(f"data/{week}_metrics.csv")
df.describe()
```

The agent swaps the params each week — same template, fresh data, consistent output format every time.

Data Analysis Output Formatting

Analysts use the QMD skill to turn exploratory analysis into shareable documents without leaving the agent interface. They run the analysis, the agent formats results into a Quarto document with proper section headers, interpretation prose, and code appendix, then renders to PDF for distribution. What used to take 30 minutes of manual formatting takes under two minutes.

Research Documentation Automation

Research agents combine the Web Search skill for information gathering with the QMD skill for output formatting. The agent searches, synthesizes, and writes a structured Quarto document that renders into a properly formatted research brief — with citations, tables, and sections automatically arranged.

Limitations Worth Knowing

The QMD skill doesn't manage Python or R package dependencies. If a code chunk imports a library that isn't installed, the render fails. You need to manage the environment separately — either ensure packages are pre-installed or use a virtual environment that OpenClaw activates before rendering.

Rendering speed depends entirely on what the code chunks do. A simple markdown-heavy document renders in under a second. A document with heavy pandas operations, ML model inference, or large data transformations can take minutes. The default 120-second timeout catches most cases, but increase it for compute-heavy templates.

Interactive Quarto features — Observable JS plots, Shiny widgets, HTML widgets — render to static output when the skill triggers quarto render. Full interactivity requires serving the rendered HTML from a web server, not just opening the file.

Common Mistakes

The number one mistake is assuming Quarto is already installed. It's not bundled with OpenClaw, not installed by the skill, and doesn't come with macOS or most Linux distributions. Check with quarto --version before anything else.

Second: forgetting to set output_directory to somewhere persistent. By default, rendered files go into a temp directory that gets cleaned up. Your reports disappear. Set an explicit output path.

Third: not setting execution timeouts for data-heavy documents. The default 120 seconds sounds generous, but a document that queries a slow database, processes large CSVs, and generates a dozen plots can easily exceed it. Set the timeout based on your worst-case render time, not average.

Frequently Asked Questions

What is a QMD file?

A QMD file is a Quarto Markdown document — a plain-text format that mixes narrative prose, code chunks (R, Python, Julia, or Observable), and YAML metadata. Quarto renders QMD files into HTML, PDF, Word, or presentation slides by executing the embedded code and weaving results into the output.

Do I need R installed to use the QMD skill?

Not necessarily. Quarto supports Python and Julia as primary engines, so you only need R if your documents use R code chunks. Python-based documents work with a standard Python install and the required packages. You do need Quarto CLI installed regardless of your code language.

What output formats does the QMD skill support?

The QMD skill supports HTML (default), PDF (requires LaTeX or Typst), and DOCX output formats. HTML renders fastest and requires no additional dependencies. PDF output requires a LaTeX distribution like TinyTeX, which Quarto can install automatically via quarto install tinytex.

Can agents write and render QMD files autonomously?

Yes. Agents with QMD skill access can create new .qmd files from scratch, populate them with data analysis code and narrative, then trigger rendering — all in a single multi-step workflow. This is the core pattern for automated reporting agents.

What happens if a code chunk fails during rendering?

Quarto halts rendering at the first failed code chunk by default. The QMD skill captures the error output and surfaces it to the agent, which can then attempt to fix the code and re-render. Set error: true in chunk options to allow rendering to continue past errors.

Is the QMD skill suitable for production report generation?

It works for structured, predictable reporting workloads — weekly summaries, data digests, fixed-format analysis outputs. For high-volume or highly dynamic production systems, evaluate whether a dedicated pipeline tool better fits your latency and reliability requirements.

You now understand what the QMD skill does, what it requires to work, and where it fits in automated reporting and documentation workflows. Install Quarto, install the skill, and render your first document. The gap between raw analysis and shareable output closes permanently.

RN
R. Nakamura
Technical Documentation & Automation

R. Nakamura builds automated reporting systems for research and analytics teams. With a background in computational biology and five years working with R Markdown and Quarto pipelines, he focuses on making data outputs accessible without manual formatting work.

More Skill Guides Weekly

New OpenClaw skill breakdowns, config tips, and agent workflows every week.