正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。
ドキュメントに関する現在のご利用体験についてお聞かせください。アンケートにご協力ください。

GitLab Duo CLIを使用する

  • プラン: Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

GitLab Duo CLIは次の2つのモードで使用できます:

  • インタラクティブモード: GitLab UIまたはエディタ拡張機能内のGitLab Duo Chatと同様のチャットエクスペリエンスを提供します。ビルドモード、プランモード、自動モードをサポートします。
  • ヘッドレスモード: Runner、スクリプト、その他の自動化されたワークフローで非インタラクティブに使用できます。

前提条件

インタラクティブモード

GitLab Duo CLIをインタラクティブモードで使用するには:

  1. セットアップに応じて、インタラクティブモードを開始するコマンドを入力します:

    shell
    glab duo cli
    shell
    duo
  2. ターミナルウィンドウにプロンプト>が表示されます。プロンプトの後に質問またはリクエストを入力し、Enterを押します。

    例:

    What is this repository about?
    
    Which issues need my attention?
    
    Help me implement issue 15.
    
    The pipelines in MR 23 are failing. Please help me fix them.

GitLab Duo CLIの処理中にレスポンスをキャンセルするには、Escapeを押します。GitLab Duo CLIは現在の操作を停止し、プロンプトに戻ります。

プロンプトの履歴を表示するには↑キーを使用します。履歴を検索するにはControl+Rを使用します。

新しいセッションを開始すると、プロンプトのプレースホルダーにGitLab Duo CLIの機能に関するヒントが表示されることがあります。

起動カード

インタラクティブモードで新しいセッションを開始すると、ターミナルに起動カードが表示されます。初回の実行時にはオンボーディングカードが、それ以降の実行時にはウェルカムカードが表示されます。既存のセッションを再開する場合、カードは表示されません。

起動カードはデフォルトで有効になっていますが、オフにすることもできます。

オンボーディングカード

マシン上でGitLab Duo CLIを初めて実行すると、オンボーディングカードがGitLabマーケットプレイスからのMCPサーバーの接続とプラグインのインストールをサポートします。

このカードには、手順を選択して実行するためのナビゲーションヒントが表示されます。完了した手順には、接続済みのMCPサーバー数またはインストール済みのプラグイン数とともにチェックマークが表示されます。

このカードは、両方の手順を完了した後でも、最初のプロンプトを送信するまで表示され続けます。それ以降の実行では再度表示されません。

ウェルカムカード

新しいセッションを開始するたびに、デフォルトでウェルカムカードが表示されます。セッション開始時に作業アイテムを表示する設定でこのカードをオフにできます。

このカードは一般的なタスクを開始するためのプロンプトを提案し、プロンプトの参照や実行に関するナビゲーションヒントを表示します。たとえば、GitLabプロジェクトで作業している場合、提案されるプロンプトは、オープン中のマージリクエストやイシューから生成されます。それ以外の場合、このカードには一般的な例が表示されます。

マージリクエストの1つに対するプロンプトを選択し、そのソースブランチが存在する場合、プロンプトはGitLab Duoにまずそのブランチをチェックアウトするよう指示します。

提案されたプロンプトを/goalセッションとして実行する設定が有効になっていて、インスタンスがGitLab 19.3以降の場合、レビューフィードバックに対応するプロンプトは/goalセッションとして実行されます。

起動カードを非表示にする

起動カードはデフォルトで有効になっています。これらをオフにするには、--startup-cardsをfalseに設定します:

shell
glab duo cli --startup-cards false
shell
duo --startup-cards false

または、STARTUP_CARDS環境変数をfalseに設定します。両方を設定した場合、--startup-cardsオプションが環境変数よりも優先されます。

ステータスバー

画面下部には、次の内容を示すステータスバーが表示されます:

  • 現在の作業ディレクトリとGitブランチ。
  • 検出されたGitLabプロジェクト、および存在する場合は現在のブランチのオープン中のマージリクエストとそのパイプラインのステータス。
  • 実行中の/goalセッションの進捗状況。
  • 設定済みのMCPサーバーのステータス。

