skills/giggle-files-management/SKILL.md
Use when the user wants to upload, share, or host a file. Uploads local files to Giggle asset service and returns public/download URLs. Say briefly that upload is starting before the command; share URLs as soon as the script returns. Triggers: upload file, share file, host file, send image, I need to share a file.
npx skillsauth add giggle-official/skills giggle-files-managementInstall 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.
Source: giggle-official/skills · API: giggle.pro
Upload local files to the Giggle asset service. Returns a public URL for preview and a download URL for direct download.
API Key: Set system environment variable GIGGLE_API_KEY (same as other Giggle skills). Get the key at giggle.pro while logged in: left sidebar → API Key (API 密钥).
Important: Never pass
GIGGLE_API_KEYin exec'senvparameter. API Key is read from system environment variable.
No Retry on Error: If script execution encounters an error, do not retry. Report the error to the user directly and stop.
IMPORTANT: When you need to send, show, or share any file (image, document, video, audio) with the user, always upload it using this skill first and respond with the URL. Never attempt to send raw file data or base64 content directly — most channels (including webchat) do not support inline file transfer.
public_urlread tool) and want to display it — upload first, then respond with the public URLUpload is synchronous. Run the script with file path; it returns JSON on success.
There is no task id or --query loop. Upload is one shell call.
upload.sh, send a short line (e.g. “Uploading…”) for large files or slow links; small files can skip if obvious.public_url / download_url (or the error JSON) in natural language—do not go silent on success or failure.bash scripts/upload.sh "/path/to/file.png"
With custom filename (optional):
bash scripts/upload.sh "/path/to/file.png" "my-custom-name.png"
Success — script outputs JSON (API returns asset_id, name, type, file_url):
{
"asset_id": "string",
"name": "bufan.mp3",
"type": "string",
"file_url": "https://assets.giggle.pro/...",
"public_url": "https://assets.giggle.pro/...",
"download_url": "https://assets.giggle.pro/..."
}
Failure — script outputs {"error":"..."}. Report error to user, do not retry.
file_url / public_url / download_url — use for preview or download| Parameter | Required | Description |
|-----------|----------|-------------|
| <file_path> | yes | Path to local file to upload |
| [custom_filename] | no | Optional custom filename in URL; defaults to file basename |
Any file type accepted by S3 (images, videos, audio, documents, archives, etc.). The script auto-detects content type from the file extension.
URLs returned to the user must be full signed URLs when applicable. Do not strip response-content-disposition=attachment or other query params. Keep script output as-is when forwarding.
giggle.pro — presign + register APIs3.amazonaws.com — S3 upload (presigned PUT)assets.giggle.pro — CDN (returned URLs)development
Talking-head video from image + driving audio: submit tasks via the wrapped generation API and poll for results; requests go through the Giggle gateway.
development
Discord-specific markdown syntax for formatting message strings. Use when constructing strings that will be sent as Discord messages, including: text formatting (bold, italic, underline, strikethrough, spoilers), headers, subtext, code blocks, block quotes, lists, and masked links.
development
Discord bot development - community management, moderation, notifications, and AI integration
development
Auto-deploy a Discord AI bot connected to OpenClaw Gateway. Handles Node.js bot setup, PM2 process management, and Gateway API integration. Use when the user has completed Discord Bot onboarding and needs the bot deployed and running.