Compatibility: Pactmark 0.1.x on Node.js 22.14+ or 24.x. The generated project uses a deterministic local model, so this quickstart needs no provider account and makes no network call after installation.

1. Create the project

The initializer is deterministic and offline: it plans every file, prints the plan, and only then writes. Nothing is fetched from the network to decide what your project looks like.

Choosing a template

Non-interactive
Add --dry-run --json to print the full plan — every file path with its content digest, the exact dependency versions and the commands that would run — without touching the filesystem. This is the recommended way to review the initializer in a controlled environment.

2. Run it

You should see a run progress through three events and terminate:
Expected output
productionReady: false is correct and intentional. The development profile uses an ephemeral memory store, so readiness honestly reports that it cannot satisfy a durable production profile. A framework that reported true here would be lying to you.

3. Look at what it produced

That run left behind more than a string. Every command appended validated events, and the projection you inspected is a fold over them. Figure 1. The relationship you will rely on constantly: events are truth, the projection is a cache. This is why a Pactmark run can be resumed in a completely different process. Inspect the run from the CLI:
replay is worth understanding early: it verifies a terminal run from stored events and artifacts without executing any tool or model. If a run cannot be replayed, its history is not intact.

4. Check what your environment is missing

doctor fails when required durability, sandbox, credential, policy or registration evidence is absent. On a fresh memory-backed project it should fail — read the reported gaps as your production to-do list rather than as an error.

Where to go next

Build an agent from scratch

The same run, written by hand, with every object explained.

Understand the model

Six ideas that make the API stop feeling arbitrary.

Define a real tool

Risk class, scopes, egress, effect strategy and registration digests.

Move to durable storage

Migrations, fenced leases, protected context and a separately operated worker.

Recovery

If installation returns not found, verify the configured registry, your network access and the requested version. Do not switch to an unverified lookalike package — the @pactmark scope and create-pactmark are the only published names. If a run fails, branch on the stable KAF_* code and inspect the run event stream. Never parse the English error text as an API; those messages are diagnostics and may change.