q2 v0.22.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.22.0-linux_amd64.tar.gz |
| Linux ARM64 (static, any distro) | q2-0.22.0-linux_arm64.tar.gz |
| macOS Intel | q2-0.22.0-darwin_amd64.tar.gz |
| macOS Apple Silicon | q2-0.22.0-darwin_arm64.tar.gz |
| Windows x86_64 | q2-0.22.0-windows_amd64.zip |
Verify a manual download (Unix archives are signed with minisign, Ed25519):
minisign -Vm q2-0.22.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.22.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 #536 from quarto-dev/release/v0.22.0 (f8df952)
- Bump workspace version to 0.22.0 (6a2d7e5)
- Merge pull request #535 from quarto-dev/bugfix/bd-6m1iyxl6-llms-title-flattening (e4d6c6a)
- Merge pull request #534 from quarto-dev/feature/bd-e2kpwy7n-toc-location (10d8682)
- llms companions: synthesize clean item lists for listing pages (bd-5w81o2dh) (0ff7d79)
- llms.txt header: use resolved site title/description (bd-6m1iyxl6) (b7bfeef)
- Merge remote-tracking branch 'origin/main' into braid/bd-e2kpwy7n-toc-location (5c9471d)
- Merge pull request #533 from quarto-dev/bugfix/bd-website-toc-title-wn80ymab (62b6c9f)
- Plan wrap-up: full verify passed, phases complete (bd-e2kpwy7n) (345c484)
- Implement toc-location option: left/right/body (bd-e2kpwy7n) (531118c)
- Merge pull request #532 from quarto-dev/feature/bd-llms-txt-unimplemented-oih6z6j7 (d8d2382)
- bd-website-toc-title-wn80ymab: plan wrap-up, all phases complete (78cac3a)
- docs: document the context-keyed table-of-contents title (f3c458e)
- bd-website-toc-title-wn80ymab Phase 1: select the TOC title term by context (4e3eb0e)
- bd-website-toc-title-wn80ymab Phase 0: failing tests for context-keyed TOC title (ca27ce4)
- bd-website-toc-title-wn80ymab: record settled design decisions (17bc0d3)
- Investigate bd-website-toc-title-wn80ymab: website TOC title key selection (a5b1a56)
- Merge pull request #531 from quarto-dev/bugfix/bd-add-html-dependency-version-5tnub5ds (d29f594)
- bd-e2kpwy7n: record design decisions, firm up phases (0fcbe93)
- docs site: enable llms-txt (dogfood) (8c273d3)
- Investigate bd-e2kpwy7n: toc-location option (left/right/body) plan skeleton (f9aabcc)
- Docs + plan: llms-txt user guide page; record E2E verification (e334d9f)
- Implement website.llms-txt: llms.txt index, per-page .md companions, llms-full.txt (bd-llms-txt-unimplemented-oih6z6j7) (2c14461)
- Merge pull request #530 from quarto-dev/bugfix/bd-nn2fou8h-execute-visibility (def0c07)
- add_html_dependency: implement version, warn once per dependency (ff3fc98)
- bd-add-html-dependency-version-5tnub5ds: settle design, cross-reference freeze (2017d03)
- bd-add-html-dependency-version-5tnub5ds: record design decisions (ea52d47)
- Investigate bd-add-html-dependency-version-5tnub5ds: add_html_dependency version + Q-11-1 per-call warning (ed46f32)
- Merge pull request #529 from quarto-dev/feature/bd-breadcrumbs-href-miss (094c0a8)
- llms-txt plan: resolve remaining design questions; full work-item checklist (be4f167)
- llms-txt plan: resolve companion naming (.md, gated on output-ledger collision safety) (020e97a)
- llms-txt plan: resolve design question 1 (sidebar-driven set-subtraction index) (f89a343)
- Investigate bd-llms-txt-unimplemented-oih6z6j7: plan skeleton for website.llms-txt support (39fec01)
- Honor execute-visibility options in both engines (bd-nn2fou8h) (31d25d9)
- Plan wrap-up: all phases complete, final commit hashes recorded (016aba3)
- Website breadcrumbs: title-block trail from the sidebar structure (e86f868)
- Relativize non-.qmd index misses in nav and body href resolvers (5a573d2)
- Investigate bd-tef2lm9j + bd-root-absolute-dir-link + breadcrumbs: plan skeleton (c30a38d)
- Merge pull request #464 from quarto-dev/feature/preview-live-share (8659f55)
- hub-client: changelog entry for 9b60bbe (in-memory quarto-cache) (17194c6)
- preview: keep quarto-cache in memory for ephemeral sessions (bd-91mdd056) (9b60bbe)
- hub-client: changelog entry for f2db6bc (ephemeral storage mode) (9c5cba7)
- hub-client: ephemeral storage mode for the q2 preview embed build (bd-sw4xy1vw) (f2db6bc)
- preview: unify the gzip skip set into scripts/gzip-skip-extensions.txt (5901793)
- Embed preview SPA bundles as tar.zst archives (bd-rem4bpee) (197bcf6)
- docs: record e2e verification + follow-ups for VFS write-back (bd-1kuiw7sx) (cbc68c8)
- hub: write VFS-created files to disk under --allow-edit (bd-1kuiw7sx) (72ef5c8)
- ci: install binaryen (wasm-opt) in the hub-client e2e, ts-test, and release workflows (8024198)
- preview: Phase 4 e2e + keep-alive routing fix for live-share join (bd-2mpka14m, epic bd-puc7xt6e) (3e6fc08)
- preview: L7 join frontend for live-share local asset serving (Phase 3, bd-tl2j8js8) (d474081)
- preview: SPA asset manifest + config handshake for live-share join (Phase 2, bd-ee2fqm95) (f366cb5)
- feat(preview): Phase 1 payload reduction for live-share join (bd-ee0qcq3c) (1eeaae5)
- test(preview): Phase 0 baseline + red skeletons for join-payload epic (bd-lbvtfejg) (2961e8a)
- fix(preview): print the Ctrl-C shutdown line on the hub's signal task (bd-wj9smyxg) (c86f92e)
- feat(preview): print a Ctrl-C shutdown line on the host side (5b2ba5c)
- test(quarto-p2p): poll the fixed-port host respawn in the redial test (7ab17d3)
- docs(hub-client): changelog entries for preview live-share UI (2322297)
- fix(preview): retry ephemeral-banner config fetch once; extract banner component (2ce0371)
- test(preview): deflake tunnel tests under CI load (d7b3d0f)
- fix(preview): --join help text notes --browser also composes (70640c1)
- refactor(preview): live-share review follow-ups — startup overlap, file pick, dedupe (2453754)
- feat(preview): ephemeral-session banner in editor when --allow-edit is off (5afa449)
- feat(preview): --browser opens the preview in a specific browser (f9eb30a)
- fix(quarto-hub): stop ReadOnly periodic sync clobbering live doc edits (d1a4644)
- fix(preview): boot --join guests to the editor share route (bd-7htq16rx) (862ed63)
- feat(preview): skip project-set setup on ephemeral editor boots (bd-zf4ryvuq) (55d7a5f)
- feat(preview): Phase 4 — q2 preview --ui editor (bd-jt1etjbn) (282a557)
- docs(plan): Phase 3 cross-machine e2e record — GH-Actions guest over the real n0 relay (bd-6y0p1bne) (aa5ecc4)
- feat(preview): Phase 3 — q2 preview --join guest (bd-6y0p1bne) (c053f98)
- feat(preview): Phase 2 — q2 preview --share host (bd-jhvkwosw) (e3c222c)
- feat(quarto-p2p): Phase 1 core — ticket, TunnelHost, TunnelClient (bd-v8mwzpmi) (f18cef8)
- test(quarto-p2p): Phase 1 test suite, failing by design (bd-v8mwzpmi) (765372e)
- plan: Phase 0 checks complete; user accepted gate Windows coverage (bd-9gam4jqe) (bf07cdb)
- feat(quarto-p2p): Phase 0 scaffold for preview live share over iroh (bd-9gam4jqe) (811f11c)
- Merge pull request #527 from quarto-dev/bugfix/bd-heading-id-drops-inline-content-fl84n3ql (3ac596e)
- Heading ids: drop leading non-letters, as Pandoc does (bd-sdalit9y) (6af9713)
- Heading ids: collect text from every inline kind (bd-heading-id-drops-inline-content-fl84n3ql) (8a868f6)
- Investigate bd-heading-id-drops-inline-content-fl84n3ql: heading-id collector drops most inline kinds (fe7e441)