GitLab Duo CLI (`duo`)
GitLab v19.2Offering: GitLab Self-Managed, GitLab Dedicated
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 19.0 릴리스 중 GitLab Duo CLI 8.88.0에서
/exit슬래시 명령어 도입됨. - GitLab 19.0 릴리스 중 GitLab Duo CLI 8.94.0에서
/doctor슬래시 명령어 도입됨. - GitLab 19.0 릴리스 중 GitLab Duo CLI 8.81.0에서
/skills슬래시 명령어 도입됨. - GitLab 19.0 릴리스 중 GitLab Duo CLI 8.95.0에서
/mcp슬래시 명령어 도입됨. - GitLab 19.0 릴리스 중 GitLab Duo CLI 8.90.0에서 설정 패널 도입됨.
- GitLab 19.0 릴리스 중 GitLab Duo CLI 8.95.0에서
AI_AGENT환경 변수 도입됨. - GitLab 19.1에서 패턴 기반 도구 승인이 도입됨.
- GitLab 19.1 릴리스 중 GitLab Duo CLI 8.105.0에서 시스템 알림 도입됨.
- GitLab 19.2에서 GitLab Duo CLI 9.0.0으로 일반 제공(GA)됨.
- 2026년 7월 10일에 패턴 기반 도구 승인이 제거됨.
GitLab Duo CLI는 GitLab Duo 에이전틱 Chat을 터미널로 가져오는 명령줄 인터페이스 도구입니다. 모든 운영 체제와 편집기에서 사용할 수 있으며, CLI를 사용하여 코드베이스에 대한 복잡한 질문을 하고 자율적으로 작업을 수행합니다.
GitLab Duo CLI는 다음에 도움을 줄 수 있습니다:
-
코드베이스 구조, 파일 간 기능 및 개별 코드 스니펫 이해.
-
코드 빌드, 수정, 리팩토링 및 현대화.
-
오류 트러블슈팅 및 코드 문제 수정.
-
CI/CD 구성 자동화, 파이프라인 오류 트러블슈팅, 파이프라인 최적화.
-
다단계 개발 작업 자율 수행.
GitLab Duo CLI가 이제 일반 제공됩니다. 완전한 일반 제공 경험을 위해 GitLab Duo CLI 9.0.0 이상으로 업데이트하세요.
GitLab Duo CLI는 두 가지 모드를 제공합니다:
-
인터랙티브 모드: GitLab UI 또는 편집기 확장 프로그램의 GitLab Duo Chat과 유사한 채팅 경험 제공. 빌드 및 플랜 모드 지원.
-
헤드리스 모드: 러너, 스크립트 및 기타 자동화 워크플로에서 비대화형 사용 가능.
또한 chat-rules.md, AGENTS.md, SKILL.md 파일 등 GitLab Duo Agent Platform에 설정된 사용자 정의 지침도 지원합니다.
사전 조건#
-
GitLab 19.2 이상.
GitLab 18.11에서 19.1을 사용 중인 경우 베타 및 실험 기능을 켜서 최신 버전의 GitLab Duo CLI를 사용할 수 있습니다.
GitLab Duo CLI 액세스 켜기 또는 끄기#
히스토리
- 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
인증#
처음 duo를 실행할 때 시스템에 glab이 이미 설치되어 인증된 경우 duo가 자동으로 glab을 자격 증명 헬퍼로 사용합니다. 별도로 인증할 필요가 없습니다. 이를 위해 glab 1.85.2 이상 및 duo 8.68.0 이상이 필요합니다.
이 기능이 제공되기 전에 duo를 인증했고 glab을 자격 증명 헬퍼로 사용하려면 ~/.gitlab/storage.json에서 인증 설정을 삭제하세요.
사전 조건:
api권한이 있는 개인 액세스 토큰.
인증하려면:
-
터미널에서
duo를 실행합니다. GitLab Duo CLI를 처음 실행하면 구성 화면이 나타납니다. -
GitLab Instance URL을 입력하고 Enter를 누릅니다:
GitLab.com의 경우
https://gitlab.com을 입력합니다.- GitLab Self-Managed 또는 GitLab Dedicated의 경우 인스턴스 URL을 입력합니다.
-
GitLab Token에 개인 액세스 토큰을 입력합니다.
-
저장하고 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 cli
duo
-
터미널 창에
>프롬프트가 나타납니다. 프롬프트 뒤에 질문 또는 요청을 입력하고 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가 작업을 실행하고 프로젝트를 변경할 수 있습니다. |
| 플랜 모드 | 읽기 전용 | 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 | 현재 프로젝트에서 사용 가능한 에이전트 스킬을 나열합니다. |
직접 슬래시 명령어를 만들 수도 있습니다. 자세한 내용은 사용자 정의 슬래시 명령어를 참조하세요.
설정#
설정을 변경하려면:
-
인터랙티브 모드에서
/settings를 입력하고 Enter를 누릅니다. -
화살표 키를 사용하여 설정 목록을 탐색합니다.
-
선택한 설정을 변경하려면 Enter 또는 Space를 누릅니다.
-
패널을 닫으려면 Escape를 누릅니다.
변경 사항은 세션 간에 유지됩니다.
다음 설정을 사용할 수 있습니다:
| 설정 | 설명 |
|---|---|
| Telemetry | GitLab Duo를 개선하기 위해 익명 사용 데이터를 전송합니다. |
| Enable global skills | (실험적) ~/.agents/skills/ 및 ~/.gitlab/duo/skills/에서 사용자 수준 에이전트 스킬을 검색합니다. 변경 사항을 적용하려면 다시 시작해야 합니다. |
| Notifications | 시스템 알림을 제어합니다(auto 또는 disabled). |
시스템 알림#
GitLab Duo CLI는 터미널 창에 포커스가 없는 동안 세션에 사용자의 주의가 필요할 때 (예: 작업을 완료하거나 도구 승인이 필요할 때) 시스템 알림을 보낼 수 있습니다.
알림은 설정 패널의 Notifications 설정으로 제어됩니다:
-
auto(기본값): 터미널에 포커스가 없을 때 시스템 알림을 보냅니다. -
disabled: 시스템 알림을 보내지 않습니다.
도구 승인#
GitLab Duo가 도구를 사용해야 할 때, 시작하기 전에 승인을 요청합니다. 예를 들어, 파일을 읽거나 명령을 실행해야 하는 경우입니다.
선택 옵션:
-
승인: GitLab Duo가 해당 도구를 한 번 사용할 수 있습니다.
-
세션에 대해 승인: 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_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 및 편집기 확장 프로그램에서 공유됩니다.
예를 들어 브라우저에서 대화를 시작하고 터미널에서 계속할 수 있습니다.
세션을 탐색하고 전환하려면:
-
인터랙티브 모드에서
/sessions를 입력하고 Enter를 누릅니다. -
화살표 키를 사용하여 사용 가능한 세션 목록을 스크롤하거나 텍스트를 입력하여 목록을 필터링합니다.
-
세션을 선택하고 Enter를 누릅니다.
헤드리스 모드에서 세션으로 전환하려면 --existing-session-id 옵션을 사용합니다.
Model Context Protocol (MCP) 연결#
GitLab Duo CLI를 로컬 또는 원격 MCP 서버에 연결하려면 GitLab IDE 확장 프로그램과 동일한 MCP 구성을 사용합니다. 지침은 MCP 서버 구성을 참조하세요.
Hooks#
Hooks를 사용하여 GitLab Duo CLI 수명 주기의 특정 시점에 사용자 정의 명령어를 실행할 수 있습니다.
예를 들어, 환경에 대한 정보를 수집하는 스크립트를 실행하여 모든 새 채팅 세션에 추가 컨텍스트를 주입할 수 있습니다.
GitLab Duo CLI는 두 가지 수준의 hooks를 지원합니다:
-
사용자 수준 (전역): 모든 프로젝트에 적용됩니다.
-
프로젝트 수준: 특정 프로젝트에만 적용됩니다. 프로젝트 수준 hooks는 체크아웃된 리포지터리에서 임의의 코드가 실행되는 것을 방지하기 위해 기본적으로 비활성화되어 있습니다.
사용자 수준 및 프로젝트 수준 hooks.json 파일이 모두 있는 경우 CLI는 hooks를 병합하고 사용자 수준 hooks를 먼저 실행합니다.
보안상의 이유로 민감한 환경 변수(GITLAB_TOKEN, GITLAB_OAUTH_TOKEN, CI_JOB_TOKEN)는 hook 프로세스에서 제외됩니다.
Hook 실행#
hook이 실행되면 GitLab Duo CLI는:
- 세션 메타데이터가 포함된 JSON 객체를 명령어의 표준 입력으로 전송합니다:
{
"session_id": "abc-123",
"cwd": "/path/to/project",
"transcript_path": "",
"hook_event_name": "SessionStart",
"source": "startup"
}
-
hook 프로세스에 대한 환경 변수
DUO_SESSION_ID및DUO_PROJECT_DIR을 설정합니다. -
세션에 대한 추가 컨텍스트로 명령어의 표준 출력을 수집합니다.
hook은 표준 출력에 일반 텍스트 또는 JSON 객체를 반환할 수 있습니다:
{
"hookSpecificOutput": {
"hookEventName": "SessionStart",
"additionalContext": "Your context string here"
}
}
hook이 0이 아닌 상태로 종료되거나 타임아웃되면 경고로 기록되지만 세션 시작을 차단하지 않습니다.
Hook 생성#
GitLab Duo CLI는 새 세션이 시작되거나 기존 세션이 재개될 때 실행되는 SessionStart 이벤트를 지원합니다.
hook을 생성하려면:
-
hooks.json파일을 생성합니다:사용자 수준 hook의 경우:
Linux 또는 macOS에서는
~/.gitlab/duo/hooks.json에 파일을 생성합니다.-
Windows에서는
%APPDATA%\GitLab\duo\hooks.json에 파일을 생성합니다. -
프로젝트 수준 hook의 경우 프로젝트 루트에 파일을 생성합니다:
<project>/.gitlab/duo/hooks.json.
-
-
파일에 hooks를 정의합니다.
hook을 트리거해야 하는 각
SessionStart이벤트 소스(startup또는resume)에 대해 매처 그룹을 생성합니다. -
각 매처 그룹에는 선택적 정규식
matcher값과 명령어 hooks 배열이 있습니다:필드 설명 matcher 선택 사항. 이벤트 소스에 대해 테스트된 정규식 (SessionStart의 경우 startup 또는 resume). 생략하면 모두 일치합니다. hooks[].type "command"여야 합니다. hooks[].command 실행할 셸 명령어. hooks[].timeout 선택 사항. 초 단위 타임아웃. 기본값: 30. -
예를 들어:
{ "hooks": { "SessionStart": [ { "matcher": "startup", "hooks": [ { "type": "command", "command": "cat ~/.my-coding-preferences.md", "timeout": 10 } ] } ] } } -
프로젝트 수준 hooks가 있는 경우 GitLab Duo CLI를 시작할 때 활성화합니다:
glab duo cli --enable-project-hooks
duo --enable-project-hooks
또는 환경 변수를 설정합니다:
export GITLAB_ENABLE_PROJECT_HOOKS=true
사용자 정의 슬래시 명령어#
히스토리
- GitLab 19.2 릴리스 중 GitLab Duo CLI 9.2.0에서 도입됨.
자주 사용하는 프롬프트에 대한 사용자 정의 슬래시 명령어를 만듭니다.
GitLab Duo CLI는 두 가지 수준의 사용자 정의 슬래시 명령어를 지원합니다:
-
사용자 수준: 모든 프로젝트에 적용됩니다.
-
프로젝트 수준: 특정 프로젝트에만 적용됩니다.
사용자 수준 명령어와 프로젝트 수준 명령어가 이름이 같은 경우 프로젝트 수준 명령어가 우선합니다. 사용자 정의 슬래시 명령어는 기본 제공 슬래시 명령어나 에이전트 스킬 슬래시 명령어를 재정의할 수 없습니다.
사용자 정의 슬래시 명령어 생성#
사용자 정의 슬래시 명령어를 생성하려면 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이 우선합니다. -
다른 AI 도구와 명령어를 공유하려면:
Linux 또는 macOS에서는
~/.agents/commands/에 디렉터리를 생성합니다.- Windows에서는
%USERPROFILE%\.agents\commands\에 디렉터리를 생성합니다.
- Windows에서는
-
-
-
디렉터리에 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: (실험적) 사용자 수준 에이전트 스킬 활성화. -
--enable-project-hooks: (실험적) 프로젝트 수준 hooks (.gitlab/duo/hooks.json) 로드 활성화. -
--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: (실험적) 사용자 수준 에이전트 스킬 활성화. -
GITLAB_ENABLE_PROJECT_HOOKS: (실험적) 프로젝트 수준 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=0
GitLab Duo CLI 업데이트#
GitLab Duo CLI를 최신 버전으로 수동 업데이트하려면 설정에 맞는 명령어를 실행합니다:
glab duo cli --update
npm install --global @gitlab/duo-cli@latest
GitLab Duo CLI에 기여#
GitLab Duo CLI에 기여하는 방법에 대한 정보는 개발 가이드를 참조하세요.