GitLab Duo CLI(duo)
- プラン: Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
- デフォルトLLM
- セルフホストモデル対応のGitLab Duoで利用可能
- GitLab 18.9で実験的機能として導入されました。
- GitLab 18.9リリースで、
glab1.87.0のGitLab CLIに実験的機能として追加されました。 - GitLab 18.10のリリース中に、GitLab Duo CLI 8.68.0でモデル選択オプションと環境変数が導入されました。
- GitLab 18.10のリリース中に、GitLab Duo CLI 8.76.0でモデル選択スラッシュコマンドが導入されました。
- GitLab 18.11で実験からベータに変更されました。
- 環境変数とユーザーレベルのAgent Skillsを有効にするオプションは、GitLab 19.0リリース中に、GitLab Duo CLI 8.83.0で実験として導入されました。
- セッション用のツール承認オプションが、GitLab 19.0で導入されました。
- GitLab Duo CLI 8.80.0で導入されました。
/exitスラッシュコマンドが、GitLab 19.0のリリースでGitLab Duo CLI 8.88.0に導入されました。/doctorスラッシュコマンドが、GitLab 19.0のリリースでGitLab Duo CLI 8.94.0に導入されました。/skillsスラッシュコマンドが、GitLab 19.0のリリースでGitLab Duo CLI 8.81.0に導入されました。/mcpスラッシュコマンドが、GitLab 19.0のリリースでGitLab Duo CLI 8.95.0に導入されました。- 設定パネルが、GitLab 19.0のリリースでGitLab Duo CLI 8.90.0に導入されました。
AI_AGENT環境変数が、GitLab 19.0のリリースでGitLab Duo CLI 8.95.0に導入されました。- パターンベースのツール承認が、GitLab 19.1で導入されました。
- GitLab Duo CLI 8.101.0で導入されました。
- システム通知が、GitLab 19.1のリリースでGitLab Duo CLI 8.105.0に導入されました。
- GitLab 19.2で、GitLab Duo CLI 9.0.0として一般提供が開始されました。
- パターンベースのツール承認は、2026年7月10日に削除されました。
- GitLab Duo CLI 9.3.0で削除されました。
GitLab Duo CLIは、ターミナルにGitLab Duo Agentic Chatをもたらすコマンドラインインターフェースツールです。どのオペレーティングシステムとエディタでも使用でき、CLIを使用してコードベースに関する複雑な質問をしたり、あなたの代わりに自律的にアクションを実行したりできます。
GitLab Duo CLIは、以下を支援します:
- コードベースの構造、複数ファイルにまたがる機能、個々のコードスニペットを理解する。
- コードを作成、変更、リファクタリング、モダナイズする。
- エラーのトラブルシューティングを行い、コードの問題を修正する。
- CI/CD設定を自動化し、パイプラインエラーのトラブルシューティングを行い、パイプラインを最適化する。
- 複数ステップの開発タスクを自律的に実行する。
GitLab Duo CLIは現在、一般提供されています。一般提供されている完全なエクスペリエンスを得るには、GitLab Duo CLI 9.0.0以降にアップデートしてください。
GitLab Duo CLIには、2つのモードがあります:
- インタラクティブモード: GitLab UIまたはエディタ拡張機能内のGitLab Duo Chatと同様のチャットエクスペリエンスを提供します。ビルドモードとプランモードをサポートします。
- ヘッドレスモード: Runner、スクリプト、その他の自動化されたワークフローで非インタラクティブに使用できます。
また、GitLab Duo Agent Platform用に設定されたカスタム指示もサポートしており、chat-rules.md、AGENTS.md、SKILL.mdファイルが含まれます。
前提条件
- GitLab 19.2以降。
- GitLab Duo Agent Platformの前提条件。
GitLab 18.11から19.1を使用している場合、ベータ版および実験的機能を有効にすることで、GitLab Duo CLIの最新バージョンを使用できます。
GitLab Duo CLIアクセスを有効または無効にする
- 提供形態: GitLab Self-Managed、GitLab Dedicated
- GitLab 19.2で導入されました。
デフォルトでは、GitLab Duo CLIアクセスは有効になっています。
GitLab Self-ManagedおよびGitLab Dedicatedでは、インスタンスのGitLab Duo CLIアクセスを有効または無効にできます。
前提条件:
- 管理者である必要があります。
- 右上隅で、管理者を選択します。
- 左側のサイドバーで、GitLab Duoを選択します。
- 設定の変更を選択します。
- GitLab Duo CLIの下で、GitLab Duo CLIアクセスを有効にするチェックボックスを選択またはクリアします。
- 変更を保存を選択します。
GitLab Duo CLIをセットアップする
GitLab CLI(glab)を介してGitLab Duo CLIを使用できます。GitLab CLIを使用すると、他のGitLab機能にアクセスでき、OAuthまたはパーソナルアクセストークンを使用して一度だけ認証する必要があります。
あるいは、GitLab Duo CLI(duo)をスタンドアロンのAIツールとしてインストールして使用し、パーソナルアクセストークンで個別に認証することもできます。
どちらのセットアップも、すべてのGitLab Duo CLIのオプション、コマンド、機能とともに、インタラクティブモードとヘッドレスモードをサポートしています。
GitLab CLIを使用する
前提条件:
- GitLab CLI 1.107.0以降。
- GitLab CLIは認証済みです。
GitLab CLIを介してGitLab Duo CLIを使用するようにセットアップするには:
GitLab Duo CLIに対して
glabコマンドを実行します:glab duo cliプロンプトに従ってGitLab Duo CLIバイナリをインストールします。
GitLab CLIは認証を自動的に処理するため、すぐにGitLab Duo CLIの使用を開始できます。
GitLab CLIなしで
GitLab Duo CLIをスタンドアロンツールとして使用するには、インストールしてから認証する必要があります。
インストール
GitLab Duo CLIをコンパイル済みバイナリとしてインストールするには、インストールスクリプトをダウンロードして実行します。
macOSおよびLinuxの場合:
bash <(curl --fail --silent --show-error --location "https://gitlab.com/gitlab-org/editor-extensions/gitlab-lsp/-/raw/main/packages/cli/scripts/install_duo_cli.sh")Windowsの場合:
irm "https://gitlab.com/gitlab-org/editor-extensions/gitlab-lsp/-/raw/main/packages/cli/scripts/install_duo_cli.ps1" | iex認証
glabがすでにインストールされており、システムでduoを最初に実行したときに認証されている場合、duoは自動的にglabをクレデンシャルヘルパーとして使用します。個別に認証する必要はありません。これにはglab 1.85.2以降とduo 8.68.0以降が必要です。
この機能が利用可能になる前にduoを認証済みで、代わりにglabを認証情報ヘルパーとして使用したい場合は、~/.gitlab/storage.jsonか認証設定を削除してください。
前提条件:
認証するには:
duoをターミナルで実行します。GitLab Duo CLIを最初に実行すると、設定画面が表示されます。- GitLab Instance URLを入力し、Enterを押します:
- GitLab.comの場合は、
https://gitlab.comを入力します。 - GitLab Self-ManagedまたはGitLab Dedicatedの場合は、インスタンスURLを入力します。
- GitLab.comの場合は、
- GitLabトークンに、パーソナルアクセストークンを入力します。
- CLIを保存して終了するには、Enterを押します。
- CLIを再起動するには、ターミナルで
duoを実行します。
初期設定後に設定を変更するには、duo config editを使用します。
環境変数で認証する
前提条件:
環境変数で認証するには:
GITLAB_TOKENまたはGITLAB_OAUTH_TOKENをパーソナルアクセストークンに設定します。export GITLAB_TOKEN="<your-personal-access-token>"オプション。
GITLAB_BASE_URLまたはGITLAB_URLをカスタムGitLabインスタンスURL(https://gitlab.example.comなど)に設定します。デフォルトはhttps://gitlab.comです。export GITLAB_BASE_URL="<your-instance-url>"
この方法は、インタラクティブな認証が不可能なヘッドレスモード、CI/CDパイプライン、スクリプト化されたワークフローに役立ちます。
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 | バグレポートまたは機能リクエストを送信します。 |
/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を発見します。変更を有効にするには再起動が必要です。 |
| 通知 | システム通知(autoまたはdisabled)を制御します。 |
システム通知
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 Duo CLIは、フックを2つのレベルでサポートしています:
- ユーザーレベル(グローバル): すべてのプロジェクトに適用されます。
- プロジェクトレベル: 特定のプロジェクトにのみ適用されます。プロジェクトレベルのフックは、チェックアウトされたリポジトリから任意のコードが実行されるのを防ぐため、デフォルトで無効になっています。
ユーザーレベルとプロジェクトレベルの両方のhooks.jsonファイルが存在する場合、CLIはフックをマージし、最初にユーザーレベルのものを実行します。
セキュリティ上の理由から、機密性の高い環境変数(GITLAB_TOKEN、GITLAB_OAUTH_TOKEN、CI_JOB_TOKEN)はフックプロセスから除外されます。
フックの実行
フックが実行されると、GitLab Duo CLIは次の処理を行います:
セッションメタデータとともにコマンドの標準入力にJSONオブジェクトを送信します:
{ "session_id": "abc-123", "cwd": "/path/to/project", "transcript_path": "", "hook_event_name": "SessionStart", "source": "startup" }フックプロセス用に環境変数
DUO_SESSION_IDとDUO_PROJECT_DIRを設定します。セッションの追加コンテキストとして、コマンドの標準出力を収集します。
フックは、標準出力でプレーンテキストまたはJSONオブジェクトを返すことができます:
{
"hookSpecificOutput": {
"hookEventName": "SessionStart",
"additionalContext": "Your context string here"
}
}発生したフックがゼロ以外のステータスで終了したり、タイムアウトしたりした場合、警告としてログに記録されますが、セッションの開始をブロックすることはありません。
フックを作成する
GitLab Duo CLIは、新しいセッションが開始または既存のセッションが再開されるときに実行されるSessionStartイベントをサポートしています。
フックを作成するには:
hooks.jsonファイルを作成します。- ユーザーレベルのフックの場合:
- LinuxまたはmacOSでは、
~/.gitlab/duo/hooks.jsonにファイルを作成します。 - Windowsでは、
%APPDATA%\GitLab\duo\hooks.jsonにファイルを作成します。
- LinuxまたはmacOSでは、
- プロジェクトレベルのフックの場合、プロジェクトのルートにファイルを作成します:
<project>/.gitlab/duo/hooks.json。
- ユーザーレベルのフックの場合:
ファイル内でフックを定義します。
フックをトリガーする各
SessionStartイベントソース(startupまたはresume)のマッチャーグループを作成します。各マッチャーグループには、オプションの正規表現
matcher値とコマンドフックの配列があります:フィールド 説明 matcherオプション。イベントソース( SessionStartの場合はstartupまたはresume)に対してテストされる正規表現。すべてに一致させるには省略します。hooks[].type"command"である必要があります。hooks[].command実行するShellコマンド。 hooks[].timeoutオプション。秒単位のタイムアウト。デフォルト: 30。 例:
{ "hooks": { "SessionStart": [ { "matcher": "startup", "hooks": [ { "type": "command", "command": "cat ~/.my-coding-preferences.md", "timeout": 10 } ] } ] } }
プロジェクトレベルのフックがある場合は、GitLab Duo CLIの起動時にそれらを有効にします:
glab duo cli --enable-project-hooksduo --enable-project-hooksまたは、環境変数を設定します:
export GITLAB_ENABLE_PROJECT_HOOKS=true
カスタムスラッシュコマンド
- GitLab 19.2リリースで、GitLab Duo CLI 9.2.0に導入されました。
頻繁に使用するプロンプトに対してカスタムスラッシュコマンドを作成します。
GitLab Duo CLIは、カスタムスラッシュコマンドを2つのレベルでサポートしています:
- ユーザーレベル: すべてのプロジェクトに適用されます。
- プロジェクトレベル: 特定のプロジェクトにのみ適用されます。
ユーザーレベルのコマンドとプロジェクトレベルのコマンドが同じ名前を共有する場合、プロジェクトレベルのコマンドが優先されます。カスタムスラッシュコマンドは、組み込みスラッシュコマンドまたはAgent Skillsスラッシュコマンドをオーバーライドできません。
カスタムスラッシュコマンドを作成する
カスタムスラッシュコマンドを作成するには、Markdownファイルを作成します。
ファイル名はコマンド名であり、ファイルの内容はプロンプトです。
たとえば、daily.mdという名前のファイルは、/dailyコマンドを作成します:
commandsディレクトリを作成します:- プロジェクトレベルのコマンドの場合、プロジェクトのルートにディレクトリを作成します:
<project>/.agents/commands/。 - ユーザーレベルのコマンドの場合、次のいずれかの場所を使用します:
- 他のGitLab Duoのカスタマイズファイルとともにコマンドを保持するには:
- LinuxまたはmacOSでは、
~/.gitlab/duo/commands/にディレクトリを作成します。 - Windowsでは、
%APPDATA%\GitLab\duo\commands\にディレクトリを作成します。 GLAB_CONFIG_DIRまたはXDG_CONFIG_HOMEを設定している場合、$GLAB_CONFIG_DIR/commands/または$XDG_CONFIG_HOME/gitlab/duo/commands/を使用します。両方が設定されている場合、GLAB_CONFIG_DIRが優先されます。
- LinuxまたはmacOSでは、
- 他のAIツールとコマンドを共有するには:
- LinuxまたはmacOSでは、
~/.agents/commands/にディレクトリを作成します。 - Windowsでは、
%USERPROFILE%\.agents\commands\にディレクトリを作成します。
- LinuxまたはmacOSでは、
- 他のGitLab Duoのカスタマイズファイルとともにコマンドを保持するには:
- プロジェクトレベルのコマンドの場合、プロジェクトのルートにディレクトリを作成します:
そのディレクトリにMarkdownファイルを作成します。ファイル名としてコマンド名を使用します。コマンド名は、文字または数字で始まり、文字、数字、ハイフン、アンダースコアのみを含めることができます。
ファイルにプロンプトを追加します。
オプション。ファイルの先頭にあるYAMLフロントマターに
descriptionフィールドを追加します。説明はスラッシュコマンドメニューのコマンドの隣に表示されます。たとえば、
daily.mdで定義された/dailyコマンド:--- description: Prepare a daily report --- Use `glab todo list` to fetch my open TODO items. Give me a concise morning report ranked by priority.GitLab Duo CLIを再起動します。CLIは、起動時にカスタムスラッシュコマンドを検出します。
カスタムスラッシュコマンドを使用する
インタラクティブモードで、プロンプトにスラッシュコマンドを入力し、Enterを押します。GitLab Duo CLIは、ファイルの内容をプロンプトとして送信します。
コマンド名の後に入力したテキストは、プロンプトの末尾に追加されます。
これを使用して、カスタムスラッシュコマンドの動作をカスタマイズします。
例: /daily prioritize my milestone deliverables。
参照
GitLab Duo CLIを起動または実行するときに、これらのオプション、コマンド、および環境変数を使用します。
詳細および最新のリストについては、GitLab Duo CLI参照を参照してください。
オプション
GitLab Duo CLIは、次のオプションをサポートしています:
-C, --cwd <path>: 作業ディレクトリを変更します。-h, --help: GitLab Duo CLIまたは特定のコマンドのヘルプを表示します。例:duo --help、duo run --help。--log-level <level>: ログレベルを設定します(debug、info、warn、error)。-v、--version: バージョン情報を表示します。--enable-global-skills: (実験的)ユーザーレベルのAgent Skillsを有効にします。--enable-project-hooks: (実験的機能)プロジェクトレベルのフックの読み込みを有効にします。--model <model>: セッションに使用するAIモデルを選択します。
ヘッドレスモードの追加オプション:
--ai-context-items <contextItems>: 参照用に追加するコンテキスト項目のJSONエンコード配列。--existing-session-id <sessionId>: 再開する既存セッションのID。--gitlab-auth-token <token>: GitLabインスタンスの認証トークン。--gitlab-base-url <url>: GitLabインスタンスのベースURL(デフォルト:https://gitlab.com)。
コマンド
各セットアップで以下のコマンドが利用可能です:
glab duo cli: インタラクティブモードを開始します。glab duo cli log: ログを表示および管理します。glab duo cli log last: 直近のログファイルを開きます。glab duo cli log list: すべてのログファイルを一覧表示します。glab duo cli log tail <args...>: 直近のログファイルの末尾を表示します。標準のtail引数をサポートします。glab duo cli log clear: 既存のログファイルをすべて削除します。
glab duo cli run: ヘッドレスモードを開始します。
duo: インタラクティブモードを開始します。duo config: 設定と認証設定を管理します。duo log: ログを表示および管理します。duo log last: 直近のログファイルを開きます。duo log list: すべてのログファイルを一覧表示します。duo log tail <args...>: 直近のログファイルの末尾を表示します。標準のtail引数をサポートします。duo log clear: 既存のログファイルをすべて削除します。
duo run: ヘッドレスモードを開始します。
環境変数
環境変数を使用してGitLab Duo CLIを設定できます:
DUO_WORKFLOW_GIT_HTTP_PASSWORD: Git HTTP認証パスワード。DUO_WORKFLOW_GIT_HTTP_USER: Git HTTP認証ユーザー名。GITLAB_BASE_URLまたはGITLAB_URL: GitLabインスタンスのURL。GITLAB_DUO_MODEL: セッションに使用するAIモデル。GITLAB_ENABLE_GLOBAL_SKILLS: (実験的)ユーザーレベルのAgent Skillsを有効にします。GITLAB_ENABLE_PROJECT_HOOKS: (実験的機能)プロジェクトレベルのフックの読み込みを有効にします。GITLAB_OAUTH_TOKENまたはGITLAB_TOKEN: 認証トークン。LOG_LEVEL: ログレベル。
GitLab Duo CLIがユーザーに代わってコマンドを実行すると、そのプロセスにAI_AGENT環境変数が設定されます。スクリプトとツールはAI_AGENTを読み取って、AI駆動型実行で実行されていることを検出できます。
プロキシとカスタム証明書の設定
ネットワークでHTTPSインターセプトプロキシを使用している場合、またはカスタムSSL証明書が必要な場合は、追加の設定が必要になることがあります。
プロキシ設定
GitLab Duo CLIは、標準のプロキシ環境変数に対応しています:
HTTP_PROXYまたはhttp_proxy: HTTPリクエスト用のプロキシURL。HTTPS_PROXYまたはhttps_proxy: HTTPSリクエスト用のプロキシURL。NO_PROXYまたはno_proxy: プロキシ経由から除外するホストのカンマ区切りリスト。
カスタムSSL証明書
組織でHTTPSインターセプトプロキシなどのためにカスタム認証局(CA)を使用している場合、証明書エラーが発生することがあります。
Error: unable to verify the first certificate
Error: self-signed certificate in certificate chain証明書エラーを解決するには、次のいずれかの方法を使用します:
システム証明書ストアを使用する(推奨):
- 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=0GitLab Duo CLIを更新する
GitLab Duo CLIを最新バージョンに手動で更新するには、セットアップに応じたコマンドを実行します:
glab duo cli --updatenpm install --global @gitlab/duo-cli@latestGitLab Duo CLIにコントリビュートする
GitLab Duo CLIへのコントリビュートについては、開発ガイドを参照してください。
関連トピック
- エディタ拡張機能のセキュリティに関する考慮事項
- GitLab Duo CLI参照
- GitLab CLI
- GitLab Duo Agent Platformをカスタマイズする
- GitLab Duo Agent Platformセッション