CLI reference
cdno is the command-line interface to a Cuaderno vault. This section documents every command. For
the why behind them, see Concepts and Tutorials.
cdno [OPTIONS] <COMMAND>
Run cdno --help for the command list, or cdno <command> --help for any command’s flags.
Global options
These apply to every command:
| Flag | Effect |
|---|---|
--vault <PATH> | Operate on the vault at PATH. Overrides both discovery and CUADERNO_VAULT_PATH. |
--json | Emit machine-readable JSON instead of a formatted table (see below). |
--no-interactive | Never prompt; a missing required argument is an error. Implicit when stdout isn’t a TTY. |
-h, --help | Print help. |
-V, --version | Print the version (top level only). |
Finding the vault
When --vault is not given, cdno discovers the vault by walking up from the current directory
until it finds a .cuaderno/ folder. If that finds nothing, it falls back to the
CUADERNO_VAULT_PATH environment variable. Standing inside a vault always wins over the env var.
See Initialise a vault.
Interactive vs. scripted
Write commands follow one convention (the “flags-and-prompts” pattern):
- Interactive terminal, missing a required flag →
cdnoprompts for it, then asks you to confirm before writing. - Non-interactive (piped, redirected, in CI, or
--no-interactive) → a missing required flag is an error. Supply every flag and the command runs unattended.
This means the same command serves a human at a prompt and a script with no changes.
JSON output
--json makes any supported verb emit structured output:
- Read verbs (
commitments,questions,status,orient,search, and thelist/showverbs ofproject/portfolio/stewardship, plusaction list) emit their listing or detail object. - Write verbs (
log,capture,file,track, and the create/update verbs ofproject,action,portfolio,stewardship,question,commit) emit a{ "path": ..., "message": ... }result, and run non-interactively (so prompts can’t corrupt the JSON on a terminal). - Maintenance / interactive / bootstrap commands (
init,lint,reindex,normalise,triage,review,weekly,monthly) ignore--json.
The CLI’s JSON shapes match the MCP server DTOs. See JSON output for every shape.
The commands
| Command | What it does |
|---|---|
init | Create a new vault |
log | Append a line to today’s daily note |
capture | Drop a quick note into the inbox |
triage | Process inbox captures |
orient | Morning orientation |
status | Active projects + top actions |
weekly | Show the weekly note |
monthly | Show the monthly note |
commitments | Aggregated deadlines |
questions | List active questions |
search | Full-text search |
review | Guided weekly/monthly review |
project | Manage project maps |
action | Manage next actions |
portfolio | Manage evidence portfolios |
file | File evidence into a portfolio |
question | Manage question notes |
stewardship | Manage stewardships |
track | File a tracking entry |
commit | Manage standalone commitments |
lint | Validate the vault |
reindex | Rebuild the index |
normalise | Reorder frontmatter |
completions | Shell-completion scripts |