guide

Getting started

What SheetMill is, how to build it and how to write, check and publish your first sheet.

SheetMill turns Markdown reference sheets with YAML frontmatter into a checked, structured representation and a fast, self-contained reference website. The command-line tool is smill. Nothing in a sheet is executed or fetched.

See what it produces in the demo library, built from the example sheets in the repository.

Install

Build from source

Release archives for linux amd64/arm64 and macOS arm64 (with SHA256SUMS, unsigned) are published on the releases page once the owner tags a version; until then, or for other platforms, build with Go 1.27.2:

git clone https://github.com/wstein/sheetmill
cd sheetmill
go build -o ./smill ./cmd/smill
./smill version

Optional tools

Building a website and the live preview need Hugo 0.167.0 (exact version). Checking and inspecting sheets need nothing else.

Your first sheet

Write it

Create sheets/editor.md:

---
title: Tiny Editor
category: editor
tags: [editor, keyboard]
---
## Editing {#editing}
### Select a line {#select-line}
| Key | Meaning |
| --- | --- |
| `x` | Select line |

## starts a section and ### starts a card. The source format lists every rule, including layout hints such as {.col-span-2}.

Check it

./smill check sheets
./smill inspect sheets/editor.md

check is silent when the sheet is valid. Otherwise every message names the file, line, column and a stable diagnostic code.

Publish

Build a website

./smill build hugo sheets --out ./site
hugo --source ./site --destination public

The export goes into a new directory and is never overwritten. See Hugo website export for hosting under a path such as /docs/.

Preview while editing

./smill serve sheets --open

A read-only live preview rebuilds when you save.

Going further

Import and automation

Convert existing Reference sheets with recorded provenance using the controlled importer. AI agents can follow the agent guide, and smill --help points them to it.