モードの切り替え

インタラクティブモードでは、作業中にGitLab Duo CLIのモードを切り替えることができます:

モード権限仕組み
ビルドモード(デフォルト)読み取り/書き込みGitLab Duoはタスクを実行し、プロジェクトに変更を加えることができます。
プランモード読み取り専用GitLab Duoは、変更を加えることなくプロジェクトを分析し、プランを作成できます。
自動モード読み取り/書き込みGitLab Duoは最初に承認を求めることなくツールを使用できます。詳細については、自動モードを参照してください。

たとえば、最初にプランモードでGitLab Duoと問題について検討します。準備ができたらビルドモードに切り替え、プランを実装するようにGitLab Duoに指示します。

GitLab Duo CLIでは、現在のモードが>プロンプトの下に表示します。モードを切り替えるには、Tabを押します。

スラッシュコマンド

インタラクティブモードでは、スラッシュコマンドを使用してGitLab Duo CLIを設定したり、アクションを実行したりできます。プロンプトにスラッシュコマンドを入力し、Enterを押します。

次のスラッシュコマンドを使用できます:

コマンド説明
/compactコンテキストスペースを節約するために、会話履歴を圧縮します。
/copyGitLab Duoの最後のレスポンスをクリップボードにコピーします。
/doctorGitLab Duo CLI環境の診断情報を表示します。
/exitGitLab Duo CLIを終了します。
/exportセッションを移植可能なJSONバンドルとしてエクスポートします。
/feedbackバグレポートまたは機能リクエストを送信します。
/goal目標の達成に向けて作業するセッションを開始します。GitLab 19.3以降が必要です。
/help利用可能なショートカット、モード、スラッシュコマンドを表示します。
/mcp設定済みのMCPサーバーとそのステータスを表示します。
/model現在のセッションで使用するAIモデルを切り替えます。
/new新しいチャットセッションを開始します。
/reviewコードレビューサブエージェントで変更をレビューします。
/sessionsセッションを参照、検索、切り替えます。
/settings設定パネルを開きます。
/skills現在のプロジェクトで利用可能なAgent Skillsを一覧表示します。
/whatsnewGitLab Duo CLIの最近の変更点を表示します。

スラッシュコマンドが開くパネルまたはダイアログを閉じるには、Escapeを押します。

独自のスラッシュコマンドを作成することもできます。詳細については、カスタムスラッシュコマンドを参照してください。

設定

設定を表示および変更するには、インタラクティブモードで/settingsと入力します。詳細については、GitLab Duo CLIの設定を参照してください。

システム通知

ターミナルウィンドウがフォーカスされていないときにセッションでユーザーの確認や対応が必要になると(たとえば、タスクが完了した場合や、ツールの承認が必要な場合)、GitLab Duo CLIはシステム通知を送信できます。

通知は、設定パネルにある通知設定によって制御されます:

  • auto(デフォルト): ターミナルがフォーカスされていない場合に、システム通知を送信します。
  • disabled: システム通知を送信しません。

ツールの承認

GitLab Duoがツールを使用する必要がある場合、使用を開始する前に承認を求めるプロンプトが表示されます。たとえば、ファイルを読み取る場合やコマンドを実行する場合などです。

次のオプションがあります:

  • 承認: GitLab Duoはツールを1回使用できます。
  • セッションで承認: GitLab Duoは、セッションの残りの期間、指定された引数でツールを使用できます。別の引数を使用する場合は、追加の承認が必要です。
  • 拒否: GitLab Duoはツールを使用できません。

セッションで承認オプションを使用するには、管理者がグループまたはインスタンスでこのオプションを有効にする必要があります。詳細については、ツールの承認を参照してください。

自動モード

  • プラン: Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated

この機能の利用可否は、機能フラグによって制御されます。詳細については、履歴を参照してください。

