Skip to content

CLI Commands

Every command supports --json for structured output. Every destructive command supports --dry-run for preview. Run werk <command> --help for full usage with examples.

Commands that create, move, and shape the tension hierarchy.

CommandDescription
addCreate a new tension. --parent <id> to nest it.
composeCreate a parent for existing tensions.
moveReparent a tension. move 42 --parent 10
rmDelete a tension. Children are reparented to grandparent.
showDisplay full tension details — desired, actual, signals, epochs.
treeDisplay the tension forest as a tree.
splitSplit a tension into N new tensions with provenance tracking.
mergeMerge tensions with provenance tracking.

Commands that mutate tension state. Every mutation is a gesture.

CommandDescription
realityUpdate current reality. reality 42 "what is true now"
desireUpdate desired state. desire 42 "what I want"
resolveMark a tension as resolved.
releaseLet go of a tension’s desired state. Requires --reason.
reopenReopen a resolved or released tension.
holdRemove from sequence (unposition).
positionSet position in order of operations. position 42 3
noteAdd, retract, or list notes on a tension.

Commands that set temporal parameters. You provide two inputs; werk computes the rest.

CommandDescription
horizonSet or display deadline. horizon 42 2026-06 or horizon 42 none
snoozeSnooze until a future date.
recurSet or clear recurrence interval.
epochManually mark an epoch boundary.

Commands that shape what’s visible.

CommandDescription
listQuery engine with 12+ filter/sort flags. The general-purpose reading command.
treeHierarchical view with signals and closure ratios.
statsField-level summaries and aggregates.
surveyNapoleonic field survey — all tensions by temporal urgency.
logQuery the logbase — epoch history, cross-tension timeline, provenance.
CommandDescription
initInitialize a workspace (creates .werk/ directory).
configGet or set configuration values.
flushExport tension state to git-trackable JSON.
batchApply mutations from YAML files.
mcpStart the MCP server (stdio transport, 35 tools).
serveLaunch the web interface at localhost:3749.
nukeDestroy the workspace.
  • Short codes everywhere. Use #42 not ULIDs. Short codes are the user-facing addressing scheme.
  • --json on every command. Agents should always use this flag.
  • Deep addressing. #42~e3 (epoch 3), #42.n3 (note 3), #42@2026-03 (temporal lookup).
  • Non-interactive. No command blocks on stdin. Safe for scripts and agents.