Skip to content

Releases: cli/cli

GitHub CLI 2.100.0

Choose a tag to compare

@github-actions github-actions released this 03 Sep 15:43
Immutable release. Only release title and notes can be modified.
45437bc

Experimental: Route GitHub API traffic through a custom host

Organizations can now route a GitHub host's API traffic through a gateway using the new per-host api_host configuration:

# Route API traffic for github.com through a gateway
gh config set api_host gh-gateway.example.com --host github.com

# Read the configured API host
gh config get api_host --host github.com

The original host remains in use for authentication, Git remotes, and browser URLs.

Note

api_host is experimental and is not a security boundary. Requests may still reach the original host.

What's Changed

✨ Features

🐛 Fixes

  • fix(api): disable telemetry for unauthenticated GHES requests using absolute hostnames by @williammartin in #14337

📚 Docs & Chores

:dependabot: Dependencies

  • chore(deps): bump golang.org/x/crypto from 0.55.0 to 0.56.0 by @babakks in #14331
  • chore(deps): bump Go toolchain from 1.26.7 to 1.26.8 by @babakks in #14330
  • chore(deps): bump github.com/cli/go-gh/v2 from 2.15.0 to 2.16.0 by @williammartin in #14338

Full Changelog: v2.99.0...v2.100.0

GitHub CLI 2.99.0

Choose a tag to compare

@github-actions github-actions released this 01 Sep 20:25
Immutable release. Only release title and notes can be modified.
d528f20

Attach images and videos to issues and pull requests

The repeatable --attach flag uploads local images and videos and adds them to issue, pull request, or comment bodies. If a body already references the local path, gh replaces it with the uploaded URL; otherwise it appends the attachment:

# Attach files when creating or editing an issue
gh issue create --attach './repro.png#The error state'
gh issue edit 123 --attach ./walkthrough.mp4

# Attach files when creating or editing a pull request
gh pr create --attach ./before.png
gh pr edit 456 --attach ./after.png

# Attach files to comments
gh issue comment 123 --attach ./repro.png
gh pr comment 456 --attach ./result.mp4

Repeat the flag to attach multiple files in a single invocation. Attachments are available on GitHub.com and GitHub Enterprise Cloud.

For more information see https://gh.io/gh-attach and https://github.blog/changelog/2026-09-01-github-cli-media-in-issues-pull-requests-and-comments/

Worktree support extended to gh issue develop

gh issue develop can now create a linked branch and check it out in a new Git worktree, leaving your current working copy unchanged:

# Create a linked branch for an issue and check it out in a worktree
gh issue develop 123 --checkout --worktree /path/to/wt-feature

What's Changed

✨ Features

  • Add token and repository metadata required for attachment uploads by @BagToad in #14177
  • Add validation for attachable image and video files by @BagToad in #14178
  • Rewrite local Markdown references to uploaded attachment URLs by @BagToad in #14179
  • Add attachment uploads to GitHub by @BagToad in #14180
  • Add repeatable --attach flag parsing and upload orchestration by @BagToad in #14181
  • Add --attach to gh pr comment and gh issue comment by @BagToad in #14182
  • Add --attach to gh pr create and gh pr edit by @BagToad in #14183
  • Add --attach to gh issue create and gh issue edit by @BagToad in #14184
  • Add worktree checkout to gh issue develop by @sergiou87 in #14136
  • Use text-only spinner output when gh is invoked by a coding agent by @niik in #14191
  • Honor PI_CODING_AGENT_DIR for Pi user skills by @tommaso-moro in #14260

