DocBase CLI ## 概要 DocBase CLIは、Claude CodeなどのAIコーディングツールやCI/CDパイプラインからDocBaseのナレッジを操作するためのコマンドラインツールです。 npmパッケージとして提供されており、AIエージェントに自然言語で話しかけるだけで、DocBaseのメモ検索・作成・更新などが自動的に実行されます。ターミナルからの直接操作にも対応しています。 DocBase CLIを導入することにより、例えば以下の操作が可能になります。 * 特定のキーワードやグループ、タグなどによるメモ検索 * メモの作成・更新・削除・アーカイブ操作 * コメントの作成・削除操作 * メンバーやグループ、タグの管理 * 添付ファイルのアップロード・ダウンロード * グッジョブの投稿・削除 また、DocBase CLIには、例えば以下の特徴があります。 * **AIコーディングツールとの統合** :white_check_mark: * Claude CodeのSKILLやプラグインとして導入し、AIエージェントからDocBaseを活用可能 * **コマンドラインから直接操作できる** :white_check_mark: * AIアプリを介さず、ターミナルから直接DocBaseを操作可能 * **CI/CDへの組み込み** :white_check_mark: * アクセストークン認証により、GitHub ActionsなどのCI/CDパイプラインに組み込み可能 * **柔軟な認証方式** :white_check_mark: * OAuthによるブラウザ認証と、アクセストークンによる認証の両方に対応 * OAuth認証ではOS標準の資格情報ストアに対応(macOS Keychain / Windows Credential Manager / Linux Secret Service) ## 利用可能なコマンド ### メモ(`docbase posts`) | コマンド | 説明 | 主なデフォルト | | --- | --- | --- | | `docbase posts search` | メモを検索([高度な絞り込み](https://help.docbase.io/posts/1827704#高度な絞り込み)にも対応) | query=*、per-page=20 | | `docbase posts get ` | メモの詳細を取得 | - | | `docbase posts create` | 新しいメモを作成 | draft=false、scope=private、notice=true | | `docbase posts update ` | 既存のメモを更新 | notice=true | | `docbase posts delete ` | メモを削除 | - | | `docbase posts archive ` | メモをアーカイブ | - | | `docbase posts unarchive ` | メモのアーカイブを解除 | - | ### コメント(`docbase comments`) | コマンド | 説明 | 主なデフォルト | | --- | --- | --- | | `docbase comments list ` | コメント一覧を取得 | per-page=20、order=asc | | `docbase comments create ` | コメントを投稿 | notice=true | | `docbase comments delete ` | コメントを削除 | - | ### ユーザー(`docbase users`) | コマンド | 説明 | 主なデフォルト | | --- | --- | --- | | `docbase users search` | ユーザーを検索 | per-page=100 | | `docbase users get-profile` | 自分のプロフィールを取得 | - | | `docbase users get-groups ` | ユーザーの所属グループ一覧を取得 | per-page=20 | | `docbase users delete ` | チームからメンバーを削除 | - | ### グループ(`docbase groups`) | コマンド | 説明 | 主なデフォルト | | --- | --- | --- | | `docbase groups search` | グループを検索 | per-page=100 | | `docbase groups get ` | グループの詳細を取得 | - | | `docbase groups create` | グループを作成 | - | | `docbase groups add-users ` | グループにユーザーを追加 | - | | `docbase groups remove-users ` | グループからユーザーを削除 | - | ### タグ(`docbase tags`) | コマンド | 説明 | 主なデフォルト | | --- | --- | --- | | `docbase tags list` | タグ一覧を取得 | - | ### グッジョブ(`docbase good-jobs`) | コマンド | 説明 | 主なデフォルト | | --- | --- | --- | | `docbase good-jobs list ` | グッジョブ一覧を取得 | per-page=100、order=asc | | `docbase good-jobs create ` | グッジョブを投稿 | notice=true | | `docbase good-jobs delete ` | グッジョブを削除 | - | ### 添付ファイル(`docbase attachments`) | コマンド | 説明 | 主なデフォルト | | --- | --- | --- | | `docbase attachments upload` | ファイルをアップロード | - | | `docbase attachments download ` | ファイルをダウンロード | - | 各コマンドの詳しいオプションは `docbase --help` で確認できます。 ### 使用例 ターミナルでの使用例 ```bash # メモを検索 docbase posts search -q "リリース計画" # メモの詳細を取得 docbase posts get 1234567 # 下書きメモを作成 docbase posts create --title "技術仕様書" --body "## 概要" --draft --tags "仕様書" "API" # メモを更新(通知なし) docbase posts update 1234567 --body "更新された本文" --no-notice # コメントを投稿 docbase comments create 1234567 --body "レビューしました!" --no-notice # グループのメモを検索 docbase posts search -q "group:開発チーム API設計" ``` ## セットアップ手順 ### インストール npmでグローバルインストールします。 ```bash npm install --ignore-scripts -g @krayinc/docbase-cli ``` ### アップデート 最新版に更新するには、インストールと同じコマンドを実行します。 ```bash npm install --ignore-scripts -g @krayinc/docbase-cli@latest ``` 現在インストールされているバージョンは以下で確認できます。 ```bash docbase --version ``` 利用可能な最新版は以下で確認できます。 ```bash npm view @krayinc/docbase-cli version ``` > **Claude Codeでスキル(プラグイン)として利用している場合**、CLI本体とは別にプラグイン側のアップデートも必要です。Claude Code内で `/plugin` を開き、`docbase-cli@docbase-marketplace` を選択して最新版に更新してください。 ### 認証 DocBase CLIは **OAuth認証** と **アクセストークン認証** の2つの認証方式に対応しています。 #### OAuth認証(推奨) ブラウザベースのOAuth認証です。対話的な利用に適しています。 ```bash docbase auth login ``` ブラウザが開き、DocBaseの認証画面が表示されます。 **必ず、権限を付与するチームやグループ、アクションを確認して連携を開始してください**。 認証状態は以下のコマンドで確認できます。 ```bash docbase auth status ``` > **注意:** OAuth認証の場合、DocBaseのAI利用制限が適用されます。グループ単位でのAI利用制限や、`no-ai` タグが付与されたメモへのアクセス制限が有効になります。 #### アクセストークン認証 環境変数でチームドメインとアクセストークンを指定する方式です。CI/CDパイプラインやスクリプトでの利用に適しています。 ```bash DOCBASE_TEAM_DOMAIN=your-team DOCBASE_TOKEN=your-token docbase posts search ``` アクセストークンは、DocBaseの設定画面から発行できます。 > **⚠️ 重要: アクセストークン認証の場合、グループ単位でのAI利用制限や `no-ai` タグによるアクセス制限は適用されません。** トークンの権限範囲内ですべてのメモ(AI利用が制限されているグループのメモや `no-ai` タグ付きのメモを含む)にアクセスできます。AIコーディングツールからアクセストークン認証で利用する場合は、組織のAI利用ポリシーに十分ご注意ください。AI利用制限を適用したい場合はOAuth認証をご利用ください。 ### AIコーディングツール別 #### Claude Code npmでDocBase CLIをインストール後、Claude Codeのプラグインマーケットプレイスからスキルを導入できます。 ```bash /plugin marketplace add krayinc/docbase-marketplace /plugin install docbase-cli@docbase-marketplace ``` スキルをインストール後、Claude Code上で「DocBaseのメモを検索して」などと指示するだけで、CLIが自動的に呼び出されます。 #### その他のAIコーディングツール [![md](/images/file_icons/default.svg) SKILL.md](https://docbase.io/file_attachments/24cf9028-fa61-408e-af6e-1db11da10fd5.md) npmでインストールした上で、添付のスキルファイルをご利用いただけます。 #### CI/CD アクセストークン認証を使用して、GitHub Actionsなどのワークフローに組み込めます。 ```yaml # GitHub Actionsの例 - name: DocBaseにメモを投稿 env: DOCBASE_TEAM_DOMAIN: ${{ secrets.DOCBASE_TEAM_DOMAIN }} DOCBASE_TOKEN: ${{ secrets.DOCBASE_TOKEN }} run: | npx @krayinc/docbase-cli posts create \ --title "デプロイ完了: ${{ github.ref_name }}" \ --body "commit: ${{ github.sha }}" \ --tags "deploy" "自動投稿" \ --scope everyone \ --no-notice ``` ## Q&A ### MCP サーバーとの違いは? DocBase CLIは、ターミナルやCI/CDから直接DocBaseを操作するためのツールです。 [DocBase公式リモートMCPサーバー](https://help.docbase.io/posts/3902653)は、ChatGPTやClaude Desktop/WebなどのAIアプリにDocBaseのコンテキストを統合するためのサーバーです。 | | CLI(OAuth) | CLI(アクセストークン) | リモートMCPサーバー | | --- | --- | --- | --- | | 主な用途 | ターミナル操作、AIコーディングツール | CI/CD、スクリプト | AIアプリとの連携 | | 認証方式 | OAuth | アクセストークン(環境変数) | OAuth | | AI利用制限 | 適用される | 適用されない | 適用される | | 導入先 | Claude Code、Cursor、ターミナルなど | GitHub Actions、ターミナルなど | Claude Desktop/Web、ChatGPT、Cursorなど | | 実行環境 | ローカルマシン | ローカルマシン / CI環境 | DocBaseがホスト | ### OAuth認証とアクセストークン認証でアクセスできるメモが違う? はい、認証方式によってAI利用制限の適用が異なります。 | | OAuth認証 | アクセストークン認証 | | --- | --- | --- | | グループ単位のAI利用制限 | **適用される** | **適用されない** | | `no-ai` タグによる制限 | **適用される** | **適用されない** | **アクセストークン認証では、AI利用が制限されているグループのメモや `no-ai` タグ付きのメモにもアクセスできます。** 認証方式の選び方: * AI向けの権限設定(AIグループ制限、`no-ai` タグなど)を適用したい場合 → **OAuth認証** * AI利用制限が不要な場合(人間がCLIツールとして使う場合、CI/CDでの利用など) → **アクセストークン認証** ### 出力形式は? すべてのコマンドの出力はJSON形式です。`jq` などのツールと組み合わせて使用できます。 ```bash # メモのタイトル一覧を取得 docbase posts search -q "仕様書" | jq '.posts[].title' ``` ### メモのURLからIDを取得するには? DocBaseのメモURLの末尾の数字がメモIDです。 ``` https://your-team.docbase.io/posts/1234567 ^^^^^^^ ← これがメモID ``` ### 長い本文を指定するには? 長文の本文を指定する方法は2つあります。 #### `--body-file` でファイルから読み込む(推奨) 長文や改行を多く含む本文は、`--body-file`(短縮形 `-F`)でファイルから読み込むのが安全です。シェル展開を避けられるため、特殊文字を含む本文でもエラーが出にくく、テンプレートとしての使い回しもしやすくなります。 ```bash docbase posts create --title "議事録" --draft --body-file ./meeting-note.md ``` #### HEREDOCで直接指定する 短い本文や、その場で書き起こす場合はHEREDOCも利用できます。 ```bash docbase posts create --title "議事録" --draft --body "$(cat <<'EOF' ## 会議メモ ### 議題 - 項目1 - 項目2 ### 決定事項 - TBD EOF )" ``` ## システム要件 * Node.js(npmが利用可能な環境) ## 参考リンク * [npmパッケージ: @krayinc/docbase-cli](https://www.npmjs.com/package/@krayinc/docbase-cli) * [DocBase公式リモートMCPサーバー](https://help.docbase.io/posts/3902653) * [DocBase API v3 ドキュメント](https://help.docbase.io/posts/45703)