プラグイン
cdg plugin の各サブコマンドのオプションと対象範囲、プラグインのインストールスコープを変更する方法。
cdg plugin には install、status、update、uninstall の 4 つのサブコマンドがあり、CodeDAG Guide プラグインのインストール、状況の確認、更新、アンインストールに使います。プラグインでできることと普段の管理方法は、CodeDAG Guide プラグインを管理するを参照してください。
コマンドと対象のエージェント
4 つのサブコマンドは、どのエージェントのプラグインを対象にするかを、共通のオプションで指定します。指定しない場合は、Claude Code と Codex の両方が対象になります。
| コマンド | 構文 | 説明 |
|---|---|---|
| インストール | cdg plugin install [対象] [-s <スコープ>] | 対象のエージェントにプラグインをインストールします |
| 状況の確認 | cdg plugin status [対象] | 現在の場所から見たプラグインのインストール、有効・無効、バージョンの状態を報告し、次にすべきことを案内します。ファイルは一切変更しません |
| 更新 | cdg plugin update [対象] [--reset-local-changes] | インストール済みのプラグインを最新バージョンに更新します。インストールが壊れている場合は、その場で修復します |
| アンインストール | cdg plugin uninstall [対象] | 現在の場所から見えるプラグインのインストールを削除します |
[対象] の書き方は次のとおりです。
| 対象のオプション | どのエージェントのプラグインが対象になるか |
|---|---|
--claude | Claude Code |
--codex | Codex |
-a、--all | Claude Code と Codex |
| 省略 | --all と同じ |
--all は、--claude や --codex と同時には使えません。同時に指定すると、コマンドはエラーになり、何も実行しません。
対象のエージェントがこのコンピューターにインストールされていない場合の扱いは、コマンドによって異なります。--all を指定した場合と対象を省略した場合、install と update は、インストールされていないエージェントをスキップし、インストールされているエージェントだけを処理します。エラーになるのは、どちらもインストールされていない場合だけです。--claude または --codex で、インストールされていないエージェントを明示的に指定した場合、この 2 つのコマンドはそのままエラーになります。status は、指定されたエージェントを常にすべて一覧表示し、インストールされていないエージェントについては、先にそのエージェントをインストールするよう案内します。uninstall は、エージェントがこのコンピューターに残っていなくても実行できます。エージェントがすでにアンインストールされていても、プラグインの設定が残っていれば、コマンドはそれを削除します。スキップされるのは、アンインストールの手順のうち、エージェント自身が行う必要のある部分だけです。
これらのコマンドは、どれもログインを必要とせず、現在のディレクトリが cdg init で初期化済みのプロジェクトである必要もありません。インストールと更新が有効になるのは、そのあとに新しく開いたエージェントセッションだけです。すでに開いているセッションで新しいプラグインを使うには、いったん終了してから、claude --resume または codex resume で再開します。
cdg plugin install
cdg plugin install は、対象のエージェントにプラグインをインストールします。インストールスコープは -s / --scope で指定し、デフォルトは user です。
# このコンピューターにインストールされているすべてのエージェントに、User スコープでインストールする
cdg plugin install
# Codex にだけインストールし、現在のチェックアウトでだけ有効にする
cdg plugin install --codex -s local3 つのスコープの違いは、設定がどこに書き込まれるかと、リポジトリと一緒に共有されるかどうかです。
| スコープ | 設定の書き込み先 | バージョン管理の対象 | worktree や clone が複数ある場合 |
|---|---|---|---|
user(デフォルト) | ホームディレクトリにある Claude Code または Codex の設定。どのリポジトリにも書き込まれません | いいえ | このコンピューターのすべてのリポジトリとレプリカが、この 1 つのインストールを共有します |
project | 現在のチェックアウトにあるプロジェクトの設定ファイル | はい。.codedag ではなく、プロジェクトリポジトリにコミットします | 現在のチェックアウトにだけ書き込まれます。ほかの worktree や clone には、このコミットを含むバージョンをチェックアウトして初めて、この設定が入ります |
local | 現在のチェックアウトにあり、このコンピューターにだけ残る設定ファイル。CodeDAG が無視ルールも書き込み、Git にこれらのファイルを無視させます | いいえ | 現在のチェックアウトだけのものです。ほかの worktree や clone では、それぞれインストールする必要があります |
project と local では、コマンドを実行したチェックアウトにインストールされます。コマンドは現在のディレクトリから上へたどってリポジトリのルートを見つけるので、リポジトリ内のどのサブディレクトリで実行してもかまいません。Git リポジトリの外で実行すると、コマンドはエラーになります。user スコープは、どのディレクトリからでもインストールできます。
Project スコープでリポジトリに書き込まれるファイルは、バージョン管理の対象です。そのため、デフォルトの分離ブランチモードでは、コミットするまでワークスペースがクリーンとは見なされません。Local スコープでリポジトリに書き込まれるファイルは、後述の無視ルールによって Git に無視されるため、ワークスペースには影響しません。インストール後のこれらのファイルの扱いと、Project スコープのインストールがほかのメンバーのコンピューターで有効になる仕組みは、インストールスコープを選ぶを参照してください。
プラグインがすでにインストールされている場合、install は再インストールもスコープの変更もしません。現在の場所からそのエージェントのプラグインが見えていれば、どのスコープにインストールされているかにかかわらず、コマンドはインストール済みであることを表示してスキップします。たとえば、User スコープでインストールしたあとは、どのリポジトリで cdg plugin install --scope project を実行しても効果はありません。スコープを変更する方法は、インストールスコープを変更するを参照してください。前回のインストールの設定が完全には削除されずに残っているのを見つけた場合も、コマンドは同じようにスキップします。この場合は、先に cdg plugin uninstall を実行してから、インストールし直します。
Local スコープで書き込まれる無視ルール
Local スコープのインストールが成功すると、リポジトリの info/exclude に CodeDAG が管理するブロックが書き込まれ、このコンピューターにだけ残るこれらの設定ファイルを Git が無視するようになります。無視ルールを自分で設定する必要はなく、バージョン管理されている .gitignore を CodeDAG が変更することもありません。ブロックはプラグインごとに 1 つずつあります。再インストールや修復のときはブロック全体が置き換えられ、ブロックの外にあるルールはそのまま残ります。
# BEGIN CODEDAG CLAUDE GUIDE (managed)
.claude/settings.local.json
# END CODEDAG CLAUDE GUIDE (managed)
# BEGIN CODEDAG CODEX GUIDE (managed)
.agents/plugins/marketplace.json
plugins/codedag/
# END CODEDAG CODEX GUIDE (managed)ブロックは、Git が実際に読み取る info/exclude に書き込まれます。通常のリポジトリでは <リポジトリのルート>/.git/info/exclude です。linked worktree では、リポジトリ共通の Git ディレクトリにある info/exclude が使われ、同じリポジトリのすべての作業ディレクトリがこの 1 つを共有します。そのため、どちらのエージェントのプラグインも、linked worktree に Local スコープでインストールできます。
無視ルールは、すでに Git が追跡しているファイルには効きません。そのため、これらのファイルがすでにリポジトリにコミットされている場合、Local スコープのインストールは終了コード 1 で失敗します。ファイルは変更されず、ブロックも書き込まれません。エラーメッセージは Failed to install CodeDAG plugin for <エージェント>: で始まります。
- Claude Code:
.claude/settings.local.jsonがすでに追跡されている場合、理由はClaude Code local installation is unavailable because .claude/settings.local.json is already tracked by Git. Use user or project scope instead.と表示されます。 - Codex:
.agents/plugins/marketplace.jsonまたはplugins/codedagがすでに追跡されている場合、理由はCodex local installation is unavailable because .agents/plugins/marketplace.json or plugins/codedag is already tracked by Git. Use project scope instead.と表示されます。
cdg plugin status
cdg plugin status は読み取るだけで、何も変更しません。報告するのは、現在の場所から見えるインストールです。対象のエージェントごとに、次のフィールドを 1 組ずつ出力します。
| フィールド | 意味 |
|---|---|
Agent installed | このコンピューターでそのエージェントが見つかったかどうか。false の場合、Action は先にエージェントをインストールするよう案内します |
Plugin installed | 現在の場所からプラグインのインストールが検出されたかどうか |
Scope | インストールスコープ。user、project、local のいずれかで、インストールされていない場合は - です |
Enabled | プラグインがエージェントの側で有効になっているかどうか。判定できない場合は unknown です |
Installed version、Sync など | インストール済みのプラグインのバージョンと、更新が必要かどうか、スキルファイルがこのコンピューターで変更されているかどうか、インストールが壊れているかどうか |
Path | プラグインがある場所。問題を調べるときの参考になります |
Action | 次にすべきこと。操作が必要な場合は、コマンド全体が示されます |
どのインストールを確認するかは、実行する場所で決まります。Git リポジトリの中で実行した場合は、そのチェックアウトの Project スコープと Local スコープのインストールに加えて、User スコープのインストールを確認します。Git リポジトリの外で実行した場合は、User スコープのインストールだけを確認します。そのため、あるリポジトリのエージェントセッションでプラグインを使えるかどうかを確かめるには、そのリポジトリの中で実行します。
プラグインがエージェントの側で無効になっている場合、Action には、もう一度有効にする方法が追加されます。これは同期についての案内と同時に表示されることがあり、その場合は同期についての案内が先に来ます。
Enabled: false
Sync: version record out of date
Action: Run `cdg plugin update --codex`. Plugin is disabled. Open `/plugins` in a Codex session to re-enable itもう一度有効にする操作は、エージェントの側でしか行えません。Claude Code では claude plugin enable codedag@codedag を実行し、Codex ではセッションの中で /plugins を開きます。cdg plugin update もインストールの修復も、無効にした状態をそのまま保ち、代わりに有効に戻すことはありません。
バージョンの互換性
プラグインと CLI は別々にアップグレードされ、バージョン番号が一致している必要はありません。両者に互換性があるかどうかは、プラグインが宣言する 2 つの CLI バージョンで決まります。プラグインがサポートする最低バージョンと、検証済みの最新バージョンです。cdg plugin status は、このコンピューターの CLI のバージョンを、インストール済みのプラグインが宣言するこの 2 つのバージョンと比較します。
| このコンピューターの CLI のバージョン | 判定 | 必要な対応 |
|---|---|---|
| プラグインがサポートする最低バージョンより古い | プラグインが説明している使い方の一部に、このコンピューターの CLI がまだ対応していない可能性があります | 案内に従って CLI をアップグレードします |
| 最低バージョンと検証済みバージョンの間 | 互換性があります | なし |
| プラグインの検証済みバージョンより新しい | この場合も互換性があり、結果には情報として表示されるだけです | 対応は不要です。新しいバージョンの CLI で追加された使い方をエージェントに知らせたい場合は、プラグインを更新します |
CLI が検証済みバージョンより新しくても互換性がないとは見なされないのは、新しいバージョンの CLI が、公開済みのプラグインが使っているコマンド、引数、オプションと、それらの意味を維持するからです。逆に、最新バージョンのプラグインは、CodeDAG サービスが引き続きサポートしているすべての CLI バージョンに対応しています。そのため、使っている CLI がサービスのサポート対象であるかぎり、プラグインを最新バージョンに更新しても、CLI との互換性が失われることはありません。
cdg plugin update
cdg plugin update は、プラグインを元のスコープのまま最新バージョンに更新します。デフォルトでは、プラグインのスキルファイルに加えた変更は残されます。エージェントの側で選んだプラグインの有効・無効の状態も、更新後にそのまま保たれます。インストールが壊れている場合は、同じコマンドがその場で修復します。対象のエージェントにプラグインがまだインストールされていない場合、コマンドはインストール用のコマンドを案内するだけで、代わりにインストールすることはありません。このコマンドに --scope オプションはありません。スコープを変更する方法は、インストールスコープを変更するを参照してください。
| オプション | 説明 | 省略した場合 |
|---|---|---|
--reset-local-changes | プラグインのスキルファイルが変更されている場合に、尋ねることなく、最新の公式の内容に置き換えます | 変更を残します。ターミナルで実行した場合、コマンドは変更を残すか公式の内容に置き換えるかを先に尋ね、デフォルトは変更を残すほうです。スクリプトやエージェントなどから非対話形式で実行した場合は、尋ねずに変更を残し、プラグインは今回更新されません |
# このコンピューターの両方のエージェントのプラグインを更新する
cdg plugin update
# Codex のプラグインだけを更新し、スキルファイルへの変更を破棄する
cdg plugin update --codex --reset-local-changes更新でプラグインの内容を置き換える必要がある場合、コマンドは先に元のプラグインのコピーをバックアップし、完了メッセージの Previous copy backed up in directory: 行にバックアップ先のディレクトリを示します。バックアップはすべて CodeDAG のグローバルディレクトリに置かれ、リポジトリの中には置かれません。そのため、Project スコープのプラグインを更新したあとも、git status はクリーンなままです。Codex プラグインのバックアップは、インストールスコープごとに別の場所に保存されます。
| インストールスコープ | バックアップ先のディレクトリ |
|---|---|
| User | <CODEDAG_GLOBAL_HOME>/codex-plugins/codedag.bak/ |
| Project、Local | <CODEDAG_GLOBAL_HOME>/codex-plugins/repo-backups/<checkout-key>/ |
<checkout-key> は、チェックアウトのルートディレクトリのパスから生成されます。そのため、同じリポジトリでも、作業ディレクトリごとに別のバックアップ先になります。各ディレクトリに残るのは直近のバックアップ 1 つだけで、次に置き換えが行われると上書きされます。残しておきたい変更がある場合は、それまでに別の場所へ移してください。オーケストレーションについて長く残しておきたい要望は、CLAUDE.md または AGENTS.md に書くのが適しています。理由はプラグインを更新するを参照してください。
cdg plugin uninstall
cdg plugin uninstall に --scope オプションはなく、どのインストールが削除されるかは、コマンドを実行する場所で決まります。Git リポジトリの中で実行すると、User スコープのインストールも一緒に削除されます。
| 実行する場所 | 削除されるインストール |
|---|---|
| Git リポジトリ内の任意のディレクトリ(worktree や clone のレプリカを含む) | そのチェックアウトの Project スコープと Local スコープのインストール、および User スコープのインストール |
| どの Git リポジトリにも属さない場所 | User スコープのインストールだけ |
このコマンドでは、1 つのスコープだけをアンインストールすることはできません。リポジトリの中でアンインストールすると、このコンピューターのほかのリポジトリのセッションでも、プラグインを使えなくなります。User スコープのインストールだけを削除したい場合は、Git リポジトリの外のディレクトリで実行します。ほかのリポジトリやレプリカにある Project スコープと Local スコープの設定は削除されないので、該当するチェックアウトでそれぞれアンインストールする必要があります。
Project スコープからアンインストールすると、現在のチェックアウトでバージョン管理されている設定ファイルが変更されます。この変更も、同じようにコミットする必要があります。Local スコープのインストールをアンインストールすると、info/exclude に書き込まれた CodeDAG が管理するブロックも一緒に削除されます。ただし、同じリポジトリのほかの作業ディレクトリがまだこのブロックを使っている場合は、そちらのファイルが未追跡のファイルにならないように、ブロックは残されます。--claude または --codex を付けた場合は、そのエージェントのプラグインだけがアンインストールされ、もう一方のエージェントのプラグインとそのブロックには影響しません。
インストールスコープを変更する
インストール済みのプラグインのスコープを、直接変更することはできません。まずアンインストールし、次に新しい --scope でインストールして、最後に新しいエージェントセッションを開きます。
2 つのコマンドは、どちらも正しい場所で実行する必要があります。アンインストールは、元のインストールが見える場所で行います。元のスコープが Project または Local の場合は、そのプラグインがインストールされているチェックアウトです。新しいスコープが Project または Local の場合は、インストールも対象のチェックアウトの中で実行します。1 つのエージェントだけを変更する場合は、両方のコマンドに --claude または --codex を付けます。もう一方のエージェントのプラグインは、そのまま残ります。
次の例では、Claude Code のプラグインを、User スコープからリポジトリ ~/code/my-app の Project スコープに変更します。
cd ~/code/my-app
cdg plugin uninstall --claude
cdg plugin install --claude --scope projectアンインストールをリポジトリの中で実行したため、元の User スコープのインストールは削除されています。このコンピューターのほかのリポジトリには、もうこのプラグインがありません。必要な場合は、そのリポジトリで別途インストールします。新しく書き込まれた設定ファイルは、プロジェクトリポジトリにコミットして初めて、チームメンバーと共有されます。
逆に、Project スコープから User スコープに戻す場合も、同じように、まずこのリポジトリの中でアンインストールし、次に --scope user でインストールします。このアンインストールによって、リポジトリ内のプロジェクトの設定が削除されます。この変更も、同じようにプロジェクトリポジトリにコミットする必要があります。
関連ページ
- CodeDAG Guide プラグインを管理する:インストールスコープの選び方、プラグインが有効になっていることを確認する方法、プラグインのスキルファイルを変更せずにオーケストレーションのやり方をカスタマイズする方法。
- エージェントにオーケストレーションを任せる:プラグインをインストールしたあと、目標をエージェントに伝え、ワークフローの作成と投入を任せます。
最終更新