🐛 Fixes

  • fix(repo sync): explain when the target branch is checked out in another worktree by @williammartin in #14076
  • fix(pr merge): safely handle --delete-branch with linked worktrees by @tidy-dev in #14007
  • fix(copilot): end the declined-install warning with a newline by @BagToad in #14222
  • fix(attach): clarify retry windows and attachment path resolution by @BagToad in #14262
  • fix(issue develop): reject non-empty worktree targets before creating a branch by @tidy-dev in #14244
  • fix(repo sync): prevent linked-worktree corruption by @sergiou87 in #14060
  • fix(view): reject --comments with --json by @BagToad in #14215
  • fix(attach): limit batches to 50 files by @BagToad in #14289
  • fix(skills): install Codex user skills to ~/.agents/skills by @scarletkc in #14154

📚 Docs & Chores

:dependabot: Dependencies

New Contributors

Full Changelog: v2.98.0...v2.99.0

GitHub CLI 2.98.0

Choose a tag to compare

@github-actions github-actions released this 20 Aug 22:15
Immutable release. Only release title and notes can be modified.
a255baf

Security

A security vulnerability has been identified, and fixed, that binds the local forwarded port to all available network interfaces by default.

Users of gh codespace ports forward are advised to update gh to version v2.98.0 as soon as possible.

For more information see: GHSA-vfhh-p7hm-pxfh

Support worktrees in pr checkout

Users can now checkout a pull request into a git worktree by using the new --worktree PATH flag in gh pr checkout:

gh pr checkout 12 --worktree ../wt-feature

Add semantic search to search issues

The gh search issues command now supports semantic search for issues. Users can select the search type by passing the --search-type flag:

gh search issues --search-type semantic ...

gh search issues --search-type hybrid ...

For more information about semantic search see: "Improved Search for github issues is now generally available".

What's Changed

✨ Features

🐛 Fixes

📚 Docs & Chores

:dependabot: Dependencies

  • chore(deps): bump github.com/sigstore/sigstore-go from 1.2.2 to 1.3.0 by @dependabot[bot] in #14047
  • chore(deps): bump the codeql-actions group across 1 directory with 3 updates by @dependabot[bot] in #14049
  • chore(deps): bump google.golang.org/grpc from 1.82.1 to 1.83.0 by @dependabot[bot] in #14048
  • chore(deps): bump github.com/google/go-containerregistry from 0.21.7 to 0.21.8 by @dependabot[bot] in #14066
  • chore(deps): bump actions/attest from 4.2.1 to 4.2.2 by @dependabot[bot] in #14100
  • chore(deps): bump azure/login from 3.0.0 to 3.0.1 by @dependabot[bot] in #14101
  • chore(deps): bump the codeql-actions group across 1 directory with 3 updates by @dependabot[bot] in #14091
  • chore(deps): bump github/gh-aw-actions/setup-cli from 0.83.4 to 0.85.4 by @dependabot[bot] in #14068
  • chore(deps): bump github.com/google/go-containerregistry from 0.21.8 to 0.21.9 by @dependabot[bot] in #14119
  • chore(deps): bump github.com/klauspost/compress from 1.19.1 to 1.19.2 by @dependabot[bot] in #14120
  • chore(deps): bump the aw-actions group with 2 updates by @dependabot[bot] in #14147
  • chore: sign APT repository with both keys by @babakks in #13271
  • chore(deps): bump github.com/yuin/goldmark from 1.8.4 to 1.8.5 by @dependabot[bot] in #14029
  • chore(deps): bump actions/attest from 4.2.0 to 4.2.1 by @dependabot[bot] in #14050
  • Bump golangci-lint in CI to v2.12.2 by @williammartin in #14102
  • chore(deps): bump the aw-actions group with 2 updates by @dependabot[bot] in #14124
  • chore(deps): bump google.golang.org/protobuf from 1.36.11 to 1.36.12 by @dependabot[bot] in #14140
  • Upgrade gh-aw workflows to v0.85.4 by @tidy-dev in #14141
  • Bump Go to 1.26.6 by @github-actions[bot] in #14143
  • chore: bump go to 1.26.7 by @babakks in #14205
  • chore(deps): bump github.com/stretchr/testify from 1.11.1 to 1.12.1 by @dependabot[bot] in #14204
  • chore(deps): bump the codeql-actions group across 1 directory with 3 updates by @dependabot[bot] in #14169
  • chore(deps): bump golang.org/x/crypto from 0.54.0 to 0.55.0 by @dependabot[bot] in #14164
  • chore(deps): bump charm.land/lipgloss/v2 from 2.0.5 to 2.0.6 by @dependabot[bot] in #14166
  • Bump gh-aw-actions to v0.87.1 and recompile agentic workflows by @BagToad in #14210

