From claude-resources
Creates GitHub issues with embedded images by uploading images as release assets and embedding them in the issue body. Works around GitHub CLI's lack of native image attachment support.
How this skill is triggered — by the user, by Claude, or both
Slash command
/claude-resources:gh-issue-with-imgs <owner/repo> <title> --body <body> --img <path> [--img <path>...]<owner/repo> <title> --body <body> --img <path> [--img <path>...]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Create GitHub issues with embedded images using release assets as image hosting.
Create GitHub issues with embedded images using release assets as image hosting.
GitHub CLI does not support attaching images to issues natively. This skill works around that by uploading images to a dedicated release, then embedding the asset URLs in the issue body markdown.
Arguments: <owner/repo> <title> --body <body> --img <path> [--img <path>...]
Multiple --img flags supported. If no --body, use empty string.
Extract from the skill arguments:
owner/repo (required) - the target repository--body (optional) - issue body text--img (one or more) - paths to image filesUpload all --img paths with the helper script — it ensures the non-draft
_attachments release exists (cleaning up any legacy draft release), uploads
each file under a unique name, and prints one public download URL per input
path, in order:
bash $HOME/.claude/skills/gh-issue-with-imgs/scripts/upload-to-release.sh <owner/repo> <path> [<path> ...]
Why a script rather than gh release upload <file>#<name>: the #<name> suffix
only sets the asset's display label — the asset name (and download URL) stays
the sanitized original basename, so same-named files collide. The script copies
each file to a unique, URL-safe temp name and uploads that, yielding a predictable
URL. Capture stdout; each line is the browser_download_url for the matching input.
Append image markdown to the body:
<original body text>

For multiple images, add each on its own line.
gh issue create \
--repo <owner/repo> \
--title "<title>" \
--body "$(cat <<'EOF'
<constructed body with embedded images>
EOF
)"
Print the created issue URL.
_attachments release is a real (non-draft) release so asset URLs are publicly accessible without authentication--draft — draft release assets return 404 for unauthenticated requests (e.g., Claude API vision, curl), even though they appear to work in browsers where the user is logged inscripts/upload-to-release.sh helper is shared: the gh-fetch-issue skill reuses it to embed /ss screenshot placeholders into existing issuesnpx claudepluginhub takazudo/claude-resources --plugin claude-resourcesUploads local images to GitHub and returns user-attachments embed URLs for use in PRs, issues, comments, or README files.
Upload local images to a GitHub PR description or comment without committing them to the repo. Use when creating PRs that need before/after screenshots, visual diffs, or any embedded images.
Create well-formatted GitHub issues with intelligent AI-powered label suggestions and content type detection. Use whenever the user wants to.