自動モードでは、GitLab Duoは承認を求めることなくツールを使用します。設定で許可されている場合、GitLab Duoは次のアクションを実行できます:

  • ファイルを削除したりシステムを変更したりするコマンドを含む、任意のシェルコマンドを実行します。
  • コミットやプッシュを含む、gitコマンドを実行します。
  • イシュー、マージリクエスト、その他のGitLabリソースを作成または更新します。
  • MCPツールを実行し、フローを開始します。

自動モードはエージェントツールガバナンスを上書きしません。常に拒否に設定されたツールはブロックされたままになります。

GitLab Duoは間違いを犯すことがあります。GitLab Duoが読み取るファイル、イシュー、マージリクエスト、Webページなどのコンテンツには、プロンプトインジェクションに使用される悪意のある指示が含まれている可能性があります。リスクを抑えるには:

  • 信頼できるリポジトリと、破棄できるブランチでのみ自動モードを使用してください。
  • 機密性の高い認証情報を含むデバイスやシェルでは自動モードを使用しないでください。
  • セッションにとどまり、マージする前にすべての変更をレビューしてください。
  • 自動モードが不要な場合は、ビルドモードに戻してください。

詳細については、エディタ拡張機能のセキュリティに関する考慮事項を参照してください。

自動モードをオンにする

自動モード設定は、デフォルトでオフになっています。自動モードを使用する前に、インスタンス、グループ、またはプロジェクトでオンにする必要があります。グループはインスタンスから設定を継承し、サブグループとプロジェクトは親グループから設定を継承します。

前提条件:

  • 管理者アクセス権。

インスタンスで自動モードをオンにするには:

  1. 右上隅で、管理者を選択します。
  2. 左側のサイドバーで、GitLab Duoを選択します。
  3. 設定の変更を選択します。
  4. 自動モードドロップダウンリストから、次のいずれかのオプションを選択します:
    • デフォルトでオン: 自動モードが使用可能になります。グループとサブグループはこれをオフにできます。
    • デフォルトでオフ: 自動モードは使用できません。グループとサブグループはこれをオンにできます。
    • 常にオフ: 自動モードは使用できません。グループとサブグループはこれをオンにできません。
  5. 変更を保存を選択します。

前提条件:

  • グループのオーナーロール。

グループで自動モードをオンにするには:

  1. 上部のバーで、検索または移動先を選択して、グループを見つけます。
  2. 設定 > GitLab Duoを選択します。
  3. 設定の変更を選択します。
  4. 自動モードドロップダウンリストから、次のいずれかのオプションを選択します:
    • デフォルトでオン: 自動モードが使用可能になります。サブグループとプロジェクトはこれをオフにできます。
    • デフォルトでオフ: 自動モードは使用できません。サブグループとプロジェクトはこれをオンにできます。
    • 常にオフ: 自動モードは使用できません。サブグループとプロジェクトはこれをオンにできません。
  5. 変更を保存を選択します。

親グループで自動モードが常にオフに設定されている場合、プロジェクトの設定はロックされており、オンにすることはできません。

前提条件:

  • プロジェクトのメンテナーまたはオーナーロールが必要です。

プロジェクトで自動モードをオンにするには:

  1. 上部のバーで、検索または移動先を選択して、プロジェクトを見つけます。
  2. 設定 > 一般を選択します。
  3. GitLab Duoを展開します。
  4. 自動モードの切替をオンにします。
  5. 変更を保存を選択します。

自動モードを使用する

前提条件:

  • GitLab Duo CLI 9.22.0以降。
  • プロジェクトで自動モードがオンになっていること。

自動モードを使用するには:

  1. プロジェクトでGitLab Duo CLIを起動または再起動して、設定を反映させます。
  2. >プロンプトの下のモードがautoと表示されるまで、Tabを押します。
  3. プロンプトを入力します。自動モードは、そのプロンプト以降に適用されます。

自動モードの使用を停止するには、Tabを押して別のモードに切り替えます。この変更は次のプロンプトに適用されます。

自動モードはセッション間で保持されません。/newで開始したセッションを含め、新規または再開した各セッションは、ビルドモードで開始します。

自動モードのトラブルシューティング