New Contributors

Full Changelog: v2.97.0...v2.98.0

GitHub CLI 2.97.0

Choose a tag to compare

@github-actions github-actions released this 31 Jul 02:04
Immutable release. Only release title and notes can be modified.
55dbb4d

Security

Four security vulnerabilities have been identified, and fixed, in this release. Users are advised to update gh to version v2.97.0 as soon as possible.

Several commands (including gh gist view, gh api, gh pr diff, gh release download --output -, gh codespace logs, gh skills preview, and gh agent-task view/create) printed externally controlled content without neutralizing terminal escape sequences, allowing escape sequence injection into a user's terminal.

See GHSA-3m3g-3wcr-px46 for more information.

Some request URLs were built without escaping their variable path components, so a value containing URL path metacharacters could alter the request path and cause gh to address a different resource than intended.

See GHSA-4fjg-2h4q-fwg3 for more information.

gh auth status (without --show-token) could print a portion of the authentication token in plaintext for token types whose format contains an underscore after the prefix, such as github_pat_*, ghs_*, and ghu_*.

See GHSA-cg6r-mpgc-h9mm for more information.

gh attestation verify built the certificate matcher from --signer-repo and --signer-workflow without escaping regex metacharacters, so a lookalike repository or workflow name could satisfy a matcher intended for a trusted signer and bypass attestation verification.

See GHSA-mm27-mwq9-fr5g for more information.

Address project fields and items by name in gh project

gh project item-edit and gh project item-list can now reference project fields and single-select options by name:

# Set an item's field by name
gh project item-edit 1 --owner monalisa --url <url> --field "Status" --value "In Progress"

# Show named fields as extra columns
gh project item-list 1 --owner "@me" --field "Status" --field "Priority"

What's Changed

✨ Features

🐛 Fixes

  • Gracefully handle failed GitHub verifier initialization caused by a missing trusted root by @malancas in #13624
  • Bump keyring operation timeout from 3s to 60s so interactive unlock prompts have time to complete by @kofuk in #13787
  • Fix skill picker label wrapping by @tommaso-moro in #13967

📚 Docs & Chores

:dependabot: Dependencies

Read more

GitHub CLI 2.96.0

Choose a tag to compare

@github-actions github-actions released this 02 Jul 21:31
Immutable release. Only release title and notes can be modified.
b300f2e

Security

A security vulnerability has been identified, and fixed, that could allow command execution on a user's computer when connecting to a malicious Codespace via gh codespace jupyter.

Users of gh codespace jupyter are advised to update gh to version v2.96.0 as soon as possible.

For more information see: GHSA-8cg3-r6g9-fpg2

Download release assets without authentication

gh release download now works against public repositories without authentication, matching gh extension install. A token is still used when one is present:

# Download assets from a public repository, no login required
gh release download v2.96.0 --repo cli/cli

What's Changed

✨ Features

  • Allow gh release download without authentication on public repositories by @BagToad in #13723
  • Detect additional third-party coding agents by @BagToad in #13722
  • Support antigravity-cli and antigravity2.0 in gh skill by @BagToad in #13784

🐛 Fixes

📚 Docs & Chores

