Skip to main content

Set Up Your Machine

Set up drwn once per machine. Machine capability intent is one selected, immutable Worker Blueprint closure. Standalone inventory remains available for inspection and authoring but is not activation authority.

Prerequisites​

  • Bun 1.2+
  • npm (for the published package and npm-backed skill bundles)
  • Node.js (for optional MCP servers that spawn Node processes)

Install And Inspect​

curl -fsSL https://bun.sh/install | bash
npm install -g darwinian
drwn --version
drwn status --machine --json
drwn machine skill list
drwn machine mcp list

Outside a configured project, status reflects machine state. Inventory lists what is available; it does not say what is active.

Initialize Machine Intent​

Prompt-free setup creates strict empty drwn.machine V2 intent:

drwn init --non-interactive
drwn status --machine --json --explain
{
"schema": "drwn.machine",
"schemaVersion": 2,
"policy": {},
"capabilities": {
"activeWorker": null,
"workerLock": null
}
}

Interactive drwn init offers the opt-out recommended @curation-labs/machine-defaults Blueprint. If accepted, activeWorker stores the canonical Card name and the embedded lock stores the exact versioned source and Card integrity. V1/prototype state is rejected without migration.

Select A Machine Worker​

Use immutable Store content, a pinned Git ref, or an explicit integrity-locked file ref allowed by trusted-source policy:

drwn apply --root <worker-blueprint-ref>
drwn status --machine --json --explain

Use drwn use --root <name-or-ref> --no-write to switch among installed roots. Use drwn use --root --none --no-write to clear selection while retaining alternatives. Mutable catalogCheckouts are for authoring and are never runtime resolution sources.

If the closure declares hooks or instructions, review the exact Card release:

drwn card trust <card-name> --hooks --scope machine
drwn card trust <card-name> --instructions --scope machine

The legacy drwn machine skill|mcp enable|disable commands fail with Blueprint guidance. To change machine capabilities, publish/select a different Blueprint.

Preview, Then Write​

drwn write --root --dry-run
drwn write --root

Machine projection can update user-home skills/MCP config, one generated Worker, Claude hook fields, ~/.claude/CLAUDE.md, and ~/.codex/AGENTS.md. It never writes ~/AGENTS.md.

Verify​

drwn status --machine --json --explain
drwn doctor --json

Verify the canonical active root, requested immutable ref, locked closure, content integrity, consent, and projection ownership. doctor is report-only.

If a planned destination exists without a matching global write-record entry, the write fails with MACHINE_PROJECTION_CONFLICT. Do not use force to claim foreign content. Force repairs only drift in prior drwn-owned state.

Run acceptance tests only with disposable HOME, AGENTS_DIR, project, and target paths; never experiment against a real user home.

Cross-References​