q2 v0.23.0
Experimental. q2 is under active development and not ready for production use.
Install
curl -fsSL https://raw.githubusercontent.com/quarto-dev/q2/main/install.sh | bashOn Windows (PowerShell):
irm https://raw.githubusercontent.com/quarto-dev/q2/main/install.ps1 | iexq2 mcp (the Quarto Hub MCP server) needs Node.js 24+ at runtime;
everything else works standalone. Hub connection defaults for quarto-hub.com are built in.
The Linux binaries are statically linked (musl): one build per architecture, no glibc
requirement, works on Alpine and old distros alike. If you specifically need a
dynamically-linked build, install.sh --from-source builds one.
| Platform | File |
|---|---|
| Linux x86_64 (static, any distro) | q2-0.23.0-linux_amd64.tar.gz |
| Linux ARM64 (static, any distro) | q2-0.23.0-linux_arm64.tar.gz |
| macOS Intel | q2-0.23.0-darwin_amd64.tar.gz |
| macOS Apple Silicon | q2-0.23.0-darwin_arm64.tar.gz |
| Windows x86_64 | q2-0.23.0-windows_amd64.zip |
Verify a manual download (Unix archives are signed with minisign, Ed25519):
minisign -Vm q2-0.23.0-<platform>.tar.gz -P RWR2A9ILpZX1kVF3Q6uk5TRus8FDM25H2F+KKKHEuqlxv+JJSLyPalvNThe trusted comment should name exactly the file you downloaded.
Checksums (all platforms): sha256sum -c checksums.sha256 --ignore-missing
Standalone Quarto Hub MCP server
q2 mcp is also published on its own as a self-contained Node bundle for
running the MCP server without installing q2 — e.g. embedding it in
another tool. Requires Node.js 24+. Download
quarto-hub-mcp-0.23.0.tar.gz, extract, and run node index.mjs --help.
Unlike q2 mcp, this bundle does not embed quarto-hub.com credentials — see
the bundled README.md for the OAuth env vars to set.
(Experimental, temporary channel — npx distribution is planned.)
Changes
- Merge pull request #542 from quarto-dev/release/v0.23.0 (6d6412c)
- Bump workspace version to 0.23.0 (25031cf)
- Merge pull request #541 from quarto-dev/feature/bd-toc-tabset-titles-zq93gjvf-panel-tabset-support (0647dd9)
- Implement panel-tabset support (bd-toc-tabset-titles-zq93gjvf) (c6ec80a)
- Merge pull request #540 from quarto-dev/bugfix/bd-escaped-executable-fence-uuvv37pk (adaa27e)
- Merge pull request #539 from quarto-dev/feature/bd-llms-link-target-annotation-0zo2ppgx-llms-txt-no-way (0876e41)
- Tabset plan: record design decisions, flesh out phases (bd-toc-tabset-titles-zq93gjvf) (a29b22c)
- Add Q-2-50: doubled curly braces (Quarto 1 display escape) get real diagnostics (297f5cc)
- Investigate bd-toc-tabset-titles-zq93gjvf: plan skeleton for panel-tabset support (3976bfd)
- link-format plan: record full-verify green (bd-llms-link-target-annotation-0zo2ppgx) (dbf3132)
- Design decisions for bd-escaped-executable-fence-uuvv37pk: no {{...}} escape, Q-2-50 both contexts, no helper rule (9401fc4)
- link-format attribute: author control over llms companion link targets (bd-llms-link-target-annotation-0zo2ppgx) (d33e82c)
- Investigate bd-escaped-executable-fence-uuvv37pk: plan skeleton for Q1 doubled-brace escape (2760390)
- Merge pull request #538 from quarto-dev/bugfix/bd-format-css-not-copied-crn3bjdz (60cc579)
- llms link-target annotation: record design alignment (bd-llms-link-target-annotation-0zo2ppgx) (2a4341f)
- Investigate bd-llms-link-target-annotation-0zo2ppgx: llms link-target annotation plan skeleton (c5c110b)
- Merge remote-tracking branch 'origin/main' into bugfix/bd-format-css-not-copied-crn3bjdz (3f99067)
- Merge pull request #537 from quarto-dev/feature/light-dark-theme (cf3318c)
- Plan wrap-up: all phases complete (bd-format-css-not-copied-crn3bjdz) (420e61f)
- Gate Q-5-29 emission to native renders (bd-format-css-not-copied-crn3bjdz) (86a6f79)
- Implement format.html.css copy + per-page rebase (bd-format-css-not-copied-crn3bjdz) (3775816)
- light-dark: record phase D deferral + design options in the plan (dd2486d)
- light-dark E: cleanup + user-facing docs (bd-ld-e-cleanup-qxidnkng) (c160ec8)
- light-dark C: brand light/dark seam (bd-ld-c-brand-seam-wef8ww3n) (ef774d9)
- light-dark B: highlight-style reader + a11y palettes (bd-ld-b-highlight-style-jnb036fz) (f3537c9)
- bd-format-css-not-copied-crn3bjdz: design settled (F1-F4), follow-ups filed (e0316c6)
- bd-format-css-not-copied-crn3bjdz: evidence passes + refined plan (5da9fce)
- light-dark A5: large-project end-to-end verification (bd-ld-a5-quarto-web-e2e-bzg4o5lc) (2b1235c)
- light-dark A4: color-mode toggle runtime (bd-ld-a4-toggle-runtime-0t9i2rvs) (3d3872c)
- Investigate bd-format-css-not-copied-crn3bjdz: format.html.css neither copied nor rebased (f4684d4)
- light-dark A3: attributed stylesheet links + color-scheme meta (bd-ld-a3-link-emission-ruw9kw4v) (96251a2)
- light-dark A2: compile both theme variants + color-scheme emission (bd-ld-a2-dual-compile-ds10l5wa) (85bc570)
- light-dark A1: ThemeConfig grows a parsed dark variant (bd-ld-a1-data-model-a12bhj1g) (b3bf221)
- light-dark epic: design doc (bd-0pic6) (b4558ae)