{"id":98569,"date":"2026-09-01T05:35:59","date_gmt":"2026-09-01T12:35:59","guid":{"rendered":"https:\/\/github.blog\/changelog\/2026-08-31-github-cli-media-in-issues-pull-requests-and-comments"},"modified":"2026-09-01T14:42:51","modified_gmt":"2026-09-01T21:42:51","slug":"github-cli-media-in-issues-pull-requests-and-comments","status":"publish","type":[3521],"link":"https:\/\/github.blog\/changelog\/2026-09-01-github-cli-media-in-issues-pull-requests-and-comments","title":{"rendered":"GitHub CLI: Media in issues, pull requests, and comments"},"content":{"rendered":"<!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\" \"http:\/\/www.w3.org\/TR\/REC-html40\/loose.dtd\">\n<html><body><p>GitHub CLI now has a repeatable <code>--attach<\/code> flag that uploads a local image or video and references it inline in an issue, pull request, or comment body.<\/p>\n<p>This is now generally available to all users on GitHub across all plans. You just need to update <code>gh<\/code> to v2.99.0.<\/p>\n<h2 id=\"why-this-matters\" id=\"why-this-matters\" ><a class=\"heading-link\" href=\"#why-this-matters\">Why this matters?<span class=\"heading-hash pl-2 text-italic text-bold\" aria-hidden=\"true\"><\/span><\/a><\/h2>\n<p>Some things are easier to show than to describe (i.e., a UI bug, a rendered result, an error on screen). Previously, <code>gh<\/code> only wrote text, so adding an image or video to an issue or pull request meant stopping to open the browser, drag the file into the comment box, and copy the result back. Now, <code>gh<\/code> can attach images and videos directly from the command line.<\/p>\n<p><code>--attach<\/code> puts the image in the same command that writes Markdown. File the bug, and the screenshot lands with it, so the issue shows the actual problem the first time. Open the pull request with a before and after, and the reviewer sees the change instead of pulling the branch to check. Your coding agents get this too, so they can show a result rather than describe it.<\/p>\n<h2 id=\"capabilities\" id=\"capabilities\" ><a class=\"heading-link\" href=\"#capabilities\">Capabilities<span class=\"heading-hash pl-2 text-italic text-bold\" aria-hidden=\"true\"><\/span><\/a><\/h2>\n<ul>\n<li><strong>Attach from commands that write Markdown text:<\/strong> <code>--attach<\/code> is repeatable and works on <code>gh issue create<\/code>, <code>gh issue edit<\/code>, <code>gh issue comment<\/code>, <code>gh pr create<\/code>, <code>gh pr edit<\/code>, and <code>gh pr comment<\/code>.<\/li>\n<li><strong>Keep your Markdown as written:<\/strong> A local path already referenced in the body is rewritten in place, so <code>![alt](.\/login.png)<\/code> keeps its alt text and becomes the uploaded asset. Anything attached but never referenced is appended at the end.<\/li>\n<li><strong>Post images and video:<\/strong> PNG, JPEG, GIF, WebP, SVG, MP4, MOV, and WebM are all supported.<\/li>\n<li><strong>Describe what you attach:<\/strong> Alt text follows the path after <code>#<\/code>, as in <code>--attach '.\/login.png#The login error state'<\/code>. Omit it and <code>gh<\/code> falls back to the filename.<\/li>\n<\/ul>\n<h2 id=\"security-and-access-controls\" id=\"security-and-access-controls\" ><a class=\"heading-link\" href=\"#security-and-access-controls\">Security and access controls<span class=\"heading-hash pl-2 text-italic text-bold\" aria-hidden=\"true\"><\/span><\/a><\/h2>\n<p>Uploads authenticate with the common token types <code>gh<\/code> already uses, either the OAuth token from <code>gh auth login<\/code> or a classic personal access token. Write access to the repository you are attaching to is required for image uploading.<\/p>\n<p><code>--attach<\/code> is generally available to all users on GitHub across all plans, with no preview period. Size limits match the web upload flow: 10 MB for images and GIFs, 10 MB for video on Free plans, and 100 MB for video on paid plans. GitHub Enterprise Server is not supported in this release.<\/p>\n<h2 id=\"getting-started\" id=\"getting-started\" ><a class=\"heading-link\" href=\"#getting-started\">Getting started<span class=\"heading-hash pl-2 text-italic text-bold\" aria-hidden=\"true\"><\/span><\/a><\/h2>\n<p>Update <code>gh<\/code> to v2.99.0, then run <code>gh issue comment  --attach .\/screenshot.png<\/code>. <code>--attach<\/code> works the same way on <code>gh issue<\/code> and <code>gh pr<\/code> create, edit, and comment. Run <code>gh help<\/code> for the full flag reference.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/github.com\/user-attachments\/assets\/3a488bc4-be46-4f25-b6ba-814b283ff17c\" alt=\"Terminal showing gh issue comment with --attach uploading empty-state.png and returning an issue comment URL.\"><\/p>\n<p><a href=\"https:\/\/github.com\/orgs\/community\/discussions\/205787\">Join the discussion<\/a> on the GitHub Community and <a href=\"https:\/\/docs.github.com\/en\/github-cli\/github-cli\/attaching-files-with-github-cli\">read the docs<\/a> to learn more about attaching files from the command line.<\/p>\n<p><em>Editor&rsquo;s note (September 1, 2026): Updated the doc link.<\/em><\/p>\n<\/body><\/html>\n","protected":false},"excerpt":{"rendered":"<p>GitHub CLI now has a repeatable &#8211;attach flag that uploads a local image or video and references it inline in an issue, pull request, or comment body. This is now&hellip;<\/p>\n","protected":false},"author":2106,"featured_media":0,"template":"","meta":{"_gh_post_show_toc":"","_gh_post_is_no_robots":"","_gh_post_is_featured":"","_gh_post_is_excluded":"","_gh_post_is_unlisted":"","_gh_post_related_link_1":"","_gh_post_related_link_2":"","_gh_post_related_link_3":"","_gh_post_sq_img":"","_gh_post_sq_img_id":"","_gh_post_cta_title":"","_gh_post_cta_text":"","_gh_post_cta_link":"","_gh_post_cta_button":"","_gh_post_recirc_hide":"","_gh_post_recirc_col_1":"","_gh_post_recirc_col_2":"","_gh_post_recirc_col_3":"","_gh_post_recirc_col_4":"","_featured_video":"","_gh_post_additional_query_params":"","footnotes":"","_links_to":"","_links_to_target":"","primary_cta":"","primary_cta_url":"","secondary_cta":"","secondary_cta_url":""},"label":[3634],"group":[3918],"coauthors":[3100],"class_list":["post-98569","changelog","type-changelog","status-publish","hentry","changelog-type-new-releases","changelog-label-client-apps","changelog-group-09-2026"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.4 (Yoast SEO v28.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>GitHub CLI: Media in issues, pull requests, and comments - GitHub Changelog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/github.blog\/changelog\/2026-09-01-github-cli-media-in-issues-pull-requests-and-comments\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"GitHub CLI: Media in issues, pull requests, and comments \u00b7 GitHub Changelog\" \/>\n<meta property=\"og:description\" content=\"GitHub CLI now has a repeatable --attach flag that uploads a local image or video and references it inline in an issue, pull request, or comment body. This is now&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/github.blog\/changelog\/2026-09-01-github-cli-media-in-issues-pull-requests-and-comments\/\" \/>\n<meta property=\"og:site_name\" content=\"The GitHub Blog\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-01T21:42:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/github.blog\/wp-content\/uploads\/2026\/08\/641221488-8ccf24e2-0b24-491b-a069-f9239abb7c38.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n\t<meta name=\"twitter:label2\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data2\" content=\"Allison\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/github.blog\\\/changelog\\\/2026-09-01-github-cli-media-in-issues-pull-requests-and-comments\\\/\",\"url\":\"https:\\\/\\\/github.blog\\\/changelog\\\/2026-09-01-github-cli-media-in-issues-pull-requests-and-comments\\\/\",\"name\":\"GitHub CLI: Media in issues, pull requests, and comments - The GitHub Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/github.blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/github.blog\\\/changelog\\\/2026-09-01-github-cli-media-in-issues-pull-requests-and-comments\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/github.blog\\\/changelog\\\/2026-09-01-github-cli-media-in-issues-pull-requests-and-comments\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/github.com\\\/user-attachments\\\/assets\\\/3a488bc4-be46-4f25-b6ba-814b283ff17c\",\"datePublished\":\"2026-09-01T12:35:59+00:00\",\"dateModified\":\"2026-09-01T21:42:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/github.blog\\\/changelog\\\/2026-09-01-github-cli-media-in-issues-pull-requests-and-comments\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/github.blog\\\/changelog\\\/2026-09-01-github-cli-media-in-issues-pull-requests-and-comments\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/github.blog\\\/changelog\\\/2026-09-01-github-cli-media-in-issues-pull-requests-and-comments\\\/#primaryimage\",\"url\":\"https:\\\/\\\/github.com\\\/user-attachments\\\/assets\\\/3a488bc4-be46-4f25-b6ba-814b283ff17c\",\"contentUrl\":\"https:\\\/\\\/github.com\\\/user-attachments\\\/assets\\\/3a488bc4-be46-4f25-b6ba-814b283ff17c\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/github.blog\\\/changelog\\\/2026-09-01-github-cli-media-in-issues-pull-requests-and-comments\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/github.blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Changelogs\",\"item\":\"https:\\\/\\\/github.blog\\\/changelog\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"GitHub CLI: Media in issues, pull requests, and comments\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/github.blog\\\/#website\",\"url\":\"https:\\\/\\\/github.blog\\\/\",\"name\":\"The GitHub Blog\",\"description\":\"Updates, ideas, and inspiration from GitHub to help developers build and design software.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/github.blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"GitHub CLI: Media in issues, pull requests, and comments - GitHub Changelog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/github.blog\/changelog\/2026-09-01-github-cli-media-in-issues-pull-requests-and-comments\/","og_locale":"en_US","og_type":"article","og_title":"GitHub CLI: Media in issues, pull requests, and comments \u00b7 GitHub Changelog","og_description":"GitHub CLI now has a repeatable --attach flag that uploads a local image or video and references it inline in an issue, pull request, or comment body. This is now&hellip;","og_url":"https:\/\/github.blog\/changelog\/2026-09-01-github-cli-media-in-issues-pull-requests-and-comments\/","og_site_name":"The GitHub Blog","article_modified_time":"2026-09-01T21:42:51+00:00","og_image":[{"url":"https:\/\/github.blog\/wp-content\/uploads\/2026\/08\/641221488-8ccf24e2-0b24-491b-a069-f9239abb7c38.png","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"2 minutes","Written by":"Allison"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/github.blog\/changelog\/2026-09-01-github-cli-media-in-issues-pull-requests-and-comments\/","url":"https:\/\/github.blog\/changelog\/2026-09-01-github-cli-media-in-issues-pull-requests-and-comments\/","name":"GitHub CLI: Media in issues, pull requests, and comments - The GitHub Blog","isPartOf":{"@id":"https:\/\/github.blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/github.blog\/changelog\/2026-09-01-github-cli-media-in-issues-pull-requests-and-comments\/#primaryimage"},"image":{"@id":"https:\/\/github.blog\/changelog\/2026-09-01-github-cli-media-in-issues-pull-requests-and-comments\/#primaryimage"},"thumbnailUrl":"https:\/\/github.com\/user-attachments\/assets\/3a488bc4-be46-4f25-b6ba-814b283ff17c","datePublished":"2026-09-01T12:35:59+00:00","dateModified":"2026-09-01T21:42:51+00:00","breadcrumb":{"@id":"https:\/\/github.blog\/changelog\/2026-09-01-github-cli-media-in-issues-pull-requests-and-comments\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/github.blog\/changelog\/2026-09-01-github-cli-media-in-issues-pull-requests-and-comments\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/github.blog\/changelog\/2026-09-01-github-cli-media-in-issues-pull-requests-and-comments\/#primaryimage","url":"https:\/\/github.com\/user-attachments\/assets\/3a488bc4-be46-4f25-b6ba-814b283ff17c","contentUrl":"https:\/\/github.com\/user-attachments\/assets\/3a488bc4-be46-4f25-b6ba-814b283ff17c"},{"@type":"BreadcrumbList","@id":"https:\/\/github.blog\/changelog\/2026-09-01-github-cli-media-in-issues-pull-requests-and-comments\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/github.blog\/"},{"@type":"ListItem","position":2,"name":"Changelogs","item":"https:\/\/github.blog\/changelog\/"},{"@type":"ListItem","position":3,"name":"GitHub CLI: Media in issues, pull requests, and comments"}]},{"@type":"WebSite","@id":"https:\/\/github.blog\/#website","url":"https:\/\/github.blog\/","name":"The GitHub Blog","description":"Updates, ideas, and inspiration from GitHub to help developers build and design software.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/github.blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/changelogs\/98569","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/changelogs"}],"about":[{"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/types\/changelog"}],"author":[{"embeddable":true,"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/users\/2106"}],"version-history":[{"count":4,"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/changelogs\/98569\/revisions"}],"predecessor-version":[{"id":98608,"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/changelogs\/98569\/revisions\/98608"}],"wp:attachment":[{"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/media?parent=98569"}],"wp:term":[{"taxonomy":"changelog-type","embeddable":true,"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/type?post=98569"},{"taxonomy":"changelog-label","embeddable":true,"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/label?post=98569"},{"taxonomy":"changelog-group","embeddable":true,"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/group?post=98569"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/github.blog\/wp-json\/wp\/v2\/coauthors?post=98569"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}