:dependabot: Dependencies

  • chore(deps): bump github.com/microsoft/dev-tunnels from 0.1.19 to 0.1.27 by @dependabot in #13708
  • chore(deps): bump actions/checkout from 6.0.3 to 7.0.0 by @dependabot in #13703
  • chore(deps): bump github.com/google/go-containerregistry from 0.21.6 to 0.21.7 by @dependabot in #13702
  • chore(deps): bump actions/setup-go from 6.4.0 to 6.5.0 by @dependabot in #13740
  • chore(deps): bump actions/attest from 4.1.0 to 4.1.1 by @dependabot in #13754
  • chore(deps): bump goreleaser/goreleaser-action from 7.2.2 to 7.2.3 by @dependabot in #13759
  • chore(deps): bump golangci/golangci-lint-action from 9.2.1 to 9.3.0 by @dependabot in #13779

New Contributors

Full Changelog: v2.95.0...v2.96.0

GitHub CLI 2.95.0

Choose a tag to compare

@github-actions github-actions released this 17 Jun 19:55
Immutable release. Only release title and notes can be modified.
70bb306

Read repository files and directories with gh repo read-file and gh repo read-dir

Two new preview commands read repository contents without cloning:

# Read a single file to stdout
gh repo read-file README.md --repo cli/cli

# Read from a specific branch, tag, or commit
gh repo read-file go.mod --ref v2.94.0 --repo cli/cli

# Write a file to disk (use --clobber to overwrite)
gh repo read-file README.md --output ./README.md --repo cli/cli

# List the entries in a directory
gh repo read-dir script --repo cli/cli

Both commands default to the repository's default branch, accept --ref to target any branch, tag, or commit, and support --json, --jq, and --template for scripting. This makes it easy for agents and automation to inspect a repo without a full checkout.

Note

gh repo read-file and gh repo read-dir are in preview and subject to change without notice.

What's Changed

✨ Features

🐛 Fixes

📚 Docs & Chores

:dependabot: Dependencies

  • chore(deps): bump golang.org/x/text from 0.37.0 to 0.38.0 by @dependabot[bot] in #13640
  • chore(deps): bump charm.land/lipgloss/v2 from 2.0.3 to 2.0.4 by @dependabot[bot] in #13663
  • chore(deps): bump golang.org/x/term from 0.43.0 to 0.44.0 by @dependabot[bot] in #13661
  • chore(deps): bump github/codeql-action from 4.36.1 to 4.36.2 by @dependabot[bot] in #13619
  • chore(deps): bump github.com/sigstore/sigstore-go from 1.1.4 to 1.2.1 by @dependabot[bot] in #13662
  • chore(deps): bump golang.org/x/crypto from 0.52.0 to 0.53.0 by @dependabot[bot] in #13641

Full Changelog: v2.94.0...v2.95.0

GitHub CLI 2.94.0

Choose a tag to compare

@github-actions github-actions released this 10 Jun 21:47
Immutable release. Only release title and notes can be modified.
cac0ba1

Issue types, sub-issues, and relationships in gh issue

issue-view-monas-cafe-with-frame

This release brings GitHub's advanced issue features to gh issue create, edit, view, and list. You can set and view an issue's type, organize work with sub-issues, and track blocked-by and blocking relationships without leaving the command line:

# Set an issue's type
gh issue create --type Bug
gh issue edit 123 --type Bug

# Organize work with sub-issues
gh issue create --parent 100
gh issue edit 100 --add-sub-issue 123

# Track blocked-by and blocking relationships
gh issue create --blocked-by 200
gh issue edit 123 --add-blocking 300

Issue types and sub-issues are available on GitHub.com and GHES 3.17+; relationships require GHES 3.19+.

Manage discussions with gh discussion

discussion-view-monas-cafe-with-frame

This release introduces the discussion command set for working with GitHub Discussions in gh:

# List discussions
gh discussion list

# View a discussion, its comments, or replies to a comment
gh discussion view 123 --comments

# Create a discussion
gh discussion create

# Edit a discussion
gh discussion edit 123

# Comment on a discussion
gh discussion comment 123

