Your agents can't show you what they built. Now they can.
GitHub has no API for attaching an image to a pull request. Argos gives your agents one command, and the screenshot or recording is there the moment the PR opens.
Upload before the pull request exists
Media sharing is standalone image and video upload: no build, no test run, no baseline, just a file with a stable share URL and Markdown ready to paste. Stage it on the branch you're working on, and Argos posts it when the pull request opens, in one comment it keeps up to date instead of a new one each time.
Add quick add-to-cart to the product grid
Done. Uploading a screenshot of the new grid.
No pull request yet, so it's staged on the branch: app.argos-ci.com/m/mp21qmkhpe…
This example is live: see the pull request on GitHub or open the share link.
One command, a link and Markdown
The CLI registers, uploads, and finalizes in one go, then prints a stable share URL and the exact Markdown to paste. For a video, that Markdown is a poster frame wrapped in a link, the only form GitHub renders. PNG and JPEG are compressed to WebP before upload, so a 252 KB screenshot travels at a tenth of the size.
Before and after, one link
Name two files -before and -after and they share one identity: a single row in the pull request comment, and a share page that compares both sides with synced pan and zoom. The reviewer sees the change, not two tabs.
Feedback pinned to the pixel
Reviewers pin comments to a point on the image. A pin stores normalized coordinates and the exact version it was written on, so an agent that cannot see the picture can still read the spot, fix it, and resolve the thread, all from the CLI.
Re-upload freely, the link never changes
A media is an identity; every upload is a version of it. Re-uploading checkout.png updates the Markdown already pasted in the pull request, keeps the version a reviewer commented on underneath, and identical bytes cost nothing.
Videos work too
Record a demo video and the pull request shows a thumbnail that opens the recording. MP4, WebM, and MOV, up to 500 MB.
Learn moreWorks with any agent
CLI, Node.js SDK, REST API, and MCP. Whatever your agent already uses, uploading is a single call.
Learn morePrivate by default
Links are unguessable and never indexed by search engines. On Pro, only your team can open them. Kept 30 days on Hobby, 1 year on Pro.
Learn moreTeach your agent to show its work
The argos-upload skill teaches any coding agent when a screenshot beats a paragraph, how to stage media on the branch it is working on, and how to paste an embed that actually renders. One command installs it for Claude Code, Cursor, and any skill-compatible agent.
# Install the Argos skills for your coding agent
npx skills add https://argos-ci.comFrequently asked questions
How do AI agents attach screenshots to a GitHub pull request?
GitHub has no public API for comment attachments. Dragging an image into a pull request needs a signed-in browser session, which an agent or a CI job doesn't have. With Argos, argos media upload --branch stages the file from the terminal, and when a pull request opens for that branch, Argos posts it there in a managed comment, automatically.
For an issue or a chat message, paste the Markdown line the command prints. It embeds the image anywhere Markdown renders.
Is media sharing the same as visual testing?
No. A media upload is compared to no baseline and gates no build. It is a file with a stable link. It complements visual testing: builds catch the changes nobody intended, media shows the result someone did intend, and both land on the same pull request.
What file formats and sizes does Argos media support?
Images: PNG, JPEG, WebP, AVIF, and GIF. Videos: MP4, WebM, and MOV. SVG is deliberately excluded because it can carry scripts. A single file can be up to 50 MB on Hobby and 500 MB on Pro, and Argos verifies the actual bytes at upload, so a file that isn't what it claims to be is rejected.
How much does a media upload cost?
Uploads draw on the screenshot allowance you already have, with no second quota. An image counts as 1 screenshot unit, a video as 25. Re-uploading a file whose bytes haven't changed costs nothing, and the usage detail breaks media out so recordings never read as unexplained screenshots. See pricing.
Who can open a media share link?
Visibility is per media: team (anyone signed in with access to the project, the default on Pro) or public (anyone holding the URL, the only option on Hobby). Links carry an unguessable token and share pages are never indexed. The file's bytes are always reachable at an unguessable CDN URL whatever the visibility. That is what lets GitHub's server-side image proxy render the embed, so don't upload what must never be reachable by URL.
How does an agent read the feedback left on a screenshot?
A reviewer pins a comment to a point on the image, and the pin is stored as normalized coordinates with the exact version it was written on. The agent runs argos media list --branch to find its uploads, argos media comment list to read the open threads, then replies and resolves each one from the same CLI. Even a process that cannot see pixels can act on the feedback.
For AI agents
Agents read machine-readable diffs, review builds, and fix their own regressions. Media is how they show the result.
Learn moreReview
Media comments use the same review grammar as builds: pinned threads, mentions, reactions, and resolution.
Learn moreDiff
Diffs flag the changes nobody intended; media shows the one you did. Both land on the same pull request.
Learn moreSupercharge your product quality
See every change your team and your agents make. Review with confidence, and merge faster.
