This quickstart walks you through installing theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/cad0p/pi-napkin/llms.txt
Use this file to discover all available pages before exploring further.
@cad0p/napkin CLI and the pi-napkin extension, pointing pi-napkin at a vault, enabling auto-distill, and triggering your first manual distill. By the end you’ll have a working setup where pi automatically captures conversation knowledge into your vault in the background.
Install the @cad0p/napkin CLI
pi-napkin depends on the Confirm the install with:
@cad0p/napkin CLI. Install it globally before installing the extension:Install the pi-napkin extension
With the napkin CLI in place, install the pi-napkin extension into your pi environment:This registers both extensions (
napkin-context and napkin-distill) and the napkin skill with pi.Pre-release builds are published to the pi pins npm installs with an explicit tag or version —
@next tag on every push to main:pi update will not auto-bump a @next install. Re-run the install command to pick up newer @next builds.Install from source (for local development or unreleased changes):Create or point to a vault
pi-napkin uses napkin’s built-in vault resolution. You can either create a new vault or configure a global fallback that pi uses from any directory.Option A — Create a new vault (recommended for a clean start):Option B — Configure a global fallback so pi-napkin finds your vault from any working directory:
napkin init creates the subdir layout that auto-distill requires:Enable auto-distill
Auto-distill is off by default. Enable it for your vault with the napkin CLI:Or edit The full set of
.napkin/config.json directly:distill.* config keys:| Setting | Default | Description |
|---|---|---|
distill.enabled | false | Master switch. Nothing auto-distill related happens when false. |
distill.intervalMinutes | 60 | Timer interval between automatic distills. |
distill.maxDurationMinutes | 10 | Hard wall-clock cap on a single distill subprocess. Values ≤ 0 or non-finite fall back to 10 minutes. |
distill.onShutdown | true | Run a final distill at pi shutdown to capture anything the interval missed. |
distill.model.provider | "anthropic" | Model provider for the distill subprocess. |
distill.model.id | "claude-sonnet-4-6" | Model ID. Prefer a cheap, fast model — distill is automated and non-interactive. |
If your vault is not already a git repository, pi-napkin will auto-initialize git on the first session start after you set
distill.enabled: true. It runs git init, installs a managed .gitignore block, and commits everything as napkin: initial vault commit (auto-distill setup). You’ll see a one-time notification with instructions to undo or opt out.Start a pi session and verify
Open a terminal in (or under) your vault directory and start pi:When pi-napkin loads successfully you’ll see two indicators in the pi status bar:
📜 napkin— vault context was found and injected into the agent’s context.distill: 59m00s(counting down) — the auto-distill countdown timer is armed. The format isXm##swhen more than a minute remains, or##sin the final minute.
distill: off or distill: off (session) instead of the countdown.Trigger a manual distill
You don’t have to wait for the timer. Trigger a distill of the current conversation at any time:pi forks the session, spawns a detached To pause the automatic timer for the rest of the session (e.g. while drafting sensitive content):Toggle it back on with
pi -p subprocess, and the agent walks your vault structure, searches for existing notes on relevant topics, and creates or appends notes as appropriate. When the distill finishes you’ll see a notification: Distillation complete (Ns) for a successful run.To check what’s happening in the background at any point:/distill-auto-this-session on, or check the current state with /distill-auto-this-session status. The pause state persists across pi restarts of the same session.