GH-ISSUE-CREATE(1)

πŸ’… GH-ISSUE-CREATE(1) β€” like, the GitHub CLI manual, but make it make sense ✨

okay bestie, so this is the gh issue create page from the GitHub CLI manual (v2.102.0, October 2026 energy), and it's genuinely one of the most useful commands ever. It literally creates issues for you. Let's get into it 🫢


🌸 NAME 🌸

gh-issue-create β€” create a new issue. That's it, that's the vibe. A whole new issue, born from your terminal, no browser tab chaos required ✨


πŸ¦‹ SYNOPSIS πŸ¦‹

gh issue create [flags]

πŸ’– DESCRIPTION πŸ’–

Create an issue on GitHub. Iconic behaviour, no notes πŸ’…

Use --attach to upload an image or video. The attachment is appended to the body. And here's the cute part: if the body already references an attached file, like ![alt](./login.png), that reference gets rewritten to point at the uploaded asset instead. So no broken images, we love to see it. You can attach up to 50 files per command β€” fifty! main character energy fr fr.

Alt text for an image follows the path after #, as in --attach './login.png#The login error state'. Without it the filename is used. A reference already in the body keeps the alt text written there. Video renders as a player and has no alt text, so it cannot be given any β€” sorry video girlies, that's just how it is πŸ™ˆ

If some attachments upload and others fail, the issue is still created with the ones that succeeded. The command then exits with a non-zero status, but the new issue's URL is still printed to stdout. So like, partial slay but you still get your link πŸ’–

Adding an issue to projects requires authorization with the project scope. To authorize, run gh auth refresh -s project. Don't skip this or you'll be sad.

The --assignee flag supports the following special values:

  • @me: assign yourself (self-assignment, the ultimate main character move πŸ‘‘)
  • @copilot: assign Copilot (not supported on GitHub Enterprise Server β€” noted, no cap)

✨ OPTIONS ✨

  • -a, --assignee <login> β€” assign people by their login. Use "@me" to self-assign πŸ’œ
  • --attach <file> β€” attach an image or video file, in '#' format (that's the path#alt text situation we talked about πŸŽ€)
  • --blocked-by <numbers> β€” mark the new issue as blocked by these issue numbers or URLs
  • --blocking <numbers> β€” mark the new issue as blocking these issue numbers or URLs
  • -b, --body <string> β€” supply a body. Will prompt for one otherwise.
  • -F, --body-file <file> β€” read body text from file (use "-" to read from standard input)
  • -e, --editor β€” skip prompts and open the text editor to write the title and body in. The first line is the title and the remaining text is the body. Fancy ✍️
  • -l, --label <name> β€” add labels by name
  • -m, --milestone <name> β€” add the issue to a milestone by name
  • --parent <number> β€” add the new issue as a sub-issue of the specified parent number or URL (baby issue 🍼)
  • -p, --project <title> β€” add the issue to projects by title
  • --recover <string> β€” recover input from a failed run of create. Yes bestie, it happens to the best of us 😭
  • -T, --template <name> β€” template name to use as starting body text
  • -t, --title <string> β€” supply a title. Will prompt for one otherwise.
  • --type <name> β€” set the issue type by name
  • -w, --web β€” open the browser to create an issue

🌈 OPTIONS INHERITED FROM PARENT COMMANDS 🌈

  • -R, --repo <[HOST/]OWNER/REPO> β€” select another repository using the [HOST/]OWNER/REPO format

πŸŽ€ ALIASES πŸŽ€

gh issue new

Same energy, shorter typing. iykyk πŸ’…


⭐ EXIT CODES ⭐

  • 0: Successful execution β€” ate and left no crumbs πŸ”₯
  • 1: Error β€” it's giving chaos
  • 2: Command canceled β€” you changed your mind, valid
  • 4: Authentication required β€” go log in bestie πŸ™ˆ
NOTE: Specific commands may have additional exit codes. Refer to the command's help for more information.

πŸ“ EXAMPLE πŸ“

$ gh issue create --title "I found a bug" --body "Nothing works"
$ gh issue create --attach './login.png#The login error state'
$ gh issue create --attach ./before.png --attach ./after.png
$ gh issue create --label "bug,help wanted"
$ gh issue create --label bug --label "help wanted"
$ gh issue create --assignee monalisa,hubot
$ gh issue create --assignee "@me"
$ gh issue create --assignee "@copilot"
$ gh issue create --project "Roadmap"
$ gh issue create --template "Bug Report"
$ gh issue create --type Bug
$ gh issue create --parent 100
$ gh issue create --parent https://github.com/cli/go-gh/issues/42
$ gh issue create --blocked-by 200,201 --blocking 300

Look at all those combos. Label comma-separated or repeated flags, both work, we love options πŸ‘‘


🧚 SEE ALSO 🧚

gh-issue(1) β€” go read the parent page, it's the whole issue family πŸ’œ


that's the whole page bestie, no cap, every flag and caveat intact πŸ’– This masterpiece is from the GitHub CLI v2.102.0 manual, dated Oct 2026 β€” go create some issues, you're gonna slay πŸŽ€βœ¨πŸ¦‹

πŸ“¦ where this page comes from