Skip to content

lipengzhou/upload-image-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Upload Image CLI

Upload local images to GitHub repo and get CDN links.

Features

  • Auto compress images (scale down when density >= 100)
  • Convert to specified format (default webp, quality 80)
  • Upload to GitHub via Contents API
  • Output jsDelivr CDN links
  • Support upload from clipboard (cross-platform: macOS/Windows/Linux)

Install

npm i -g @lipengzhou/upload-image-cli

Config

Config file: ~/.upload-image-cli.json

upload-image init

Config example:

{
  "hosts": {
    "github": {
      "username": "your-github-name",
      "repo": "your-repo",
      "branch": "master",
      "token": "ghp_xxx"
    }
  }
}

Token permissions:

  • Fine-grained: Contents: Read and write
  • Classic: repo (or public_repo for public repos)

Note:

  • Repo should be public for jsDelivr access
  • Upload path: image/YYYYMMDDHHmmssSSS.<format>

Usage

# View help
upload-image --help

# Upload from clipboard
upload-image

# Upload images
upload-image --files ./a.png ./b.jpg

# Specify output format (default: webp)
upload-image --files ./a.png -f jpeg

# Upload from clipboard with markdown output
upload-image -o markdown

Options:

  • --files <files...> - Image file paths (if not specified, read from clipboard)
  • -f, --format <format> - Image format (default: webp, supports webp/jpeg/png/avif)
  • -o, --output <format> - Output format: markdown|html|url|raw (default: raw)

Output examples:

# raw (default)
upload success:
https://cdn.jsdelivr.net/gh/your-name/your-repo@master/image/...

# markdown
![image](https://cdn.jsdelivr.net/gh/your-name/your-repo@master/image/...)

# html
<img src="https://cdn.jsdelivr.net/gh/your-name/your-repo@master/image/..." alt="image">

# url
https://cdn.jsdelivr.net/gh/your-name/your-repo@master/image/...

FAQ

  • Config file error → Run upload-image init
  • 401/403 → Check token permissions
  • 404 → Check username/repo/branch config
  • URL not accessible → Wait for jsDelivr sync (usually < 1min)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors