Skip to content

ノートブックファイルの取得と反映

概要

サーバ上のノートブックを対象とするサブコマンド群です。ローカルへの取得とサーバへの反映に加え、削除・移動・複製・検索などを行えます。引数の共通定義(ノートブック / フォルダ / ファイル / ディレクトリ)は 使い方 を参照してください。

サブコマンド機能概要
notebook cloneサーバ上のノートブックを新規取得
notebook createサーバ上に新規ノートブックを作成して取得
notebook pullローカルファイルをサーバの最新状態に更新
notebook diffサーバへ反映した場合の差分を確認
notebook pushローカルの変更をサーバに反映
notebook deleteサーバ上のノートブックを削除
notebook moveサーバ上のノートブックを別フォルダに移動
notebook copyサーバ上のノートブックを複製
notebook infoノートブックのメタ情報を取得
notebook listフォルダ直下のノートブックを一覧
notebook searchキーワードでノートブックを横断検索
notebook folder listフォルダの一覧
notebook folder infoフォルダのメタ情報を取得

ノートブックの新規取得

cdm notebook clone <notebook>
  -o, --output <path>   出力先(ファイルパス または ディレクトリ)
  --stdout              標準出力に出力(--output と排他)
  -y, --yes             既存ファイルがある場合の確認プロンプトをスキップ
  --profile <name>      利用する profile を指定

サーバ上のノートブックをローカルに保存します。

出力先

  • --output で出力先を指定できます
    • ノートブックファイル を指定した場合、そのパスに書き込みます
    • ディレクトリ を指定した場合、ディレクトリ内にファイルを生成します
      • ファイル名はノートブック名から自動生成されます
    • 書き込み先に既存のファイルがある場合、確認プロンプトが表示されます
      • --yes を指定することで、確認をスキップできます
    • 中間ディレクトリは必要に応じて自動作成します
  • --stdout を指定した場合、マークダウンを標準出力に出力します
  • --output, --stdout のいずれも指定のない場合は、 --output ./ として処理します

利用例

bash
# URL コピペで一発取得(カレントディレクトリに自動命名)
cdm notebook clone https://app.codatum.com/workspace/.../notebook/.../...

# notebooks/ ディレクトリに自動命名で保存
cdm notebook clone 671ef14b0d08cf6c657df7da -o notebooks/

# ファイル名まで明示
cdm notebook clone 671ef14b0d08cf6c657df7da -o notebooks/sales.cnb.md

# 標準出力
cdm notebook clone 671ef14b0d08cf6c657df7da --stdout > sales.cnb.md

ノートブックの新規作成

cdm notebook create <folder>
  -n, --name <name>     ノートブック名
  -o, --output <path>   出力先(ファイルパス または ディレクトリ)
  --stdout              標準出力に出力(--output と排他)
  -y, --yes             既存ファイルがある場合の確認プロンプトをスキップ
  --profile <name>      利用する profile を指定

サーバ上の指定したフォルダ配下に新しいノートブックを作成して、作成したノートブックをローカルに保存します。

  • <folder> には、サーバ上のフォルダ を指定してください。
  • --name で新規に作成するノートブック名を指定できます
  • --name を省略した場合、ノートブック名の入力プロンプトが表示されます(非TTY環境の場合は、サーバ側で初期値を自動付与します)
  • フォルダの編集権限が必要です

出力先

  • --output--stdout の挙動は notebook clone と同じです
  • ディレクトリを指定した場合のファイル名は、サーバから返却されたノートブック名から自動生成されます

出力例

✔ Created "Q4 Sales" → notebooks/Q4-Sales.cnb.md
https://app.codatum.com/workspace/66a75e5c3a1402e7954373ca/notebook/671ef14b0d08cf6c657df7da/recent

利用例

bash
# フォルダURLコピペで作成
cdm notebook create "https://app.codatum.com/workspace/.../?folder=67955fa3c1834fdc34705bf8" \
  -n "Q4 Sales" -o notebooks/

# フォルダIDを直接指定
cdm notebook create 67955fa3c1834fdc34705bf8 -n "Q4 Sales" -o notebooks/

# ワークスペースルート直下に作成
cdm notebook create WORKSPACE -n "Company KPI" -o notebooks/

# 自分のプライベートルートに作成(PRIVATE エイリアス)
cdm notebook create PRIVATE -n "Personal Memo" -o notebooks/

# 名前を省略して TTY で対話入力
cdm notebook create 67955fa3c1834fdc34705bf8 -o notebooks/

# 作成 → そのままプレビュー
cdm notebook create PRIVATE -n "Sales" -o notebooks/sales.cnb.md
cdm notebook preview notebooks/sales.cnb.md

ノートブックの最新化

cdm notebook pull <file|directory>
  -y, --yes             確認プロンプトをスキップして反映
  --profile <name>      利用する profile を指定

サーバから最新状態を取得して、ローカルのノートブックファイルを上書きします。

出力例

/notebooks/sales.cnb.md         changed
/notebooks/users.cnb.md         unchanged

2 files processed: 1 changed, 1 unchanged

? Pull these changes from the server? (y/N)

利用例

bash
# 確認しつつ反映
cdm notebook pull notebooks/

# CI 等で確認なしに反映
cdm notebook pull notebooks/ --yes

サーバとの差分確認

cdm notebook diff <file>
  --exit-code           差分がある場合に exit 2 を返す
  --ignore-job-metadata ジョブ実行情報の差分は無視して比較
  --profile <name>      利用する profile を指定

指定したノートブックファイルをサーバに push した場合に発生する差分を出力します。

  • <file> には、ノートブックファイル を指定してください
  • 単純な文字列の差分ではなく、サーバ側で実際にノートブックの統合処理を行った結果としての差分を出力します
  • サーバへの送信前にノートブックファイルの検証を行い、エラーが見つかった場合は exit 1 で終了します
  • --exit-code を指定した場合、差分がある場合は exit 2 で終了します
  • ノートブック単体の閲覧権限もしくはフォルダの閲覧権限が必要です

出力例

差分がある場合:

diff
--- notebooks/sales.cnb.md (server: before)
+++ notebooks/sales.cnb.md (server: after)
@@ -45,7 +45,7 @@
-SELECT * FROM users WHERE created_at > '2024-01-01'
+SELECT * FROM users WHERE created_at > '2025-01-01'

利用例

bash
# 差分確認
cdm notebook diff notebooks/sales.cnb.md

# CI レビュー用に diff をファイルへ保存
cdm notebook diff notebooks/sales.cnb.md > review.patch

# CI で変更検知(変更があれば exit 2)
cdm notebook diff notebooks/sales.cnb.md --exit-code

# ジョブ実行情報以外の差分を確認
cdm notebook diff notebooks/sales.cnb.md --ignore-job-metadata

ノートブックの書き戻し

cdm notebook push <file|directory>
  -y, --yes             確認プロンプトをスキップして反映
  --ignore-job-metadata ジョブ実行情報以外の変更を反映
  --profile <name>      利用する profile を指定

指定したノートブックファイルをサーバに送信し、サーバ上のノートブックに反映します。

  • <file|directory> には、ノートブックファイル または ディレクトリ を指定してください
  • サーバへの送信前にノートブックファイルの検証を行い、検証エラーが見つかった場合は exit 1 で終了します
    • 複数のファイルを対象とする場合、すべてのファイルを検証し終えてから、エラーをまとめて報告します。
  • この処理によりサーバのノートブックが更新される場合、書き込み前に確認プロンプトが表示されます
    • --yes を指定することで、確認をスキップできます
    • 詳細な差分を事前に確認したい場合は、別途 diff を実行してください。
  • ノートブック単体の閲覧権限と編集権限の両方、もしくはフォルダの閲覧権限と編集権限の両方が必要です

出力例

/notebooks/sales.cnb.md         changed
/notebooks/users.cnb.md         unchanged

2 files processed: 1 changed, 1 unchanged

? Push these changes to the server? (y/N)

✔ Pushed 1 notebook.

/notebooks/sales.cnb.md
https://app.codatum.com/workspace/66a75e5c3a1402e7954373ca/notebook/671ef14b0d08cf6c657df7da/recent

利用例

bash
# 確認しつつ反映
cdm notebook push notebooks/

# 事前に個別ファイルの差分を確認してから反映
cdm notebook diff notebooks/sales.cnb.md
cdm notebook push notebooks/

# CI で確認なしに反映
cdm notebook push notebooks/ --yes

# ジョブ実行結果以外の変更を反映
cdm notebook push notebooks/ --ignore-job-metadata

ノートブックの削除

cdm notebook delete <notebook|file>
  -y, --yes             確認プロンプトをスキップして削除
  --profile <name>      利用する profile を指定

サーバ上のノートブックを削除します。ローカルファイルは削除しません。

出力例

NotebookID     671ef14b0d08cf6c657df7da
NotebookName   Q4 Sales Analysis
FolderName     Marketing

? Delete this notebook from the server? (y/N)

利用例

bash
# 確認しつつ削除
cdm notebook delete 671ef14b0d08cf6c657df7da

# ローカルファイルから対象を解決して削除
cdm notebook delete notebooks/sales.cnb.md

# URL 指定
cdm notebook delete https://app.codatum.com/workspace/.../notebook/.../...

# CI 等で確認なしに削除
cdm notebook delete 671ef14b0d08cf6c657df7da --yes

ノートブックの移動

cdm notebook move <notebook|file> <folder>
  -y, --yes             確認プロンプトをスキップして移動
  --profile <name>      利用する profile を指定

サーバ上のノートブックを、別のフォルダに移動します。ローカルファイルは変更しません。

出力例

NotebookID     671ef14b0d08cf6c657df7da
NotebookName   Q4 Sales Analysis
From           Marketing (67955fa3c1834fdc34705bf8)
To             Archives  (67955fa3c1834fdc34705bfa)

? Move this notebook to the destination folder? (y/N)

利用例

bash
# notebookId と移動先フォルダIDを指定
cdm notebook move 671ef14b0d08cf6c657df7da 67955fa3c1834fdc34705bfa
 
# ローカルファイルから対象を解決して移動
cdm notebook move notebooks/sales.cnb.md 67955fa3c1834fdc34705bfa
 
# 移動先をフォルダURLで指定
cdm notebook move 671ef14b0d08cf6c657df7da \
  "https://app.codatum.com/workspace/.../?folder=67955fa3c1834fdc34705bfa"
 
# CI 等で確認なしに移動
cdm notebook move 671ef14b0d08cf6c657df7da 67955fa3c1834fdc34705bfa --yes

ノートブックの複製

cdm notebook copy <notebook|file> [folder]
  -n, --name <name>     複製後のノートブック名
  -o, --output <path>   複製結果の出力先(ファイルパス または ディレクトリ)
  --stdout              複製結果を標準出力に出力(--output と排他)
  -y, --yes             確認プロンプトをスキップして複製
  --profile <name>      利用する profile を指定

サーバ上のノートブックを複製(コピーを作成)します。

出力例

NotebookID     671ef14b0d08cf6c657df7da
NotebookName   Q4 Sales Analysis
To             Archives (67955fa3c1834fdc34705bfa)
NewName        Q4 Sales Analysis (copy)
 
? Copy this notebook? (y/N)

✔ Copied notebook "Q4 Sales Analysis" to "Q4 Sales Analysis (copy)" (671ef14b0d08cf6c657df7db).
https://app.codatum.com/workspace/66a75e5c3a1402e7954373ca/notebook/671ef14b0d08cf6c657df7db/recent

利用例

bash
# 同一フォルダ内に複製(テンプレートの展開など)
cdm notebook copy 671ef14b0d08cf6c657df7da -n "Q1 Sales"
 
# 別フォルダに複製
cdm notebook copy 671ef14b0d08cf6c657df7da 67955fa3c1834fdc34705bfa
 
# 複製してそのままローカルに取得
cdm notebook copy 671ef14b0d08cf6c657df7da PRIVATE -o notebooks/
 
# CI 等で確認なしに複製
cdm notebook copy 671ef14b0d08cf6c657df7da 67955fa3c1834fdc34705bfa --yes

ノートブックのメタ情報取得

cdm notebook info <notebook|file>
  -f, --format <fmt>    出力形式: text | json(既定: text)
  --profile <name>      利用する profile を指定

指定したノートブックのメタ情報(名前、フォルダ、権限、URL等)をサーバから取得して出力します。

出力形式

text(既定)

$ cdm notebook info notebooks/sales.cnb.md
NotebookID     671ef14b0d08cf6c657df7da
NotebookName   Q4 Sales Analysis
FolderID       67955fa3c1834fdc34705bf8
FolderName     Marketing
ModifiedAt     2026-05-20T10:23:00Z
Permissions    read,write,delete
URL            https://app.codatum.com/workspace/66a75e5c3a1402e7954373ca/notebook/671ef14b0d08cf6c657df7da/recent

json

json
{
  "notebookId": "671ef14b0d08cf6c657df7da",
  "notebookName": "Q4 Sales Analysis",
  "folderId": "67955fa3c1834fdc34705bf8",
  "folderName": "Marketing",
  "modifiedAt": "2026-05-20T10:23:00Z",
  "permissions": ["read", "write", "delete"],
  "url": "https://app.codatum.com/workspace/66a75e5c3a1402e7954373ca/notebook/671ef14b0d08cf6c657df7da/recent"
}

利用例

bash
# ローカルファイルから情報取得
cdm notebook info notebooks/sales.cnb.md

# notebookId 指定
cdm notebook info 671ef14b0d08cf6c657df7da

# URL 指定
cdm notebook info https://app.codatum.com/workspace/.../notebook/.../...

# スクリプト用に JSON 出力
cdm notebook info notebooks/sales.cnb.md -f json

ノートブックの一覧

cdm notebook list <folder>
  -f, --format <fmt>    出力形式: text | json(既定: text)
      --limit <n>       取得件数(1–100、省略時 100)
      --offset <n>      スキップ件数(省略時 0)
      --profile <name>  利用する profile を指定

