Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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:

FlagEffect
--vault <PATH>Operate on the vault at PATH. Overrides both discovery and CUADERNO_VAULT_PATH.
--jsonEmit machine-readable JSON instead of a formatted table (see below).
--no-interactiveNever prompt; a missing required argument is an error. Implicit when stdout isn’t a TTY.
-h, --helpPrint help.
-V, --versionPrint 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 flagcdno prompts 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 the list/show verbs of project/portfolio/stewardship, plus action list) emit their listing or detail object.
  • Write verbs (log, capture, file, track, and the create/update verbs of project, 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

CommandWhat it does
initCreate a new vault
logAppend a line to today’s daily note
captureDrop a quick note into the inbox
triageProcess inbox captures
orientMorning orientation
statusActive projects + top actions
weeklyShow the weekly note
monthlyShow the monthly note
commitmentsAggregated deadlines
questionsList active questions
searchFull-text search
reviewGuided weekly/monthly review
projectManage project maps
actionManage next actions
portfolioManage evidence portfolios
fileFile evidence into a portfolio
questionManage question notes
stewardshipManage stewardships
trackFile a tracking entry
commitManage standalone commitments
lintValidate the vault
reindexRebuild the index
normaliseReorder frontmatter
completionsShell-completion scripts