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がインストールされ、セットアップされていること。
- デフォルトのGitLab Duoネームスペースが設定されているか、GitLab Duoにアクセスできるオープンなプロジェクト。
インタラクティブモード
GitLab Duo CLIをインタラクティブモードで使用するには:
セットアップに応じて、インタラクティブモードを開始するコマンドを入力します:
glab duo cliduoターミナルウィンドウにプロンプト
>が表示されます。プロンプトの後に質問またはリクエストを入力し、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を次の2つのモードに切り替えることができます:
| モード | 権限 | 仕組み |
|---|---|---|
| ビルドモード(デフォルト) | 読み取り/書き込み | GitLab Duoはタスクを実行し、プロジェクトに変更を加えることができます。 |
| プランモード | 読み取り専用 | GitLab Duoは、変更を加えることなくプロジェクトを分析し、プランを作成できます。 |
たとえば、最初にプランモードでGitLab Duoと問題について検討します。準備ができたらビルドモードに切り替え、プランを実装するようにGitLab Duoに指示します。
GitLab Duo CLIでは、現在のモードが>プロンプトの下に表示します。モードを切り替えるには、Tabを押します。
スラッシュコマンド
インタラクティブモードでは、スラッシュコマンドを使用してGitLab Duo CLIを設定したり、アクションを実行したりできます。プロンプトにスラッシュコマンドを入力し、Enterを押します。
次のスラッシュコマンドを使用できます:
| コマンド | 説明 |
|---|---|
/copy | GitLab Duoの最後のレスポンスをクリップボードにコピーします。 |
/doctor | GitLab Duo CLI環境の診断情報を表示します。 |
/exit | GitLab Duo CLIを終了します。 |
/feedback | バグレポートまたは機能リクエストを送信します。 |
/goal | 目標達成に向けたセッションを開始します。 |
/help | 利用可能なスラッシュコマンドのリストを表示します。 |
/mcp | 設定済みのMCPサーバーとそのステータスを表示します。 |
/model | 現在のセッションで使用するAIモデルを切り替えます。 |
/new | 新しいチャットセッションを開始します。 |
/sessions | セッションを参照、検索、切り替えます。 |
/settings | 設定パネルを開きます。 |
/skills | 現在のプロジェクトで利用可能なAgent Skillsを一覧表示します。 |
独自のスラッシュコマンドを作成することもできます。詳細については、カスタムスラッシュコマンドを参照してください。
設定
設定を変更するには:
- インタラクティブモードで
/settingsと入力し、Enterを押します。 - 矢印キーを使用して、設定のリスト内を移動します。
- 選択した設定を変更するには、EnterまたはSpaceを押します。
- パネルを閉じるには、Escapeを押します。
変更内容はセッション間で保持されます。
次の設定を使用できます:
| 設定 | 説明 |
|---|---|
| Telemetry | GitLab Duoの改善に役立てるため、匿名の使用状況データを送信します。 |
| Enable global skills | (実験的機能)~/.agents/skills/と~/.gitlab/duo/skills/からユーザーレベルのAgent Skillsを検出します。変更を有効にするには再起動が必要です。 |
| Notifications | システム通知(autoまたはdisabled)を制御します。 |
| セッション開始時に作業アイテムを表示 | 新しいセッションを開始すると、開いている作業アイテムが表示されます。 |
| 提案されたプロンプトを/goalセッションとして実行 | 提案されたプロンプトを、通常のチャットメッセージではなく/goalセッションとして実行します。変更を有効にするには再起動が必要です。 |
| テーマ | テーマ設定を変更します。オプションには、auto、dark、light、dark high contrast、およびlight high contrastがあります。 |
システム通知
ターミナルウィンドウがフォーカスされていないときにセッションでユーザーの確認や対応が必要になると(たとえば、タスクが完了した場合や、ツールの承認が必要な場合)、GitLab Duo CLIはシステム通知を送信できます。
通知は、設定パネルにある通知設定によって制御されます:
auto(デフォルト): ターミナルがフォーカスされていない場合に、システム通知を送信します。disabled: システム通知を送信しません。
ツールの承認
GitLab Duoがツールを使用する必要がある場合、使用を開始する前に承認を求めるプロンプトが表示されます。たとえば、ファイルを読み取る場合やコマンドを実行する場合などです。
次のオプションがあります:
- 承認: GitLab Duoはツールを1回使用できます。
- セッションで承認: GitLab Duoは、セッションの残りの期間、指定された引数でツールを使用できます。別の引数を使用する場合は、追加の承認が必要です。
- 拒否: GitLab Duoはツールを使用できません。
セッションで承認オプションを使用するには、管理者がグループまたはインスタンスでこのオプションを有効にする必要があります。詳細については、ツールの承認を参照してください。
ヘッドレスモード
ヘッドレスモードは、制御されたサンドボックス環境で注意して使用してください。
非インタラクティブモードでワークフローを実行するには、セットアップに応じたコマンドを使用します:
glab duo cli runを使用します:
glab duo cli run --goal "Your goal or prompt here"たとえば、ESLintコマンドを実行し、エラーをGitLab Duo CLIに渡して解決させることができます:
glab duo cli run --goal "Fix these errors: $eslint_output"duo runを使用します:
duo run --goal "Your goal or prompt here"たとえば、ESLintコマンドを実行し、エラーをGitLab Duo CLIに渡して解決させることができます:
duo run --goal "Fix these errors: $eslint_output"ヘッドレスモードを使用すると、GitLab Duo CLIは次のように動作します:
- 手動によるツール承認をバイパスし、すべてのツールの使用を自動的に承認します。
- 以前の会話からのコンテキストを保持しません。
runコマンドを実行するたびに、新しいワークフローが開始されます。
モデルを選択する
インタラクティブモードまたはヘッドレスモードで使用するモデルを選択できます。
インタラクティブモードの場合
選択したモデルはセッション間で保持され、コンテキストを失うことなく、会話の途中でモデルを切り替えることができます。
前提条件:
- GitLab Duo CLI 8.76.0以降。
インタラクティブモードでモデルを選択するには:
- インタラクティブモードで
/modelと入力し、Enterを押します。 - 矢印キーを使用して利用可能なモデルのリストをスクロールするか、モデル名を入力してリストを絞り込みます。
- モデルを選択し、Enterを押してそのモデルに切り替えます。
ヘッドレスモードの場合
選択したモデルはセッション間で保持されません。
前提条件:
- GitLab Duo CLI 8.68.0以降。
ヘッドレスモードでモデルを選択するには:
モデルの
gitlab_identifierを確認します。GitLab Duo CLIを実行するときに、
--modelオプションまたはGITLAB_DUO_MODEL環境変数をgitlab_identifierの値に設定します。--modelオプションを使用します:glab duo cli --model <gitlab_identifier_for_the_model>GITLAB_DUO_MODEL環境変数を使用します:GITLAB_DUO_MODEL=<gitlab_identifier_for_the_model> glab duo cliたとえば、
GPT-5-Codex - OpenAIを使用するには:glab duo cli --model gpt_5_codexGITLAB_DUO_MODEL=gpt_5_codex glab duo cli--modelオプションを使用します:duo --model <gitlab_identifier_for_the_model>GITLAB_DUO_MODEL環境変数を使用します:GITLAB_DUO_MODEL=<gitlab_identifier_for_the_model> duoたとえば、
GPT-5-Codex - OpenAIを使用するには:duo --model gpt_5_codexGITLAB_DUO_MODEL=gpt_5_codex duo
セッションを切り替える
GitLab Duo Chatセッションには、会話履歴とワークフローのデータが保存されます。セッションは、GitLab Duo CLI、GitLab UI、およびエディタ拡張機能で共有されます。
たとえば、ブラウザで会話を開始し、ターミナルでその会話を続けることができます。
セッションを参照して切り替えるには:
- インタラクティブモードで
/sessionsと入力し、Enterを押します。 - 矢印キーを使用して利用可能なセッションのリストをスクロールするか、テキストを入力してリストを絞り込みます。
- セッションを選択し、Enterを押します。
ヘッドレスモードでセッションを切り替えるには、--existing-session-idオプションを使用します。
Model Context Protocol(MCP)接続
GitLab Duo CLIをローカルまたはリモートのMCPサーバーに接続するには、GitLab IDE拡張機能と同じMCP設定を使用します。手順については、MCPサーバーを設定するを参照してください。
関連トピック
- GitLab Duo CLI完全参照
- エディタ拡張機能のセキュリティに関する考慮事項
- GitLab CLI
- GitLab Duo Agent Platformをカスタマイズする
- GitLab Duo Agent Platformセッション
トラブルシューティング
GitLab Duo CLIを使用する際、次の問題に遭遇する可能性があります。
証明書エラー
証明書エラーが発生する可能性があります:
Error: unable to verify the first certificate
Error: self-signed certificate in certificate chainこれらのエラーは、組織がHTTPS傍受プロキシなどでカスタム認証局(CA)を使用している場合に発生します。
証明書エラーを解決するには、次のいずれかの方法を使用します:
システム証明書ストアを使用する(推奨):
CA証明書がオペレーティングシステムの証明書ストアにインストールされている場合は、それを使用するようにNode.jsを設定します。これにはNode.js 22.15.0、23.9.0、または24.0.0以降が必要です。
GitLab Duo CLIをコンテナ内で実行する場合は、ホストシステムのストアではなく、コンテナのシステムストアにCA証明書をインストールします。
export NODE_OPTIONS="--use-system-ca"
CA証明書ファイルを指定する:
古いバージョンのNode.jsを使用している場合、またはCA証明書がシステムストアにない場合は、Node.jsに証明書ファイルを直接指定します。ファイルはPEM形式である必要があります。
GitLab Duo CLIをコンテナで実行する場合は、コンテナ内の場所を指すパスを設定します。証明書ファイルを提供するには、ボリュームマウントを使用します。
export NODE_EXTRA_CA_CERTS=/path/to/custom-ca.pem
証明書エラーを無視する
証明書エラーが引き続き発生する場合は、証明書の検証を無効にできます。
証明書の検証を無効にすることはセキュリティ上のリスクとなります。本番環境で検証を無効にしないでください。
証明書エラーは潜在的なセキュリティ漏洩を警告するため、検証の無効化が安全であると確信できる場合にのみ、証明書の検証を無効にしてください。
前提条件:
- ブラウザで証明書チェーンを検証した、または管理者がこのエラーを無視しても安全であることを確認した。
証明書の検証を無効にするには:
export NODE_TLS_REJECT_UNAUTHORIZED=0