Skip to content
DarkPrint
Reference

What you can do

Everything you can do with DarkPrint, and where: the darkprint command line, an MCP server your coding agent connects to, and a skill your agent installs to write blueprints. Each row says whether it works today.

live: works as printed · by design: built, and declines that step on purpose

By intent

  • Find one for a task
    find_blueprints { task: "…" }
    live
  • Find a node for a task
    find_cards { task: "…" }
    live
  • Read a card before you depend on it
    read_card { ref: "…@1.0.0" }
    live
  • Fetch an exact release by its digest
    inspect_provenance for the digest, then get_blueprint at it
    live
  • Get the files on disk
    get_blueprint from your agent, or darkprint clone from your terminal, for a release or for one card
    live
  • Check a folder is valid
    darkprint validate
    live
  • Run one
    nothing here runs a blueprint: your own harness does, and get_blueprint returns the contract for running it
    by design
  • Bring a foreign pipeline in
    darkprint import
    live
  • Write one from nothing
    follow the tutorial: the DarkPrint skill interviews you in your agent, and a live page here draws the graph as you answer
    live
  • Have your agent write one
    install the DarkPrint skill with one npx line; it interviews you and writes the folder
    live
  • Check a version bump matches the change
    darkprint bump
    live
  • Say what a run cost
    darkprint report
    live
  • Publish a release from your agent
    POST /api/bundles with a write-scoped API key; Settings prints the exact call when you mint one, and the Publish page does the same from a browser
    live
  • Publish one card on its own
    POST /api/cards with a write-scoped API key, or drop the YAML on Publish
    live
  • Change who can see a blueprint
    PATCH /api/bundles/<owner>/<slug>/visibility, or the switch on each row of your own shelf
    live
  • Read a private blueprint over MCP
    send your API key as a bearer token; get_blueprint, read_card, inspect_provenance and fetch_release then reach your own private blueprints, while the two find tools search public blueprints only
    live

The three surfaces

The command-line surface

Every verb below runs as npx -y darkprint <verb> on any machine with Node. The first run has npx fetch the darkprint package from npm and keep it in its own cache, so nothing lands in your project. The table below is what each command takes. Exit code 0 on success, 1 on anything else.

VerbDoesStatus
clone (<owner>/<slug> [--version <v> | --digest <d>] | <id>@<version>) [--out <dir>]Fetches a release into a directory, byte for byte as the registry exported it. Given a card reference <id>@<version> instead, writes that one card as cards/<id>@<version>.yaml under --out.live
validate [<dir>]Runs the registry's own bundle checks offline, and exits 1 only when a finding is an error.live
export [<dir>] --attractorWrites a bundle as Attractor-compatible DOT on stdout, keeping every finding on stderr so the graph can be redirected into a file.live
import <pipeline.dot> --as <handle> --out <dir>Reads an Attractor pipeline into a draft bundle on disk, listing what it wrote on stdout and every finding on stderr.live
bump [<dir>] --declare <version> --target <owner>/<slug>Holds a version you have already declared against what actually changed since the last release, and writes nothing.live
report <run-dir> --target <owner>/<slug> --cost <units>Sends a finished Attractor run to the registry. Prints what was claimed on stdout; on stderr, which manifest key the start time came from and how each node ended.live
skill install [--codex] [--dir <parent>]Copies the DarkPrint skill this package carries into ~/.claude/skills/darkprint, or ~/.agents/skills/darkprint with --codex, replacing an earlier copy, and prints where it landed and the version from its frontmatter.live
mcpServes the registry over MCP on stdio, for a client that cannot reach the remote server at /api/mcp.live

One of the eight needs more than the package. report is the only verb that writes. It needs a signed-in session cookie, passed through the session variable below, or a write-scoped API key from Settings. It also refuses offline until five facts about the run are supplied or found in the run manifest.

  • DARKPRINT_URL
    registry base URL (default https://www.darkprint.io)
  • DARKPRINT_API_KEY
    an API key, which raises the rate limit ceiling
  • DARKPRINT_SESSION
    a signed-in session cookie. report is the only verb that writes, and it sends this cookie. The run route also takes a write-scoped API key, which report does not send.