# Reply to a comment using its URL
gh discussion comment <url>

Run gh discussion --help for more information.

Note

The discussion command set is in preview and is subject to change without notice.

Equip your agents with new gh features

Teach your agents how to leverage new GitHub CLI features on release day by installing the gh skill:

# Install
gh skill install cli/cli gh --scope user

# Or update
gh skill update gh

What's Changed

✨ Features

  • Add gh discussion command set (list, view, create, edit) as a preview by @babakks and @maxbeizer in #13541
  • Add gh discussion comment to comment on and reply to discussions by @babakks in #13620
  • Add Issues 2.0 support: issue types, sub-issues, and relationships by @BagToad in #13057
  • Add gh skill list to inventory installed agent skills by @tommaso-moro in #13418
  • Add --all flag to gh skill install to install every skill in a repository by @tommaso-moro in #13471
  • Skip skills without metadata when running gh skill update --all by @tommaso-moro in #13469
  • Alias gh extension uninstall to gh extension remove by @BagToad in #13599
  • Auto-install official extensions in CI by @BagToad in #13581

🐛 Fixes

📚 Docs & Chores

  • Bump Go to 1.26.4 by @github-actions[bot] in #13578
  • Clean up deferred issue update helper by @BagToad in #13584
  • Add terminal-mockup canvas extension for marketing screenshots by @BagToad in #13612
  • Add gh discussion and Issues 2.0 reference to the gh skill, plus a README note by @BagToad in #13631

:dependabot: Dependencies

  • chore(deps): bump golangci/golangci-lint-action from 9.2.0 to 9.2.1 by @dependabot in #13521
  • chore(deps): bump github.com/gdamore/tcell/v2 from 2.13.9 to 2.13.10 by @dependabot in #13520
  • chore(deps): bump github.com/mattn/go-colorable from 0.1.14 to 0.1.15 by @dependabot in #13572
  • chore(deps): bump charm.land/bubbletea/v2 from 2.0.6 to 2.0.7 by @dependabot in #13595
  • chore(deps): bump github/codeql-action from 4.36.0 to 4.36.1 by @dependabot in #13596
  • chore(deps): bump actions/checkout from 6.0.2 to 6.0.3 by @dependabot in #13597

Full Changelog: v2.93.0...v2.94.0

GitHub CLI 2.93.0

Choose a tag to compare

@github-actions github-actions released this 27 May 17:47
Immutable release. Only release title and notes can be modified.
f96972c

Security

A security vulnerability has been identified, and fixed, that would incorrectly include authorization header in API requests to TUF repository mirrors via gh attestation, gh release verify, and gh release verify-asset commands.

Users are advised to update gh to version v2.93.0 as soon as possible.

For more information see: GHSA-8xvp-7hj6-mcj9

Support agents in gh secret command set

The gh secret command set can now set agent secrets. For more information, see "Configuring secrets and variables for Copilot cloud agent".

What's Changed

✨ Features

🐛 Fixes

  • fix(pr): remove numberFieldOnly optimization that skips API validation by @williammartin in #13327
  • Print gh auth refresh for 401 returns by @333fred in #13068
  • Derive digest algorithm from ref length in release verify commands by @bdehamer in #13430

📚 Docs & Chores