Tabを押してもautoが表示されない場合:

  1. プロジェクトで自動モード設定がオンになっていることを確認します。
  2. 親グループが常にオフに設定されていないことを確認します。
  3. GitLab Duo CLIを再起動します。

ヘッドレスモード

ヘッドレスモードは、制御されたサンドボックス環境で注意して使用してください。

非インタラクティブモードでワークフローを実行するには、セットアップに応じたコマンドを使用します:

glab duo cli runを使用します:

shell
glab duo cli run --goal "Your goal or prompt here"

たとえば、ESLintコマンドを実行し、エラーをGitLab Duo CLIに渡して解決させることができます:

shell
glab duo cli run --goal "Fix these errors: $eslint_output"

duo runを使用します:

shell
duo run --goal "Your goal or prompt here"

たとえば、ESLintコマンドを実行し、エラーをGitLab Duo CLIに渡して解決させることができます:

shell
duo run --goal "Fix these errors: $eslint_output"

ヘッドレスモードを使用すると、GitLab Duo CLIは次のように動作します:

  • GitLab 19.4以降では、デベロッパーフローを実行します。
  • 手動によるツール承認をバイパスし、すべてのツールの使用を自動的に承認します。
  • 以前の会話からのコンテキストを保持しません。runコマンドを実行するたびに、新しいワークフローが開始されます。

画像をコンテキストとして提供する

この機能の利用可否は、機能フラグによって制御されます。詳細については、履歴を参照してください。

前提条件:

  • GitLab Duo CLI 9.27.0以降。
  • GitLab管理のモデルを使用してください。自分でホストするモデルはサポートされていません。

インタラクティブモードまたはヘッドレスモードでGitLab Duo CLIをローカルで実行すると、GitLab Duoは画像を読み取り、コンテキストとして使用できます。CLIは次のものを読み取れます:

  • リポジトリ内の画像ファイル。
  • 同じプロジェクト内のイシュー、マージリクエスト、またはコメントに添付された画像。

プロンプト内で直接画像をアップロードすることはできません。代わりに、既存の画像の名前を指定してください:

  • リポジトリ内のファイルの場合は、ファイルパスを指定してください。例: docs/architecture.png。
  • 添付ファイルの場合は、Markdownに表示されるアップロード参照を指定してください。例: /uploads/<secret>/screenshot.png。

イメージの要件

画像をコンテキストとして使用するには、画像が次の要件を満たしている必要があります:

  • 形式は、PNG、JPEG、またはWebPファイル
  • サイズ: 10 MB以下
  • 寸法: 幅または高さが8,000ピクセルを超えないこと

プロンプトの例

イシューに添付されたスクリーンショットに表示されているUIのバグを修正するよう、GitLab Duo CLIに依頼できます:

Look at the screenshot attached to issue 1234 and fix the alignment bug it shows.

アーキテクチャ図を説明するよう、GitLab Duo CLIに依頼できます:

Read docs/architecture.png, explain the data flow, and identify any single points of failure.

ホワイトボードの写真を設計ドキュメントに変換するよう、GitLab Duo CLIに依頼できます:

Read whiteboard.jpg and turn it into a design document in docs/design.md.

モデルを選択する

インタラクティブモードまたはヘッドレスモードで使用するモデルを選択できます。

インタラクティブモードの場合

選択したモデルはセッション間で保持され、コンテキストを失うことなく、会話の途中でモデルを切り替えることができます。

前提条件:

  • GitLab Duo CLI 8.76.0以降。

インタラクティブモードでモデルを選択するには:

  1. インタラクティブモードで/modelと入力し、Enterを押します。
  2. 矢印キーを使用して利用可能なモデルのリストをスクロールするか、モデル名を入力してリストを絞り込みます。
  3. モデルを選択し、Enterを押してそのモデルに切り替えます。

ヘッドレスモードの場合

選択したモデルはセッション間で保持されません。

前提条件:

  • GitLab Duo CLI 8.68.0以降。

