Agent skill · software engineering · sickn33

gh-attach

Upload and download GitHub user-attachments (screenshots, PDFs, zips, videos) from the terminal; use when asked to attach or embed a file in a PR, issue, or comment, or download an attachment URL.

Why this skill is useful

Adds a CLI tool for managing GitHub user-attachments that the AI wouldn't generate on its own.

What it needs

Requires gh installed locally. Requires github account access. About 4k tokens when loaded. Last updated 2026-08-07. 44,571 stars on the source repository.

What this skill does

Upload and download GitHub user-attachments (gh-attach) GitHub has no public API for user-attachments. The web UI uses an internal endpoint that mints github.com/user-attachments URLs whose visibility follows the repository they belong to. gh-attach (MIT, sudosubin) replicates that drag-and-drop flow as a gh CLI extension, so an agent can upload a local file from the terminal, get a URL back, and later download an attachment URL to a file. Overview This skill drives gh-attach to turn a local file (screenshot, image, PDF, zip, log, or video) into a hosted GitHub user-attachments URL, then embeds that URL into a pull request, issue, or comment. It also downloads an existing attachment URL back to a local file. GitHub auto-renders the URL as an image, video, or file wherever it is pasted, and the URL inherits the repository's visibility, so a private-repo upload stays private. It works against GitHub Cloud and GitHub Enterprise Server. When to Use This Skill Use this skill when asked to: "Attach a screenshot to the PR" or "add an image to the PR description" "Attach this file (PDF, zip, log, video) to the issue or comment" "Embed before/after screenshots" in a PR, issue, or README "Download this GitHub attachment" from a user-attachments URL How It Works Step 1: Verify prerequisites Uploads use a GitHub usersession browser cookie, not the gh token (that endpoint rejects tokens). By default gh must be authenticated so gh-attach can select the matching browser account (Chromium family, Firefox family, or Safari). If the wrong account is selected, add --browser <name> --profile <name>. Obtain explicit approval before allowing the pinned extension to access that interactive browser profile. Headless and CI uploads are intentionally unsupported: never export, store, or pass a raw usersession cookie to the extension. Step 2: Upload gh attach prints the URL on one line to stdout. For GitHub Enterprise Server, use -R host/owner/repo. …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills sickn33/gh-attach

View the source on GitHub

Browse the @skills marketplace