Experimental - This project is under active development. It's not yet ready for production use.
This repository is a Rust implementation of the next version of Quarto. The goal is to replace parts of the TypeScript/Deno runtime with a unified Rust implementation.
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 | iexNightly builds — main as of last night, for trying what is not released yet:
curl -fsSL https://raw.githubusercontent.com/quarto-dev/q2/main/install.sh | bash -s -- --nightly& ([scriptblock]::Create((irm https://raw.githubusercontent.com/quarto-dev/q2/main/install.ps1))) -NightlyA nightly is built whenever main has changes no release has shipped,
reports a version like 0.33.0-nightly.20260919 (q2 --version), and
replaces the previous nightly: the nightly tag moves daily and only the
latest one is downloadable. Nightlies are signed with the same key as
releases.
The installer downloads the release archive for your platform, verifies
its SHA-256 checksum and its Ed25519 signature (minisign,
required — brew install minisign / apt install minisign), and
installs q2 to ~/.local/bin (override with --dest or
Q2_INSTALL_DIR). The signing public key, pinned in install.sh:
RWR2A9ILpZX1kVF3Q6uk5TRus8FDM25H2F+KKKHEuqlxv+JJSLyPalvN
To verify a manually downloaded archive:
minisign -Vm q2-<version>-<platform>.tar.gz -P RWR2A9ILpZX1kVF3Q6uk5TRus8FDM25H2F+KKKHEuqlxv+JJSLyPalvNThe trusted comment should name exactly the file you downloaded.
q2 mcp (the Quarto Hub MCP server) additionally needs
Node.js 24+ at runtime; release binaries come
with the MCP server and quarto-hub.com connection defaults built in, so
no further configuration is needed. Private hub operators can still
point elsewhere via the QUARTO_HUB_MCP_CLIENT_ID,
QUARTO_HUB_MCP_CLIENT_SECRET, and QUARTO_HUB_SERVER environment
variables, which always win over the built-in defaults.
To register it with an MCP client, add an entry that launches q2 mcp
(run q2 mcp --print-config to print this snippet):
{
"mcpServers": {
"quarto-hub": {
"command": "q2",
"args": ["mcp"]
}
}
}For a non-canonical hub, append the server flag:
"args": ["mcp", "--server", "wss://your-hub/ws"]. Run q2 mcp --help
for the full launcher + server option list, and q2 mcp --launcher-info
to diagnose the embedded bundle and Node.js discovery.
Requires Rust nightly (edition 2024).
# Installs nodejs dependencies for the vite/WASM dependencies
npm install
# Build all Rust crates and binaries and test; build hub-client and its TS test suite
cargo xtask verify
# Just build everything instead (use --release for optimized binaries)
cargo xtask build-all
# Run tests (uses nextest)
cargo nextest runWe welcome discussions about the project via GitHub issues.
This is experimental software. All API should be considered unstable and may completely change.
MIT - See LICENSE for details.