指定したフォルダ直下のノートブックを列挙します。サブフォルダは含まれません(サブフォルダの一覧は notebook folder list を利用してください)。

  • <folder> には、サーバ上のフォルダ を指定してください
  • --limit / --offset を省略した場合は、最大 100 件まで取得します(続きは --offset を増やして再取得)
  • ノートブックが 0 件の場合、text では No notebooks found を表示します(json では "notebooks": []
  • フォルダの閲覧権限が必要です

出力形式

text(既定)

$ cdm notebook list 67955fa3c1834fdc34705bf8
Id                        Name               ModifiedAt
671ef14b0d08cf6c657df7da  Q4 Sales Analysis  2026-05-20T10:23:00Z
671ef14b0d08cf6c657df7db  Weekly Report      2026-05-20T10:23:00Z

json

json
{
  "notebooks": [
    { "id": "671ef14b0d08cf6c657df7da", "name": "Q4 Sales Analysis", "modifiedAt": "2026-05-20T10:23:00Z" },
    { "id": "671ef14b0d08cf6c657df7db", "name": "Weekly Report", "modifiedAt": "2026-05-20T10:23:00Z" }
  ]
}

利用例

bash
# 通常フォルダ内のノートブック一覧
cdm notebook list 67955fa3c1834fdc34705bf8

# ワークスペース直下のノートブック一覧
cdm notebook list WORKSPACE

# 自分のプライベート直下のノートブック一覧
cdm notebook list PRIVATE

# スクリプト用に JSON 出力
cdm notebook list WORKSPACE -f json

# ページング(51 件目から最大 50 件)
cdm notebook list WORKSPACE --limit 50 --offset 50
cdm notebook search
  -q, --query <text>    検索キーワード(必須。複数語はクオートで囲む)
  -f, --format <fmt>    出力形式: text | json(既定: text)
      --limit <n>       取得件数(1–100、省略時 20)
      --offset <n>      スキップ件数(省略時 0)
      --profile <name>  利用する profile を指定

閲覧権限を持つノートブックをキーワード検索します。

検索キーワード

  • --query は必須です。空文字のみの指定は exit 1 で終了します
  • 空白区切りで複数のキーワードを指定できます(例: "sales dashboard"
    • キーワードは OR 条件です。1つでもマッチすればヒットします
    • マッチしたキーワードが多い結果ほど、上位に来やすくなります
  • ノートブック名と本文の両方を対象に検索します。ノートブック名への一致は本文より優先され、名前だけにヒットした結果も上位に来やすくなります

検索の特性

検索は部分一致で動作します。以下の特性を踏まえてキーワードを選ぶと、目的のノートブックを見つけやすくなります。

  • 本文には、SQLを含むノートブック内のテキスト要素が含まれます。そのため、テーブル名やカラム名の一部でも、それを使っているノートブックを検索できます(例: users でそのテーブルを参照するSQLを含むノートブックを探す)
  • 部分一致のため、短いキーワードや一般的なキーワード(例: id, sql)は無関係なノートブックも多くヒットします。なるべく特徴的なキーワードで検索してください
  • キーワードは 2文字以上で指定してください(1文字では検索できません)
  • 日本語のノートブック名・本文も検索できます
  • 大文字・小文字は区別されません

出力形式

text(既定)

検索結果を1件ずつブロック形式で表示します。末尾に件数サマリ(例: 2 notebooks foundShowing 1-20 (more available))を表示します。ノートブック名・ID・FolderId・更新日時に加え、マッチ箇所のスニペット(最大3件・各72文字以内の1行)を表示します。

タイトルのみに一致した場合、スニペットは省略されます。

$ cdm notebook search -q "sales dashboard"

Q4 Sales Analysis
  ID:         671ef14b0d08cf6c657df7da
  FolderId:   67955fa3c1834fdc34705bf8
  ModifiedAt: 2026-05-20T10:23:00Z
  ...monthly sales summary for the dashboard...

Sales Dashboard
  ID:         671ef14b0d08cf6c657df7db
  FolderId:   67955fa3c1834fdc34705bf8
  ModifiedAt: 2026-05-18T08:11:00Z
  ...revenue sales trends in the dashboard...

2 notebooks found

一致するノートブックが 0 件の場合、No notebooks found を表示します。

json

json
{
  "notebooks": [
    {
      "id": "671ef14b0d08cf6c657df7da",
      "name": "Q4 Sales Analysis",
      "folderId": "67955fa3c1834fdc34705bf8",
      "modifiedAt": "2026-05-20T10:23:00Z",
      "highlights": [
        {
          "texts": [
            { "value": "...monthly ", "type": "text" },
            { "value": "sales", "type": "hit" },
            { "value": " summary...", "type": "text" }
          ]
        }
      ]
    }
  ],
  "has_next": false
}
  • highlights: マッチ箇所のスニペット。タイトルのみ一致の場合は省略されます
  • has_next: 返却件数が --limit と同数の場合 true(続きは --offset を増やして再取得)

利用例

bash
# 基本検索
cdm notebook search -q sales

# 複数キーワード
cdm notebook search --query "sales dashboard"

# スクリプト用に JSON 出力
cdm notebook search -q sales -f json

# ページング(21 件目から最大 20 件)
cdm notebook search -q sales --limit 20 --offset 20

# 検索結果の notebookId で clone
cdm notebook search -q "Q4 Sales" -f json | jq -r '.notebooks[0].id' | xargs -I{} cdm notebook clone {} -o notebooks/

フォルダの一覧

cdm notebook folder list [folder]
  -f, --format <fmt>    出力形式: text | json(既定: text)
  --profile <name>      利用する profile を指定

<folder> を指定した場合はそのフォルダ直下のサブフォルダを、省略した場合は探索の起点となるフォルダを返します。いずれの場合もノートブックは含まれません(フォルダ内のノートブックの一覧は notebook list を、ノートブックの横断検索は notebook search を利用してください)。

引数を省略した場合

閲覧権限を持つルートフォルダと、個別に閲覧権限が付与されたフォルダを返します。返される id は、そのまま <folder> 引数(サーバ上のフォルダ)に指定できます。

  • rootFolders: 閲覧権限を持つルートフォルダ(WORKSPACE / PRIVATE / TEAMSPACE:<teamspaceId>
    • 契約プランやユーザの権限により、閲覧権限を持たないルートフォルダは含まれません
  • grantedFolders: PATの権限制限で個別に閲覧権限が付与されたフォルダ。ルートフォルダから到達できない位置にあっても表示されます
    • 該当するフォルダがない場合は空になります

引数を指定した場合(直下のサブフォルダ)

出力形式

text(既定)

引数を省略した場合:

$ cdm notebook folder list

[Root folders]
Id                                  Name
WORKSPACE                           Workspace
PRIVATE                             Private
TEAMSPACE:665649f9023410424be62a8d  Engineering

[Granted folders]
Id                        Name
67961a3c1834fdc34705c012  Q4 Campaign

引数を指定した場合:

$ cdm notebook folder list WORKSPACE
Id                        Name
67955fa3c1834fdc34705bf8  Marketing
67955fa3c1834fdc34705bf9  Engineering
67955fa3c1834fdc34705bfa  Archives

該当するフォルダがない場合:

$ cdm notebook folder list
No folders found

json

引数を省略した場合:

json
{
  "rootFolders": [
    { "id": "WORKSPACE", "name": "Workspace" },
    { "id": "PRIVATE", "name": "Private" },
    { "id": "TEAMSPACE:665649f9023410424be62a8d", "name": "Engineering" }
  ],
  "grantedFolders": [
    { "id": "67961a3c1834fdc34705c012", "name": "Q4 Campaign" }
  ]
}

引数を指定した場合:

json
{
  "folders": [
    { "id": "67955fa3c1834fdc34705bf8", "name": "Marketing" },
    { "id": "67955fa3c1834fdc34705bf9", "name": "Engineering" }
  ]
}

利用例

bash
# 探索の起点となるフォルダを調べる
cdm notebook folder list

# ルートフォルダを起点にサブフォルダを確認する
cdm notebook folder list WORKSPACE

# 個別に権限が付与されたフォルダを起点に確認する
cdm notebook folder list 67961a3c1834fdc34705c012

# 特定フォルダのサブフォルダを確認
cdm notebook folder list 67955fa3c1834fdc34705bf8

# チームスペースルートのフォルダ一覧
cdm notebook folder list TEAMSPACE:665649f9023410424be62a8d

# スクリプト用に JSON 出力
cdm notebook folder list -f json

フォルダのメタ情報取得

cdm notebook folder info <folder>
  -f, --format <fmt>    出力形式: text | json(既定: text)
  --profile <name>      利用する profile を指定

指定したフォルダのメタ情報(名前、権限、URL等)をサーバから取得して出力します。フォルダ直下に新規ノートブックを作成(notebook create)する前に、書き込み可能かを確認する用途を想定しています。

  • <folder> には、サーバ上のフォルダ を指定してください
  • 利用中の profile がそのフォルダに対して持つ操作権限permissions に配列として付与されます。値は read(閲覧)/ write(編集)/ delete(削除)です
    • フォルダ直下のノートブックに対する権限であり、フォルダ自体のリネーム・移動・削除の権限ではありません
    • write の有無により、そのフォルダに cdm notebook create でノートブックを作成できるかを事前に判断できます
  • url から、サーバ上のフォルダをブラウザで開けます
  • フォルダの閲覧権限が必要です

出力形式

text(既定)

$ cdm notebook folder info 67955fa3c1834fdc34705bf8
FolderID       67955fa3c1834fdc34705bf8
FolderName     Marketing
Permissions    read,write
URL            https://app.codatum.com/workspace/66a75e5c3a1402e7954373ca/notebook/?folder=67955fa3c1834fdc34705bf8

json

json
{
  "folderId": "67955fa3c1834fdc34705bf8",
  "folderName": "Marketing",
  "permissions": ["read", "write"],
  "url": "https://app.codatum.com/workspace/66a75e5c3a1402e7954373ca/notebook/?folder=67955fa3c1834fdc34705bf8"
}

利用例

bash
# フォルダIDから情報取得
cdm notebook folder info 67955fa3c1834fdc34705bf8

# フォルダURL指定
cdm notebook folder info "https://app.codatum.com/workspace/.../?folder=67955fa3c1834fdc34705bf8"

# ワークスペースルートの権限を確認
cdm notebook folder info WORKSPACE

# スクリプト用に JSON 出力
cdm notebook folder info 67955fa3c1834fdc34705bf8 -f json

Codatum CLI AIエージェントのための分析環境