5 minutes

Get Started

Install, init a site, add pages, add freshness, set up agent workflows. Adopt each layer when you need it.

Install

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
Step 1

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.

Site shape

Every .yaml file becomes a page. Subdirectories become URL paths. One kazam.yaml at the root holds site-wide config: name, theme, nav.

Step 2

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
More authoring detail

The authoring guide covers shells, components, and kazam.yaml config in full.

Step 3

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
Full freshness reference

Banner variants, build report format, status computation, and the agent workflow pattern.

Step 4

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.

Step 5

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
Workspace guide

Anatomy index, task tracking commands, benchmarks, corrections, and the visual board — all covered in the workspace reference.

MCP server

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.

Step 6

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.

You're set

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.