mcpbeat Sign in

Upload Photo Agent Skill

upload a photo/image/screenshot, host an image, get a public image URL, put images on Vercel Blob, embed images in a PR/comment/doc. Upload local images to Vercel Blob and print public URLs.

1k tokens
context cost
the whole folder, loaded on every use
2
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
3593
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/Devin-AXIS/iPolloWork --skill upload-photo

What comes with it

3 417 bytes besides the instruction
scripts/upload.mjs

The instruction itself

6 sections, as written by the author

Skill: upload-photo

Upload local image files to Vercel Blob and return public URLs for sharing.

When to use

Use whenever an image or screenshot needs a public URL, including PR comments, docs, and sharing.

Requires

BLOB_READ_WRITE_TOKEN must be set in the environment. If it is missing, use the get-env-var skill to fetch it from Infisical:

export BLOB_READ_WRITE_TOKEN="$(infisical secrets get BLOB_READ_WRITE_TOKEN --plain --silent)"

Upload

Run the bundled script from the repo root:

node .opencode/skills/upload-photo/scripts/upload.mjs <file.png> [more files...] [--prefix <path/prefix>] [--stable]

It prints one public URL per line (https://<store>.public.blob.vercel-storage.com/...). --prefix defaults to uploads/<YYYY-MM-DD>. By default Vercel Blob appends a random suffix to the pathname for collision safety; --stable disables that (x-add-random-suffix: 0) for deterministic URLs, so overwrites are possible.

Embed

Use Markdown:

![alt](url)

Or HTML for size control in GitHub comments:

<img src="url" width="700">

Rules

  • Never log BLOB_READ_WRITE_TOKEN.
  • The store is public; do not upload anything sensitive.
  • Prefer PNG, JPEG, or WebP images.

How to use it

Copy the folder

Take devin-axis/upload-photo from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.