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

GitLab Duo CLI(duo

  • プラン: Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
  • ステータス: ベータ版

GitLab Duo CLIは、ターミナルにGitLab Duo Agentic Chatをもたらすコマンドラインインターフェースツールです。どのオペレーティングシステムとエディタでも使用でき、CLIを使用してコードベースに関する複雑な質問をしたり、あなたの代わりに自律的にアクションを実行したりできます。

GitLab Duo CLIは、以下を支援します:

  • コードベースの構造、複数ファイルにまたがる機能、個々のコードスニペットを理解する。
  • コードを作成、変更、リファクタリング、モダナイズする。
  • エラーのトラブルシューティングを行い、コードの問題を修正する。
  • CI/CD設定を自動化し、パイプラインエラーのトラブルシューティングを行い、パイプラインを最適化する。
  • 複数ステップの開発タスクを自律的に実行する。

GitLab Duo CLIには、2つのモードがあります:

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

また、GitLab Duo Agent Platform用に設定されたカスタム指示もサポートしており、chat-rules.mdAGENTS.mdSKILL.mdファイルが含まれます。

前提条件

GitLab Duo CLIをセットアップする

GitLab CLIglab)を介してGitLab Duo CLIを使用できます。GitLab CLIを使用すると、他のGitLab機能にアクセスでき、OAuthまたはパーソナルアクセストークンを使用して一度だけ認証する必要があります。

あるいは、GitLab Duo CLI(duo)をスタンドアロンのAIツールとしてインストールして使用し、パーソナルアクセストークンで個別に認証することもできます。

どちらのセットアップも、すべてのGitLab Duo CLIのオプション、コマンド、機能とともに、インタラクティブモードとヘッドレスモードをサポートしています。

GitLab CLIを使用する

前提条件:

GitLab CLIを介してGitLab Duo CLIを使用するようにセットアップするには:

  1. GitLab Duo CLIに対してglabコマンドを実行します:

    glab duo cli
  2. プロンプトに従ってGitLab Duo CLIバイナリをインストールします。

GitLab CLIは認証を自動的に処理するため、すぐにGitLab Duo CLIの使用を開始できます。

GitLab CLIなしで

GitLab Duo CLIをスタンドアロンツールとして使用するには、インストールしてから認証する必要があります。

インストール

GitLab Duo CLIをNPMパッケージまたはコンパイル済みバイナリとしてインストールします。

前提条件:

  • Node.js 22以降。
  • 自己署名証明書を使用するGitLab Self-Managedの場合、次のいずれか:
    • Node.js LTS 22.20.0以降
    • Node.js 23.8.0以降

GitLab Duo CLIをnpmパッケージとしてインストールするには、次を実行します:

npm install --global @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を実行したときに認証済みの場合、duoglabを認証情報ヘルパーとして自動的に使用します。個別に認証する必要はありません。これにはglab 1.85.2以降とduo 8.68.0以降が必要です。

この機能が利用可能になる前にduoを認証済みで、代わりにglabを認証情報ヘルパーとして使用したい場合は、~/.gitlab/storage.jsonか認証設定を削除してください。

前提条件:

認証するには:

  1. duoをターミナルで実行します。GitLab Duo CLIを最初に実行すると、設定画面が表示されます。
  2. GitLab Instance URLを入力し、Enterを押します:
    • GitLab.comの場合は、https://gitlab.comを入力します。
    • GitLab Self-ManagedまたはGitLab Dedicatedの場合は、インスタンスURLを入力します。
  3. GitLabトークンに、パーソナルアクセストークンを入力します。
  4. CLIを保存して終了するには、Enterを押します。
  5. CLIを再起動するには、ターミナルでduoを実行します。

初期設定後に設定を変更するには、duo config editを使用します。

環境変数で認証する

前提条件:

環境変数で認証するには:

  1. GITLAB_TOKENまたはGITLAB_OAUTH_TOKENをパーソナルアクセストークンに設定します。

    export GITLAB_TOKEN="<your-personal-access-token>"
  2. オプション。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 CLIをインタラクティブモードで使用するには:

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

    glab duo cli
    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を2つのモードで切り替えることができます:

モード権限仕組み
ビルドモード(デフォルト)読み取り/書き込みGitLab Duoはタスクを実行し、プロジェクトに変更を加えることができます。
プランモード読み取り専用GitLab Duoは、変更を加えることなくプロジェクトを分析し、プランを作成できます。

たとえば、プランモードでGitLab Duoと問題について議論することから始めます。準備ができたら、ビルドモードに切り替えて、GitLab Duoにプランを実行するように指示します。

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

スラッシュコマンド

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

以下のスラッシュコマンドが利用可能です:

コマンド説明
/copy最後のGitLab Duoの応答をクリップボードにコピーします。
/feedbackバグレポートまたは機能リクエストを送信します。
/help利用可能なスラッシュコマンドのリストを表示します。
/model現在のセッションのAIモデルを切り替えます。
/new新しいチャットセッションを開始します。
/sessionsセッションを参照、検索、切り替えます。

ヘッドレスモード

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

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

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以降。

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

  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オプションを使用します:

    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_codex
    GITLAB_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_codex
    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は、次のオプションをサポートしています:

  • -C, --cwd <path>: 作業ディレクトリを変更します。
  • -h, --help: GitLab Duo CLIまたは特定のコマンドのヘルプを表示します。例: duo --helpduo run --help
  • --log-level <level>: ログレベルを設定します(debuginfowarnerror)。
  • -v--version: バージョン情報を表示します。
  • --enable-global-skills: (実験的)ユーザーレベルのAgent Skillsを有効にします。
  • --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_OAUTH_TOKENまたはGITLAB_TOKEN: 認証トークン。
  • LOG_LEVEL: ログレベル。

プロキシとカスタム証明書の設定

ネットワークで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=0

GitLab Duo CLIを更新する

GitLab Duo CLIを最新バージョンに手動で更新するには、セットアップに応じたコマンドを実行します:

glab duo cli --update
npm install --global @gitlab/duo-cli@latest

GitLab Duo CLIにコントリビュートする

GitLab Duo CLIへのコントリビュートについては、開発ガイドを参照してください。