gh
GitHub CLI. GitHub 작업을 터미널에서 issue, PR, repo, Actions, API 호출까지 묶어서 처리한다.
Summary
- 최상위 진입점은
gh [command] [subcommand] [flags]이다. - 인증 후
repo,pr,issue,release,run,workflow,api계열을 일관된 문법으로 사용할 수 있다. - 자동화에서는 interactive login 대신
GH_TOKEN또는GITHUB_TOKEN환경 변수를 우선 사용하는 편이 안전하다. - 현재 공식 매뉴얼에는
agent-task와skill같은 신규 command group도 포함되어 있다.
Installation
macOS (Homebrew)
brew install gh
업데이트:
brew upgrade gh
Windows (WinGet)
winget install --id GitHub.cli --source winget
업데이트:
winget upgrade --id GitHub.cli --source winget
설치 프로그램이 PATH 를 변경하므로 Windows Terminal은 새 탭이 아니라 새 창으로 다시 열어야 한다.
Debian / Ubuntu (APT)
GitHub CLI maintainers가 관리하는 공식 APT repository를 등록한 뒤 설치한다.
(type -p wget >/dev/null || (sudo apt update && sudo apt install wget -y)) \ && sudo mkdir -p -m 755 /etc/apt/keyrings \ && out=$(mktemp) \ && wget -nv -O "$out" https://cli.github.com/packages/githubcli-archive-keyring.gpg \ && cat "$out" | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg >/dev/null \ && sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \ && sudo mkdir -p -m 755 /etc/apt/sources.list.d \ && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" \ | sudo tee /etc/apt/sources.list.d/github-cli.list >/dev/null \ && sudo apt update \ && sudo apt install gh -y
업데이트:
sudo apt update sudo apt install gh
RHEL / CentOS / Fedora (RPM)
GitHub CLI의 공식 RPM repository는 Red Hat Enterprise Linux, CentOS, Fedora를 지원한다. 먼저 시스템이 DNF5인지 DNF4인지 확인하고 해당 명령만 사용한다.
DNF5
sudo dnf install dnf5-plugins sudo dnf config-manager addrepo --from-repofile=https://cli.github.com/packages/rpm/gh-cli.repo sudo dnf install gh
DNF4
sudo dnf install 'dnf-command(config-manager)' sudo dnf config-manager --add-repo https://cli.github.com/packages/rpm/gh-cli.repo sudo dnf install gh
업데이트:
sudo dnf update gh
공식 Linux package와 repository metadata는 GitHub CLI signing key로 서명된다. 설치 중 key import 확인이 표시될 수 있으므로 공식 Linux 설치 문서의 최신 fingerprint와 대조한다. GitHub CLI team은 Snap 설치 방식을 권장하지 않는다.
Verification
gh --version gh auth login gh auth status
Usage
gh [command] [subcommand] [flags]
gh COMMAND [SUBCOMMAND] [FLAGS]gh auth login [flags]gh repo clone <repository> [directory] [– <gitflags>…]gh repo create [name] [flags]gh pr checkout [number|url|branch] [flags]gh pr create [flags]gh api <endpoint> [flags]
Options
Global Options
–version: 현재gh버전 출력
Core Command Groups
gh auth: GitHub host 인증, token 상태, git credential 연동gh repo: 저장소 생성, clone, view, fork, syncgh pr: PR 생성, 조회, checkout, merge, reviewgh issue: 이슈 생성, 목록, 조회, 코멘트, 상태 변경gh release: release 생성, asset 업로드, 다운로드gh run: GitHub Actions run 조회, watch, rerun, downloadgh workflow: Actions workflow 목록, 실행, enable, disablegh api: REST/GraphQL API 직접 호출gh browse: 현재 repo 또는 지정 대상 웹 열기gh search: repos, issues, prs, code 검색
Common Subcommand Options
gh auth login–web: 브라우저 기반 인증–with-token: stdin 으로 token 읽기–hostname HOST: GitHub Enterprise Server host 지정–git-protocol ssh|https: git transport 선택–skip-ssh-key: SSH key 생성/업로드 prompt 건너뛰기
gh repo clone–no-upstream: fork clone 시 upstream remote 추가 안 함–upstream-remote-name NAME: 기본 upstream remote 이름 변경
gh repo create–public,–private,–internal: visibility 지정–clone: 생성 직후 로컬 clone–source DIR: 기존 로컬 repo를 source 로 사용–push: 기존 local commit/refs push
gh pr checkout–branch NAME: 로컬 브랜치 이름 지정–detach: detached HEAD 로 checkout–force: 기존 로컬 브랜치를 PR 최신 상태로 재설정–recurse-submodules: checkout 후 submodule update
gh pr create–base BRANCH: 대상 base branch 지정–head USER:BRANCH: head repo/branch 명시–fill,–fill-first,–fill-verbose: commit 정보에서 title/body 채우기–draft: Draft PR 생성–web: 브라우저에서 PR 생성 페이지 열기
gh api–method GET|POST|PUT|PATCH|DELETE: HTTP method 지정–hostname HOST: 대상 GitHub host 지정–field key=value,–raw-field key=value: 요청 파라미터 추가–input FILE: request body 파일 또는 stdin–jq EXPR: jq 문법으로 필드 추출–template STRING: Go template 출력 포맷–paginate: 모든 페이지 순차 호출–preview NAME: preview API opt-in–cache DURATION: 응답 캐시
Examples
Authentication
자동화에서는
gh auth login 대신 GH_TOKEN 또는 GITHUB_TOKEN 을 사용하는 편이 안전하다. shell history에 token이 남을 수 있는 echo TOKEN | gh auth login –with-token 형태는 피하고, 파일 redirect 또는 CI secret env를 우선 사용한다.
# 대화형 로그인 gh auth login # 브라우저 기반 로그인 gh auth login --web --clipboard # 파일에서 token 읽어 로그인 gh auth login --with-token < mytoken.txt # GitHub Actions에서 gh 사용 export GH_TOKEN="$GITHUB_TOKEN" gh auth status
Repository Workflow
# 특정 org의 저장소 clone gh repo clone cli/cli # fork clone 후 upstream remote 생략 gh repo clone myfork --no-upstream # 새 public 저장소 생성 후 바로 clone gh repo create my-project --public --clone # 현재 디렉터리를 source로 사용해 private 저장소 생성 gh repo create my-project --private --source=. --push
Pull Request Workflow
# 최근 PR 중에서 선택하여 checkout gh pr checkout # 특정 PR checkout gh pr checkout 32 # URL로 PR checkout gh pr checkout https://github.com/OWNER/REPO/pull/32 # title/body를 지정해 PR 생성 gh pr create --title "Fix login race" --body "Serialize refresh token writes" # commit message를 기반으로 draft PR 생성 gh pr create --fill --draft # 브라우저에서 PR 작성 페이지 열기 gh pr create --web
API Calls
# 현재 저장소 release 목록 gh api repos/{owner}/{repo}/releases # issue title만 추출 gh api repos/{owner}/{repo}/issues --jq '.[].title' # GraphQL paginate gh api graphql --paginate -f query=' query($endCursor: String) { viewer { repositories(first: 100, after: $endCursor) { nodes { name } pageInfo { hasNextPage endCursor } } } }'
Config
Environment Variables
GH_TOKEN,GITHUB_TOKEN: 인증 token. headless/CI 환경에서 우선 사용GH_HOST: 기본 GitHub host 지정. GitHub Enterprise Server 작업 시 유용GH_REPO: 기본 대상 저장소를[HOST/]OWNER/REPO형식으로 지정GH_EDITOR,GIT_EDITOR,VISUAL,EDITOR: 편집기 우선순위GH_BROWSER,BROWSER: 링크 열기용 브라우저GH_PAGER,PAGER: 출력 pagerGLAMOUR_STYLE: Markdown 렌더링 스타일NO_COLOR,CLICOLOR,CLICOLOR_FORCE: ANSI color 제어GH_CONFIG_DIR: gh 설정 파일 저장 디렉터리GH_PROMPT_DISABLED: interactive prompt 비활성화
Help
Troubleshooting
gh: command not found: GitHub CLI가 설치되지 않은 환경이다. 패키지 매니저 또는 공식 release로 설치 후 다시 확인- 인증은 되었는데 권한 오류가 난다: PAT scope 또는 fine-grained token 권한 범위를 재확인. automation이라면
GH_TOKEN값과 대상 repo 권한 확인 gh repo clone이 기대와 다른 protocol을 쓴다:gh config get git_protocol로 현재 설정 확인 후gh auth login –git-protocol ssh또는https로 조정gh api호출이 POST로 바뀐다:–field또는–raw-field추가 시 기본 method가 POST로 전환될 수 있으므로 필요하면–method GET명시- GitHub Enterprise Server 대상이 잘못 간다:
–hostname또는GH_HOST설정 확인
Compatibility
- 로컬 이 작업 환경에서는
gh실행 파일이 없어 live help를 직접 캡처하지 못했다. - 이 페이지는 2026-06-29 기준 GitHub CLI 공식 manual 구조를 기준으로 작성했다.
- 공식 manual에는 비교적 최근 command group인
agent-task와skill이 포함되어 있다. 구버전gh에서는 보이지 않을 수 있다.
See Also
History
- codex:: 2026-07-19 Added official installation and update instructions for macOS, Windows, Debian/Ubuntu, and RHEL/CentOS/Fedora.
- codex:: 2026-06-29 Added the gh command page with auth, repo, PR, API, and environment variable guidance from the official manual.