doppels CLI is how you verify and execute them. doppels validate checks your manifests against the schema and catches problems before they surface at runtime. doppels run executes a Capability locally on your machine, producing a complete audit trail in .doppels/runs/. Every run is deterministic: same inputs, same steps, auditable result.
Validate your manifests
Rundoppels validate from your project root to check all manifests under the standard discovery paths. It validates against the JSON Schema contracts, checks that every Recipe’s provides list references a real Capability, verifies expression syntax, confirms step order is consistent, checks that approval is set on every step, and confirms that returns covers all outputs declared by the Capability.
Run
doppels validate before every commit. It catches schema drift, broken Capability–Recipe references, and expression errors that would only appear at runtime otherwise.Run a Capability
Execute a Capability by name withdoppels run capability/<name>. Pass inputs as --input key=value pairs. You can repeat the flag for multiple inputs.
--yes flag skips approval prompts. Use it in CI pipelines or any context where you’ve already reviewed the steps and trust the execution. Without --yes, the CLI pauses at every step that has approval: local or approval: always set and waits for your confirmation before proceeding.
Inspect run history
Every run is recorded under.doppels/runs/<run-id>/ with inputs, step outputs, artifacts, and timestamps. Use the runs subcommands to browse and inspect that history.
List all runs:
Describe a Capability
To see the public contract for a Capability without running it, usedoppels describe:
List all Capabilities
To see every Capability discovered in your current Space:Machine-readable output
Add--json to most commands to get structured output suitable for piping into other tools or scripts:
Full example session
The following walkthrough starts from the quickstart example included in the repository and exercises the full CLI workflow from validation through run inspection.1
Initialize a new Space
Create the standard directory layout in your project. This writes
capabilities/, recipes/, and .doppels/.2
Validate the manifests
Check all discovered manifests before running anything. Fix any errors reported before moving on.Expected output when everything is clean:
3
Describe the Capability
Inspect the contract for the Output:
greet Capability to confirm the inputs and outputs before running.4
Run the Capability
Execute Output:
greet with a single input. The --yes flag skips any approval prompts.5
List runs
Confirm the run was recorded.Output:
6
Inspect the run
Pull up the full detail for that run, including the output value.
7
Read the logs
Stream the step-level logs for the run.