smithery/cihebi2

lsky-uploader

Upload files to the self-hosted Lsky image bed (https://lsky.xueguo.us/api/v1), fetch the returned URLs/Markdown snippets, and manage albums or strategies via the REST API.

Installation

$ npx skills add smithery/cihebi2 --skill lsky-uploader

Summary

  • Upload files to the self-hosted Lsky image bed (https://lsky.xueguo.us/api/v1), fetch the returned URLs/Markdown snippets, and manage albums or strategies via the REST API.
  • Use this skill whenever you need to programmatically push screenshots/assets to Lsky and return shareable links inside Codex.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/cihebi2.

npx skills add smithery/cihebi2

Browse all from smithery/cihebi2

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,968 B
  • docs SUMMARY.md 319 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Lsky Uploader

Overview

This skill wraps the Lsky Pro API used by your self-hosted image bed. It explains how to authenticate with personal tokens, how to call /upload, and provides a ready-to-run Python helper (scripts/uploadimage.py) that handles headers, multipart form-data, and prints the resulting URLs/Markdown snippets. See [references/apioverview.md](references/api_overview.md) for a condensed manual extracted from the official docs.

Quick Start

  1. Credentials

- Generate a personal token inside the Lsky dashboard and copy the raw token string (without the Bearer prefix). - Default base URL is https://lsky.xueguo.us/api/v1. Override via the env var LSKYBASEURL or the --base-url flag if your deployment differs. - Set the token in your shell (PowerShell: $env:LSKYTOKEN='1|xxxx', bash: export LSKYTOKEN=1|xxxx).

  1. Upload

- Run python scripts/uploadimage.py path/to/file.png. - Optional flags: --album-id, --strategy-id, --permission 0|1, --name custom-display-name. - The script prints the direct URL, Markdown snippet, delete URL, and the full JSON payload so you can update .lskyupload_cache.json.

  1. Use the links

- links.url is the canonical image URL, links.markdown can be pasted into blog Markdown, links.delete_url lets you remove the asset later. - If the script exits with Lsky API error: ..., inspect the message/HTTP status and cross-check rate limits or permissions.

Manual Steps (without script)

When custom logic is needed, follow these HTTP patterns (details in [references/apioverview.md](references/apioverview.md)):

  • Upload POST /upload: multipart form-data with file plus optional albumid, strategyid, permission, name.
  • List images GET /images?page=1&limit=50&order=latest: pagination response contains data.total and data.data[], each item exposing links, id, album_id, etc.
  • Albums GET /albums, POST /albums, DELETE /albums/:id: useful for separating assets per project.
  • Delete an image DELETE /images/:id: image IDs are available via the list endpoint or the upload response (data.image.id).
  • Rate limiting: watch X-RateLimit-Remaining and pause when it hits zero to avoid HTTP 429.

Script Reference

scripts/upload_image.py

  • Dependency: requests (install via pip install requests if missing).
  • Environment variables:

- LSKYTOKEN (required unless you pass --token) - LSKYBASE_URL (defaults to https://lsky.xueguo.us/api/v1)

  • Exit codes:

- 0 = success - Non-zero = invalid arguments or API errors (an explanatory message is printed)

For automation, capture stdout and parse the final JSON block:

python scripts/upload_image.py demo.png --token "$LSKY_TOKEN" \
  --base-url https://lsky.xueguo.us/api/v1 > upload.json

Then feed into jq or PowerShell ConvertFrom-Json.

Troubleshooting

  • 401 Unauthorized: token missing/expired or header omitted.
  • 403 Forbidden: API disabled by the admin; adjust permissions server-side.
  • 413 Payload too large: respect allowsuffixes and maxsize configured in Lsky.
  • 429 Too Many Requests: back off for ~60 seconds; inspect the rate-limit headers.
  • Custom TLS/Proxy: if running behind an internal CA, call requests with verify=False (not recommended) or install the CA cert on the machine.

Resources