skills/github-image-hosting/SKILL.md
Upload images to img402.dev for embedding in GitHub PRs, issues, and comments. Free tier (1MB, 7-day, no auth) is the default; paid tiers add 5MB max with 1-year ($0.01) or permanent ($1) retention via x402. Use when the agent needs to share an image in a GitHub context — screenshots, mockups, diagrams, or any visual. Triggers: "screenshot this", "attach an image", "add a screenshot to the PR", "upload this mockup", or any task producing an image for GitHub.
npx skillsauth add img402/skills github-image-hostingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Upload an image to img402.dev and embed the returned URL in GitHub markdown.
| Tier | Price | Max size | Retention | Use when | |------|-------|----------|-----------|----------| | Free | $0 | 1 MB | 7 days | PR review screenshots, issue comments, draft mockups | | 1-year | $0.01 USDC | 5 MB | 1 year | README diagrams, architecture docs | | Permanent | $1.00 USDC | 5 MB | Permanent* | README hero images, public blog post visuals |
* Service-life retention with a 90-day on-site shutdown notice — see Terms § 2A.
# Upload (multipart)
curl -s -X POST https://img402.dev/api/free -F image=@/tmp/screenshot.png
# Response
# {"url":"https://i.img402.dev/aBcDeFgHiJ.png","id":"aBcDeFgHiJ","contentType":"image/png","sizeBytes":182400,"expiresAt":"2026-02-17T..."}
screencapture -x /tmp/screenshot.png # macOS — full screen
screencapture -xw /tmp/screenshot.png # macOS — frontmost window
sips -Z 1600 /tmp/screenshot.png # macOS — scale longest edge to 1600px
curl -s -X POST https://img402.dev/api/free -F image=@/tmp/screenshot.png
url in GitHub markdown:

Use gh CLI to embed images in PRs and issues:
# Add to PR description
gh pr edit --body "$(gh pr view --json body -q .body)
"
# Add as PR comment
gh pr comment --body ""
# Add to issue
gh issue comment 123 --body ""
sips -Z 1600 before uploading.gh pr comment or gh pr edit with the image markdown.For larger or longer-lived images, pay via x402 for a token, then upload with the token:
# Step 1: Get an upload token
POST https://img402.dev/api/upload/token # $0.01 USDC → 1-year retention
POST https://img402.dev/api/upload/token/permanent # $1.00 USDC → permanent retention
# → {"token": "a1b2c3...", "expiresAt": "..."}
# Step 2: Upload with the token
curl -s -X POST https://img402.dev/api/upload \
-H "X-Upload-Token: a1b2c3..." \
-F image=@/tmp/screenshot.png
# → {"url":"...", "expiresAt":"..."|null} # null = permanent
x402 payment is handled by an x402-capable client (the Payments MCP tool, @x402/client, or similar). See https://img402.dev/blog/paying-x402-apis.
development
Upload images to img402.dev and get a public URL. Three tiers: free (1MB, 7-day, no auth), $0.01 USDC (5MB, 1-year, x402), or $1 USDC (5MB, permanent, x402). Use when the agent needs a hosted image URL — for sharing in messages, embedding in documents, posting to social platforms, or any context that requires a public link to an image file.
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.
development
Run, watch, debug, and extend OpenClaw QA testing with qa-lab and qa-channel. Use when Codex needs to execute the repo-backed QA suite, inspect live QA artifacts, debug failing scenarios, add new QA scenarios, or explain the OpenClaw QA workflow. Prefer the live OpenAI lane with regular openai/gpt-5.4 in fast mode; do not use gpt-5.4-pro or gpt-5.4-mini unless the user explicitly overrides that policy.