メンタルモデル
MCP は context に返し、CLI はディスクに返す。MCP の
get_note_transcript を呼び出すと、トランスクリプト全文(通常はノートあたり 5〜50 KB)が会話の context window に注入されます。以降のすべてのターンは、圧縮や要約が行われるまでその重みを抱え続けます。
tiro notes transcript --output transcript.md を呼び出すと、同じコンテンツがディスクに出力されます。stdout にはメタデータが 1 行返ります:
ツール選択のチートシート
| やりたいこと | 使うもの | 備考 |
|---|---|---|
| トピックでノートを探す | MCP search_notes | 主要ドキュメントが付与され、context に存在する |
| 50 件以上のノートをディスクに取得する | CLI tiro notes search "…" --json > meetings.jsonl | NDJSON パイプ。jq で簡単にスライスできる |
| 逐語的な引用を読む | MCP get_note_transcript | 小さな部分集合のみ。トークン消費が大きい |
| 後で使うために全文トランスクリプトを保存する | CLI tiro notes transcript <guid> --output <path> | コンテンツはディスク、メタデータは stdout |
| 日付で会議をブラウズする | CLI tiro notes list --since 7d --json | 軽量。メタデータのみ |
| MCP ホストなしで MCP 形式の JSON を読む | CLI tiro notes transcript <guid> --format json | MCP get_note_transcript とバイト単位で一致 |
MCP と CLI のどちらを呼ぶか
実践例 — 30 日分の「Acme Corp」の会議
クライアント別の四半期サマリーを作成したいとします。直近 30 日間で Acme が話題に上がったすべての会議について、全文トランスクリプトが必要です。./out/ に保存されます。正確な文言が必要なときにだけ、Read ツールで 1 件ずつ読み込んでください。
MCP のみの場合と比較してみましょう。get_note_transcript を 12 回呼び出すと、60〜600 KB が context に注入されます(トランスクリプト 12 件 × 各 5〜50 KB)。その大半は不要な重荷です。詳細に必要なトランスクリプトは 2〜3 件だけです。
エラーを JSON として読む
CLI のすべてのエラーは、安定したエンベロープに従います:| Field | 用途 |
|---|---|
error.code | 機械可読の識別子 — これで分岐する |
error.errorType | 粗い粒度のカテゴリ(unauthorized、not_found、bad_request、…) |
error.suggestion | 自動リカバリのために次に実行すべき正確なコマンド |
error.httpStatus | 上流の HTTP ステータス(該当する場合) |
error.requestId | サポートへのエスカレーション用の上流 x-request-id |
error.message は人間が読むためのもので、リリースごとに文言が変わる場合があります。これに対してパターンマッチを行わないでください。
終了コード
| Code | 意味 | エージェントのアクション |
|---|---|---|
0 | 成功 | 続行する |
1 | 一般的なエラー | error.code を確認する |
2 | 使用方法のエラー(不正なフラグ、無効な日付、必須引数の欠落) | 呼び出しを修正する。やみくもに再試行しない |
4 | 認証が必要 | tiro auth login を実行してから再試行する |
64 | EX_USAGE | 2 と同じ |
65 | EX_DATAERR | レスポンスがスキーマ検証に失敗した。ユーザーに通知する |
78 | EX_CONFIG | env にも keychain にもトークンがない。認証するか TIRO_TOKEN を指定するようユーザーに依頼する |
出力の保証
--jsonはストリームに対して NDJSON — list と search は 1 行につき 1 つの JSON オブジェクトを出力します。ページネーションカーソルは最後の{"_cursor": "…"}行として届きます。--output <path>はアトミックに書き込む — 一時ファイル + リネームで、部分的な書き込みは決して発生しません。- TTY の自動検出 — インタラクティブなシェルでは見やすく、パイプやリダイレクト時には JSON になります。
--pretty/--jsonでどちらかを強制できます。 tiro notes transcript --format jsonは MCPget_note_transcriptと一致 — 同じフィールド名、同じネスト、同じ話者セグメント構造です。既存のパーサーを再利用できます。- トークンは決してエコーされない —
auth statusは最初の 4 文字のみを表示し、--verboseのログでさえ残りは伏せられます。
安定したコントラクト — パッチリリースをまたいで壊れないもの
error.codeの値error.errorTypeの値- 終了コード
- list/search の NDJSON 行の形式
tiro notes transcript --format jsonが返す MCP 形式の JSON--output操作が返すメタデータ行の形式
リンク
- Quickstart — 実践的な 5 つのシナリオ。
- Setup — インストール + 認証 + ヘッドレス/CI の設定。
- CLI on npm
- tiro-cli on GitHub
- CHANGELOG