:dependabot: Dependencies

  • chore(deps): bump goreleaser/goreleaser-action from 7.0.0 to 7.2.1 by @dependabot[bot] in #13297
  • chore(deps): bump github.com/klauspost/compress from 1.18.5 to 1.18.6 by @dependabot[bot] in #13328
  • chore(deps): bump golang.org/x/sys from 0.43.0 to 0.44.0 by @dependabot[bot] in #13381
  • chore(deps): bump golang.org/x/term from 0.42.0 to 0.43.0 by @dependabot[bot] in #13396
  • chore(deps): bump google.golang.org/grpc from 1.80.0 to 1.81.0 by @dependabot[bot] in #13346
  • chore(deps): bump golang.org/x/text from 0.36.0 to 0.37.0 by @dependabot[bot] in #13397
  • chore(deps): bump golang.org/x/crypto from 0.50.0 to 0.51.0 by @dependabot[bot] in #13420
  • chore(deps): bump google.golang.org/grpc from 1.81.0 to 1.81.1 by @dependabot[bot] in #13436
  • chore(deps): bump goreleaser/goreleaser-action from 7.2.1 to 7.2.2 by @dependabot[bot] in #13461
  • chore(deps): bump github/codeql-action from 4 to 4.35.5 by @dependabot[bot] in #13489
  • chore(deps): bump github.com/theupdateframework/go-tuf/v2 from 2.4.1 to 2.4.2 by @dependabot[bot] in #13462
  • chore(deps): bump github.com/google/go-containerregistry from 0.21.5 to 0.21.6 by @dependabot[bot] in #13457

New Contributors

Full Changelog: v2.92.0...v2.93.0

GitHub CLI 2.92.0

Choose a tag to compare

@github-actions github-actions released this 28 Apr 11:42
6c470f6

Security

A security vulnerability has been identified, and fixed, that could allow terminal escape sequence injection when users view GitHub Actions workflow logs using gh run view --log or gh run view --log-failed.

Users are advised to update gh to version v2.92.0 as soon as possible.

For more information see: GHSA-crc3-h8v6-qh57

Support GitHub Enterprise Cloud (GHEC) in skill commandset

Now gh skill subcommands (install, preview, publish, search, update) are able to work with GHEC hosts with data residency.

Add --allow-hidden-dirs flag to skill preview

Following the addition of --allow-hidden-dirs to skill install in the previous release, now the flag is also supported in skill preview, allowing users to preview skills located in hidden (dot-prefixed) directories such as .claude/skills/, .agents/skills/, and .github/skills/.

What's Changed

✨ Features

🐛 Fixes

📚 Docs & Chores

:dependabot: Dependencies

  • chore(deps): bump github.com/mattn/go-isatty from 0.0.20 to 0.0.21 by @dependabot[bot] in #13161
  • chore(deps): bump github.com/google/go-containerregistry from 0.21.4 to 0.21.5 by @dependabot[bot] in #13162
  • chore(deps): bump charm.land/lipgloss/v2 from 2.0.2 to 2.0.3 by @dependabot[bot] in #13163
  • chore(deps): bump charm.land/bubbletea/v2 from 2.0.2 to 2.0.6 by @dependabot[bot] in #13206
  • chore(deps): bump github.com/gdamore/tcell/v2 from 2.13.8 to 2.13.9 by @dependabot[bot] in #13241
  • chore(deps): bump github.com/mattn/go-isatty from 0.0.21 to 0.0.22 by @dependabot[bot] in #13298

New Contributors

Full Changelog: v2.91.0...v2.92.0

GitHub CLI 2.91.0

Choose a tag to compare

@github-actions github-actions released this 22 Apr 10:40
6fffc2e

GitHub CLI now collects pseudonymous telemetry

To better understand how features are used in practice, especially as agentic adoption grows, GitHub CLI now sends pseudonymous telemetry.

See Telemetry for more details on what's collected, why, and how to opt out.

Support more agents in gh skill

Thanks to community feedback, gh now supports a large number of agent hosts. Run gh skill install --help for the list of available agents.

Improve skill discovery

gh skill install now adds the --allow-hidden-dirs flag to support discovering skills in hidden (dot-prefixed) directories such as .claude/skills/, .agents/skills/, and .github/skills/.

Detect skills re-published from other sources

GitHub CLI now detects if the skill to be installed is re-published from an upstream source and offers the option to install it from there. The --upstream flag is also added for non-interactive use cases.

What's Changed

✨ Features

🐛 Fixes

📚 Docs & Chores

Full Changelog: v2.90.0...v2.91.0