ヘッドレスモードでモデルを選択するには:

  1. モデルのgitlab_identifierを確認します。

  2. GitLab Duo CLIを実行するときに、--modelオプションまたはGITLAB_DUO_MODEL環境変数をgitlab_identifierの値に設定します。

    --modelオプションを使用します:

    shell
    glab duo cli --model <gitlab_identifier_for_the_model>

    GITLAB_DUO_MODEL環境変数を使用します:

    shell
    GITLAB_DUO_MODEL=<gitlab_identifier_for_the_model> glab duo cli

    たとえば、GPT-5-Codex - OpenAIを使用するには:

    shell
    glab duo cli --model gpt_5_codex
    shell
    GITLAB_DUO_MODEL=gpt_5_codex glab duo cli

    --modelオプションを使用します:

    shell
    duo --model <gitlab_identifier_for_the_model>

    GITLAB_DUO_MODEL環境変数を使用します:

    shell
    GITLAB_DUO_MODEL=<gitlab_identifier_for_the_model> duo

    たとえば、GPT-5-Codex - OpenAIを使用するには:

    shell
    duo --model gpt_5_codex
    shell
    GITLAB_DUO_MODEL=gpt_5_codex duo

セッションを切り替える

GitLab Duo Chatセッションには、会話履歴とワークフローのデータが保存されます。セッションは、GitLab Duo CLI、GitLab UI、およびエディタ拡張機能で共有されます。

たとえば、ブラウザで会話を開始し、ターミナルでその会話を続けることができます。

セッションを参照して切り替えるには:

  1. インタラクティブモードで/sessionsと入力し、Enterを押します。
  2. 矢印キーを使用して利用可能なセッションのリストをスクロールするか、テキストを入力してリストを絞り込みます。
  3. セッションを選択し、Enterを押します。

ヘッドレスモードでセッションを切り替えるには、--existing-session-idオプションを使用します。

Model Context Protocol(MCP)接続

GitLab Duo CLIをローカルまたはリモートのMCPサーバーに接続するには、GitLab IDE拡張機能と同じMCP設定を使用します。手順については、MCPサーバーを設定するを参照してください。

トラブルシューティング

GitLab Duo CLIの使用中に、次の問題が発生することがあります。

証明書エラー

証明書エラーが発生する可能性があります:

Error: unable to verify the first certificate
Error: self-signed certificate in certificate chain

組織でHTTPSインターセプトプロキシなどのためにカスタム認証局(CA)を使用している場合、証明書エラーが発生することがあります。

証明書エラーを解決するには、次のいずれかの方法を使用します:

  • システム証明書ストアを使用する(推奨):

    1. CA証明書がオペレーティングシステムの証明書ストアにインストールされている場合は、それを使用するようにNode.jsを設定します。これにはNode.js 22.15.0、23.9.0、または24.0.0以降が必要です。

    2. GitLab Duo CLIをコンテナ内で実行する場合は、ホストシステムのストアではなく、コンテナのシステムストアにCA証明書をインストールします。

      shell
      export NODE_OPTIONS="--use-system-ca"
  • CA証明書ファイルを指定する:

    1. 古いバージョンのNode.jsを使用している場合、またはCA証明書がシステムストアにない場合は、Node.jsに証明書ファイルを直接指定します。ファイルはPEM形式である必要があります。

    2. GitLab Duo CLIをコンテナで実行する場合は、コンテナ内の場所を指すパスを設定します。証明書ファイルを提供するには、ボリュームマウントを使用します。

      shell
      export NODE_EXTRA_CA_CERTS=/path/to/custom-ca.pem

証明書エラーを無視する

証明書エラーが引き続き発生する場合は、証明書の検証を無効にできます。

証明書の検証を無効にすることはセキュリティ上のリスクとなります。本番環境で検証を無効にしないでください。

証明書エラーは潜在的なセキュリティ漏洩を警告するものです。そのため、証明書の検証を無効にしても安全であると確信できる場合にのみ、検証を無効にしてください。

前提条件:

  • ブラウザで証明書チェーンを検証した、または管理者がこのエラーを無視しても安全であることを確認した。

証明書の検証を無効にするには:

shell
export NODE_TLS_REJECT_UNAUTHORIZED=0