Get started with Quilt

Three ways to start. Pick the one that matches your environment. All three share the same sheet format and the same cell model.

๐Ÿ“œ

Quilt Live

One HTML file. Browser-native. Zero install.
70 KB ยท no build ยท works offline
Open Live โ†’
๐Ÿ“ฆ

TypeScript

The canonical runtime. npm install, run, ship.
Node 18+ ยท 98 tests ยท MIT
npm install โ†’
๐Ÿฆ€

Rust

Single binary. No runtime. Cross-compile to anything.
3 MB stripped ยท 0 deps ยท static binary
cargo add โ†’

Path 1: Quilt Live (the easiest)

If you can open a browser, you can use Quilt. No install, no build, no account. Just open the file.

Open quilt-live.html

Click the button below. Your browser will load the file from GitHub Pages. No internet is required after that โ€” the file is self-contained.

https://superinstance.github.io/quilt/landing/quilt-live.html

Click "Add cell" and explore

The UI has a list of cells on the left, a detail editor on the right, and a few starter sheets. Pick one from the sidebar to see how a working sheet looks.

Edit a value, watch formulas recompute

Change any value cell. Every formula that depends on it updates. That's the whole reactive system. There's nothing more to it.

Save your work

Click "Save" to store your state in a cookie. Click "Download" to bake the state into a new HTML file you can email, commit, or share. The downloaded file is self-contained โ€” anyone can open it, no server needed.

๐Ÿ“š Going further

Quilt Live has 54 starter examples covering productivity, finance, fitness, music, photography, education, gaming, and more. Browse them with the Examples panel.

Path 2: TypeScript (the canonical)

The full-featured runtime. Use this when you want to build real applications with Quilt, run an MCP server, or extend the engine.

Install the package

Requires Node.js 18 or later. Quilt is a regular npm package.

npm install @quilt/core @quilt/cli

Create a sheet

A sheet is a YAML file. The cell model is the same as Quilt Live.

# hello.yaml
id: hello
title: "Hello, world"
version: 0.1.0
cells:
  - id: greeting
    kind: value
    value: "Hello, world!"
  - id: shout
    kind: formula
    expr: "greeting.toUpperCase()"

Run it

The CLI evaluates the sheet and prints the result.

npx quilt run hello.yaml

# Output:
# โœ“ greeting = "Hello, world!"
# โœ“ shout    = "HELLO, WORLD!"

Or use the library

Import the engine into your own TypeScript app.

import { QuiltEngine, parseSheet } from '@quilt/core';

const engine = new QuiltEngine();
const sheet = parseSheet(yamlText);
engine.load(sheet);

console.log(await engine.get('shout'));
// โ†’ { data: "HELLO, WORLD!", status: 'ready' }

Run an MCP server

Every named cell in your sheet becomes an MCP tool. Claude Code, Cursor, and other MCP clients can use them.

npx quilt mcp hello.yaml
# Server running on stdio. Every cell is a tool.

๐Ÿ“š Going further

See the documentation for the full API, the tutorial for a 5-minute walkthrough, or the patterns cookbook for 20 reusable idioms.

Path 3: Rust (for production deployment)

The Rust port compiles to a single static binary. Drop it on a server, an edge device, a Raspberry Pi, a bare-metal target โ€” anywhere there's a CPU.

Add the dependency

Quilt is a regular Cargo crate.

[dependencies]
quilt = "0.2"
tokio = { version = "1", features = ["full"] }

Load a sheet

The same YAML format. The same cell model.

use quilt::{QuiltEngine, parse_sheet};

let yaml = std::fs::read_to_string("hello.yaml")?;
let sheet = parse_sheet(&yaml)?;
let engine = QuiltEngine::new();
engine.load(sheet)?;

Get a cell value

Same async API as TypeScript.

let result = engine.get("shout").await?;
println!("shout = {:?}", result.data);

Or compile a single binary

The quilt CLI works as a standalone binary. ~3 MB stripped, no runtime, no Node.js.

cargo install quilt-cli
quilt run hello.yaml

# Or cross-compile:
cargo build --target x86_64-unknown-linux-musl --release
cargo build --target aarch64-unknown-linux-musl --release  # ARM
cargo build --target x86_64-pc-windows-gnu --release      # Windows

๐Ÿ“š Going further

The Rust port also has quilt-tui (crossterm-based terminal UI) and quilt-web (axum + Server-Sent Events for a live web UI). See the README for details.

Next steps

Now that you have Quilt running, here are good places to go next.