GitLab Duo CLI (`duo`)
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
GitLab Duo CLI는 GitLab Duo CLI 8.80.0에서 도입되었습니다. GitLab Duo CLI는 GitLab Duo 에이전틱 Chat을 터미널로 가져오는 명령줄 인터페이스 도구입니다. GitLab Duo CLI는 다음에 도움을 줄 수 있습니다:
Model information
- Default LLM
- Available on GitLab Duo with self-hosted models
히스토리
- 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에서 실험에서 베타로 변경됨.
- GitLab 19.0 릴리스 중 GitLab Duo CLI 8.83.0에서 사용자 수준 에이전트 스킬을 활성화하는 환경 변수 및 옵션이 실험으로 도입됨.
- GitLab 19.0에서 세션 승인 도구 옵션이 도입됨.
GitLab Duo CLI는 GitLab Duo CLI 8.80.0에서 도입되었습니다.
GitLab Duo CLI는 GitLab Duo 에이전틱 Chat을 터미널로 가져오는 명령줄 인터페이스 도구입니다. 모든 운영 체제와 편집기에서 사용할 수 있으며, CLI를 사용하여 코드베이스에 대한 복잡한 질문을 하고 자율적으로 작업을 수행합니다. 빌드 및 플랜 모드를 지원합니다.
GitLab Duo CLI는 다음에 도움을 줄 수 있습니다:
- 코드베이스 구조, 파일 간 기능 및 개별 코드 스니펫 이해.
- 코드 빌드, 수정, 리팩터링 및 현대화.
- 오류 트러블슈팅 및 코드 문제 수정.
- CI/CD 구성 자동화, 파이프라인 오류 트러블슈팅, 파이프라인 최적화.
- 다단계 개발 작업 자율 수행.
GitLab Duo Agent Platform에 설정된 사용자 정의 지침(chat-rules.md, AGENTS.md, SKILL.md 파일 포함)도 지원합니다.
GitLab Duo CLI는 두 가지 모드를 제공합니다:
- 인터랙티브 모드: GitLab UI 또는 편집기 확장 프로그램의 GitLab Duo Chat과 유사한 채팅 경험 제공.
- 헤드리스 모드: 러너, 스크립트 및 기타 자동화 워크플로우에서 비대화형 사용 가능.
사전 조건#
- GitLab 18.11 이상.
- GitLab Duo Agent Platform 사전 조건을 충족해야 합니다.
- 베타 및 실험 기능이 켜져 있어야 합니다.
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.87.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를 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
인증#
처음 duo를 실행할 때 시스템에 glab이 이미 설치되어 인증된 경우 duo가 자동으로 glab을 자격 증명 헬퍼로 사용합니다. 별도로 인증할 필요가 없습니다. 이를 위해 glab 1.85.2 이상 및 duo 8.68.0 이상이 필요합니다.
이 기능이 제공되기 전에 duo를 인증했고 glab을 자격 증명 헬퍼로 사용하려면 ~/.gitlab/storage.json에서 인증 설정을 삭제하세요.
사전 조건:
api권한이 있는 개인 액세스 토큰.
인증하려면:
- 터미널에서
duo를 실행합니다. GitLab Duo CLI를 처음 실행하면 구성 화면이 나타납니다. - GitLab 인스턴스 URL을 입력하고 Enter를 누릅니다:
- GitLab.com의 경우
https://gitlab.com을 입력합니다. - GitLab Self-Managed 또는 GitLab Dedicated의 경우 인스턴스 URL을 입력합니다.
- GitLab.com의 경우
- GitLab 토큰에 개인 액세스 토큰을 입력합니다.
- 저장하고 CLI를 종료하려면 Enter를 누릅니다.
- CLI를 다시 시작하려면 터미널에서
duo를 실행합니다.
초기 설정 후 구성을 수정하려면 duo config edit를 사용합니다.
환경 변수로 인증#
사전 조건:
api권한이 있는 개인 액세스 토큰.
환경 변수로 인증하려면:
-
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가 도구를 사용해야 할 때, 시작하기 전에 승인을 요청합니다. 예를 들어, 파일을 읽거나 명령을 실행해야 하는 경우입니다.
선택 옵션:
-
승인: GitLab Duo가 해당 도구를 한 번 사용할 수 있습니다.
-
세션에 대해 승인: GitLab Duo가 이 인수로 세션 동안 해당 도구를 사용할 수 있습니다. 다른 인수는 추가 승인이 필요합니다.
-
거부: GitLab Duo가 해당 도구를 사용할 수 없습니다.
세션에 대해 승인 옵션을 사용하려면 관리자가 그룹 또는 인스턴스에 대해 이를 켜야 합니다. 자세한 내용은 도구 승인을 참조하세요.
헤드리스 모드#
Warning헤드리스 모드는 주의해서 제어된 샌드박스 환경에서 사용하세요.
비대화형 모드에서 워크플로우를 실행하려면 설정에 맞는 명령어를 사용합니다:
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가 작동하는 동안 응답을 취소하려면 Escape를 누릅니다. GitLab Duo CLI가 현재 작업을 중지하고 프롬프트로 돌아갑니다.
세션 전환#
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는 다음 옵션을 지원합니다:
-C, --cwd <path>: 작업 디렉토리 변경.-h, --help: GitLab Duo CLI 또는 특정 명령어에 대한 도움말 표시. 예:duo --help또는duo run --help.--log-level <level>: 로깅 수준 설정 (debug,info,warn,error).-v,--version: 버전 정보 표시.--model <model>: 세션에 사용할 AI 모델 선택.--enable-global-skills: (실험적) 사용자 수준 에이전트 스킬 활성화.
헤드리스 모드에 대한 추가 옵션:
--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: (실험적) 사용자 수준 에이전트 스킬 활성화.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
인증서 오류 무시#
여전히 인증서 오류가 발생하면 인증서 확인을 비활성화할 수 있습니다.
Warning인증서 확인을 비활성화하는 것은 보안 위험입니다. 프로덕션 환경에서는 확인을 비활성화해서는 안 됩니다.
인증서 오류는 잠재적인 보안 위반을 알려주므로 안전하다고 확신할 때만 인증서 확인을 비활성화해야 합니다.
사전 조건:
- 브라우저에서 인증서 체인을 확인했거나 관리자가 이 오류를 무시해도 안전하다고 확인했습니다.
인증서 확인을 비활성화하려면:
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에 기여하는 방법에 대한 정보는 개발 가이드를 참조하세요.
관련 주제#
-
