Skip to content

The CLI

Measured against pcraft --help on 2026-08-18. Flags that do not appear here do not exist.

commandwhat it does
pcraft demosynth → generate → gate → repair → bind on the shipped example, stub generator, scripted scores
pcraft listprint contract ids. --contracts-dir is the public store door
pcraft validateresolve + compile the question DAG. No generate, no gate
pcraft synthtemplate synthesizer. Every token traces to an atom
pcraft gate <image>score an image against a contract. Missing path is exit 4, not a failed atom
pcraft bindthe full loop. --mock is the GPU-free path; scores are scripted constants. --no-mock is the live door when [image] is installed
pcraft replay <record>reconstruct the question DAG and refuse on drift
pcraft doctorpython, extras, store load. Reports pcraft 1.0.0
pcraft schemaJSON Schema for the authoring contract
pcraft --jsonon the dumpable commands, the pydantic model is stdout

An empty custom --contracts-dir is INPUT_EMPTY_STORE (exit 1), never a silent fall-back to the shipped ashen-reaver demo.

commandwhat it does
pcraft recipewrite the Kontext stitch + in-graph left crop + fist-only Fill graph. Does not submit. --image-name local=cloud remaps uploaded plates. hands / weapon refuse — they ate the bracer
pcraft compile --seedpin the scaffold synthesizer artifact
pcraft compileneeds [synth] and a Python gate_metric. The CLI does not generate pixels (STATE_COMPILE_NEEDS_GATE)
pcraft sync-rulesregenerate encoder-craft rules from the readouts database
  • It will not silently become ashen-reaver when you point it at an empty store.
  • It will not submit a Cloud job. recipe writes JSON. Flux method=reference also writes that graph and raises GATE_CLOUD_SUBMIT.
  • It will not run a live GEPA search. That is compile_synthesizer(...) from Python, offline.
  • It will not wire the identity sub-gate. That module is measured, not promoted.