Get Started
Install, init a site, add pages, add freshness, set up agent workflows. Adopt each layer when you need it.
Get the binary
kazam is a single self-contained Rust binary. No runtime, no Node, no Python. Pick whichever install method is convenient — all three land the same binary on your PATH.
Easiest on macOS / Linux. Pulls from the tdiderich/tap tap.
brew install tdiderich/tap/kazam
kazam --version
Works on any system with a Rust toolchain. Installed to ~/.cargo/bin/kazam.
cargo install kazam
kazam --version
Bleeding edge: install straight from main to pick up unreleased fixes.
cargo install --git https://github.com/tdiderich/kazam
For development or if you want to pin to a specific branch or commit.
git clone https://github.com/tdiderich/kazam
cd kazam
cargo build --release
cp target/release/kazam /usr/local/bin/kazam
Init a site
kazam init my-site
cd my-site
kazam dev .
kazam init writes a kazam.yaml, an index.yaml, and a minimal nav. kazam dev starts a local server with live reload — edit a YAML file, the browser updates. That's the authoring loop.
Every .yaml file becomes a page. Subdirectories become URL paths. One kazam.yaml at the root holds site-wide config: name, theme, nav.
Add pages
A page is three keys: title, shell, and components. Drop a new .yaml in the folder and it builds automatically.
title: Onboarding Guide
shell: standard
components:
- type: header
title: Onboarding Guide
subtitle: Everything a new hire needs in week one.
- type: markdown
body: |
## Day 1
- Tool access: request in #it-help
- Slack channels to join: #team, #eng, #incidents
- type: callout
variant: info
title: Questions?
body: Ping your manager or post in #onboarding.
Build when you're ready to ship:
kazam build . --out _site
The authoring guide covers shells, components, and kazam.yaml config in full.
Add freshness metadata
Any page with a real owner and a review cadence should declare it. kazam turns this into a build-time banner (yellow if due soon, red if overdue) and includes it in the build report.
title: Onboarding Guide
shell: standard
freshness:
updated: 2026-05-01
review_every: 90d
owner: hr@example.com
sources_of_truth:
- label: Notion — HR onboarding doc
href: https://notion.so/your-page
- label: "Linear: Onboarding project"
href: https://linear.app/your-co/project/onboarding
components:
...
Every build reports stale pages and writes _site/stale.md. Hand that file to your agent to refresh them.
kazam build .
# _site/stale.md lists every page past or approaching its review deadline
Banner variants, build report format, status computation, and the agent workflow pattern.
Use prompt templates
kazam ships standardized prompts for the content lifecycle. Print one to give your agent a consistent starting point.
kazam prompt show migrate # move existing content into YAML pages
kazam prompt show add-page # scaffold a new page from source material
kazam prompt show refresh # update a stale page from its sources of truth
kazam prompt show audit # review a page for accuracy and gaps
kazam prompt show review # editorial review — tone, structure, completeness
Each prompt is designed to be copied into your agent session or piped directly. They reference the kazam schema and freshness conventions so the output is valid YAML.
Set up the agent workspace
If you're using an AI coding agent on the same repo that holds your kazam site, the workspace layer gives it a persistent codebase index, task tracking, and a visual board. It's the engine that makes agent-driven content management efficient.
kazam workspace init --agent claude
That indexes the codebase, installs git hooks, and writes the agent rules file. Open the board in a separate terminal while the agent works:
kazam board
Anatomy index, task tracking commands, benchmarks, corrections, and the visual board — all covered in the workspace reference.
Let agents read, write, and annotate directly
kazam mcp starts an MCP server that exposes your site to AI agents. Eight tools: read_page, list_pages, search, get_config, write_page, annotate_page, list_annotations, update_annotation.
Local (stdio) — for Claude Code, Cursor, or any agent on the same machine:
kazam mcp --allow-writes
Remote (HTTP) — serve over a network so your whole team's agents can connect:
kazam mcp --transport http --remote --token $KAZAM_MCP_TOKEN --port 8080 --allow-writes
The --local flag (default) binds to 127.0.0.1. The --remote flag binds to 0.0.0.0 and requires a bearer token via --token or KAZAM_MCP_TOKEN env var. The HTTP transport speaks the same JSON-RPC protocol over POST requests with CORS support. Put it behind a reverse proxy (Caddy, nginx) for HTTPS.
See the MCP reference for Claude Code config, Claude Desktop setup, team deployment, and the proxy script for non-technical users.
Annotate from calls and meetings
Annotations capture human context that data sources miss — competitive intel, timeline changes, corrections from customer calls. They live as sidecar YAML files, not embedded in the page.
kazam annotate customers/acme.yaml "evaluating Wiz alongside us" \
--section competitive --author tyler
Annotations render inline at build time with age indicators and status badges. When an agent refreshes a page, it reads pending annotations as the highest-priority source and marks them incorporated after use. The 14-day decay window ensures nothing sits unreviewed.
The same annotation tools are available via MCP — annotate_page, list_annotations, update_annotation — so agents can write annotations programmatically during their workflows.
From here: the authoring guide for page structure, the freshness reference for staleness tracking, the workspace guide for agent setup, and the components catalog for every primitive.