The missing upload command for coding agents.
GitHub has no API for file uploads, so agents can't include screenshots in pull requests and issues. Uploads gives agents a way to host files and show their work. They're staged for the branch automatically — and when the PR opens, all screenshots appear in one tidy comment without cluttering your repo.
# capture as you work — no PR yet
$uploads put ./after.png
└─▶ your PR opens with screenshots already attached:
📎 Attachments
The bot adds new files automatically, and replaces outdated versions with the latest revision (with GitHub App installed).
# "Which page was that?"
Most useful tag: which page is this from? Attach a path (or anything else) with --meta, then uploads find brings it back.
# tag it on the way up (source URL, app, etc)
$uploads put ./settings.png --meta path=/account/settings
MARKDOWN: 
# find it again later ("Do we have any recent screenshots of settings?")
$uploads find path=/settings
gh/you/app/pull/123/settings.webp path=/account/settings
gh/you/app/pull/456/redesign.webp path=/settings
# more than file-hosting
capture and host
uploads screenshot <url> captures and hosts in one step, with both local and remote browser support.
point at the change
Bake hand-drawn boxes, arrows, labels, and solid redactions into a capture with screenshot --annotate or uploads annotate — so reviewers see what changed without hunting.
device frames
Wrap a raw screenshot in device chrome — phone, browser, or a specific iPhone — with --frame.
group into a gallery
Group uploads into a gallery that can live across multiple PRs — one link for the whole set that shows linked issues and pull requests.
# get set up
▸ paste the prompt into your coding agent — or read the full guide.