The mental model
MCP returns to context. CLI returns to disk.When you call MCP
get_note_transcript, the entire transcript text — typically 5–50 KB per note — is injected into your conversation context window. Every subsequent turn carries that weight until compaction or summarization.
When you call tiro notes transcript --output transcript.md, the same content lands on disk. stdout returns a single metadata line:
Tool selection cheatsheet
When to call MCP vs CLI
Worked example — 30 days of “Acme Corp” meetings
You want to draft a client-specific quarterly summary. You need every meeting where Acme came up in the last 30 days, with full transcripts../out/ — read them with the Read tool one at a time, only when you need exact wording.
Compare to MCP-only: get_note_transcript × 12 calls would inject 60–600 KB into context (12 transcripts × 5–50 KB each). Most of that is dead weight — you only need 2–3 of the transcripts in detail.
Reading errors as JSON
Every error from the CLI follows a stable envelope:error.message is human-readable and may change wording across releases — don’t pattern-match against it.
Exit codes
Quick auth-recovery loop in shell:
Output guarantees
--jsonis NDJSON for streams — list and search emit one JSON object per line. Pagination cursors arrive as a final{"_cursor": "…"}line.--output <path>writes atomically — temp file + rename, never partial.- TTY auto-detection — pretty in interactive shells, JSON when piped or redirected. Force either with
--pretty/--json. tiro notes transcript --format jsonmatches MCPget_note_transcript— same field names, same nesting, same speaker-segment structure. Reuse your existing parser.- Tokens are never echoed —
auth statusonly shows the first 4 chars; logs even at--verboseredact the rest.
Stable contract — what won’t break across patch releases
error.codevalueserror.errorTypevalues- Exit codes
- NDJSON line shape for list/search
- The MCP-shape JSON returned by
tiro notes transcript --format json - The metadata-line shape returned by
--outputoperations
Links
- Quickstart — five hands-on scenarios.
- Setup — install + auth + headless/CI configuration.
- CLI on npm
- tiro-cli on GitHub
- CHANGELOG