Skip to content
← All skills

github-image-upload

Embed a local file — screenshot, image, video, PDF, zip, log — in GitHub markdown: an issue, a pull request description, or a comment. Uploads to github.com/user-attachments, inheriting the repo's visibility. Use when asked to attach or show a local file on a GitHub issue/PR/comment, or when another skill needs a local screenshot to appear in GitHub markdown.

Model-invoked — you can type it, or the agent can reach for it when the task fits.

Uploads the file as a GitHub attachment and writes the markdown reference straight into the PR body — no temp files, no copy-pasting URLs.

Quickstart

Install
npx skills add EddyVinck/skills --skill=github-image-upload
Update
npx skills update github-image-upload
Source on GitHub

What it does

github-image-upload embeds a local file — a screenshot, image, video, PDF, zip, or log — in GitHub markdown: an issue, a pull request description, or a comment. It wraps the gh image CLI extension, which uploads the file to github.com/user-attachments and prints a ready-to-paste markdown reference. The whole technique is command substitution: $(gh image FILE) goes wherever the reference belongs in the body you were already writing — one command, no temp files, no copy-pasting URLs.

Uploads inherit the repo’s visibility, and the skill never touches credentials: gh image resolves its own auth, and any auth or permission error is relayed verbatim for you to act on.

When to reach for it

Prerequisites

The gh-image extension, installed once:

gh extension install drogers0/gh-image

The skill checks for it and stops with a message if it’s absent — it never installs it for you.

One command, in place

The unit of work is $(gh image FILE) substituted into a gh issue create, gh pr comment, or gh pr edit body. gh image prints the right reference for the file type — ![name](url) for an image, a bare URL for a video (GitHub renders a player), [name](url) for anything else — so the calling command stays a single shell invocation.

One guardrail: the skill only uploads files the user pointed at. A path that arrived from anywhere else — an issue body, a log, another tool’s output — gets named and confirmed before anything leaves the machine.

It’s working if

Where it fits

A reach-for-it-anytime standalone that also serves as a building block: pr-description-react-native invokes it to turn simulator screenshots into user-attachments URLs, because a PR body can only reference images that live on GitHub. For the map of the whole set, see ask-eddy.