SKILL.md
Image Uploader Skill
This skill allows uploading local image files to public image hosting services. It supports sm.ms, Imgur, and GitHub (with jsDelivr CDN acceleration).
Prerequisites
- Dependencies: The skill requires Python 3 and the
requestslibrary.
``bash pip install -r skills/image-uploader/requirements.txt ``
- Configuration: An API token or client ID is required depending on the provider.
sm.ms (default): Config File: skills/image-uploader/config.json ``json { "smmstoken": "YOURTOKEN" } ` Environment Variable: SMMS_TOKEN * CLI Argument: --token`
Imgur: Config File: skills/image-uploader/config.json ``json { "imgurclientid": "YOURCLIENTID" } ` Environment Variable: IMGURCLIENTID * CLI Argument: --token`
GitHub: Config File: skills/image-uploader/config.json ``json { "githubtoken": "YOURGITHUBTOKEN", "githubowner": "YOURGITHUBUSERNAME", "githubrepo": "YOURIMAGEREPONAME", "githubpath": "images", "githubbranch": "main", "githubcdn": "jsdelivr" } ` Environment Variables: IMAGEUPLOADERGITHUBTOKEN, IMAGEUPLOADERGITHUBOWNER, IMAGEUPLOADERGITHUBREPO, IMAGEUPLOADERGITHUB_CDN CLI Argument: --token (for token only) CDN Options: "jsdelivr" — cdn.jsdelivr.net (default, international) "china" — jsd.cdn.zzko.cn` (China mirror)
Default Provider: Set defaultprovider in config.json to "smms", "imgur", or "github", or use the IMAGEUPLOADER_PROVIDER environment variable.
Usage
To upload an image, run the Python script:
python3 skills/image-uploader/image_uploader.py <path_to_image>
Examples
Upload to sm.ms (default, using config/env token):
python3 skills/image-uploader/image_uploader.py /Users/me/Pictures/screenshot.png
Upload to Imgur:
python3 skills/image-uploader/image_uploader.py /Users/me/Pictures/screenshot.png --provider imgur
Upload to GitHub (jsDelivr CDN):
python3 skills/image-uploader/image_uploader.py /Users/me/Pictures/screenshot.png --provider github
Upload with explicit token:
python3 skills/image-uploader/image_uploader.py image.png --token "YOUR_API_TOKEN"
Upload to Imgur using env var:
IMGUR_CLIENT_ID="your_id" python3 skills/image-uploader/image_uploader.py image.png --provider imgur
Upload to GitHub using env vars:
IMAGE_UPLOADER_GITHUB_TOKEN="your_token" IMAGE_UPLOADER_GITHUB_OWNER="user" IMAGE_UPLOADER_GITHUB_REPO="images" python3 skills/image-uploader/image_uploader.py image.png --provider github
Output
The script outputs the result to stdout.
Success (sm.ms):
✅ Upload Successful!
URL: https://s2.loli.net/2023/01/01/abcdefg.jpg
Delete Link: https://sm.ms/delete/xyz123
Filename: screenshot.png
Success (Imgur):
✅ Upload Successful!
URL: https://i.imgur.com/abcdefg.png
Delete Hash: AbCdEfGhIjK
Success (GitHub):
✅ Upload Successful!
CDN URL: https://cdn.jsdelivr.net/gh/user/repo@main/images/a1b2c3d4_screenshot.png
Raw URL: https://raw.githubusercontent.com/user/repo/main/images/a1b2c3d4_screenshot.png
Already Exists (sm.ms):
⚠️ Image already exists.
URL: https://s2.loli.net/2023/01/01/abcdefg.jpg
Failure:
❌ Upload Failed
Message: Unauthorized.