PrivateBin Upload Skill
by @kafcoppelia
Upload content to a PrivateBin instance and return a shareable link. Use when the user wants to share text, code, reports, or files via paste URL with option...
clawhub install privatebin-uploadπ About This Skill
name: privatebin-upload description: Upload content to a PrivateBin instance and return a shareable link. Use when the user wants to share text, code, reports, or files via paste URL with options like expiry, password protection, or burn-after-reading.
PrivateBin Upload Skill
When to Use
Use this skill when:
Do NOT use this skill when:
privatebin show directly)Input / Output
Input:
content: string | file_path # text/code to upload, or file path
formatter?: plaintext | markdown | syntaxhighlighting # default: plaintext
expire?: 5min | 10min | 1hour | 1day | 1week | 1month | 1year | never
burn_after_reading?: boolean # default: false
password?: string # ask user if requested
attachment?: boolean # true for binary/image/archive files
bin?: string # named instance from configOutput:
paste_url: string # shareable link to present
expire: string # expiry setting used
password?: string # echoed back if set
Steps
1. Check CLI β Run privatebin --version. If not found, install privatebin-cli and stop until user resolves it.
2. Check config β Verify ~/.config/privatebin/config.json exists. If missing, run:
privatebin init # default: privatebin.net
privatebin init --host https://bin.example.com # custom host
3. Determine parameters β Infer formatter, expiry, attachment from context. Use defaults (plaintext, 1day) if unspecified. Ask for password only if user requested it.
4. Run upload β Use --output=json as global flag (before create):
# Text/code via stdin
printf '%s' "" | privatebin --output=json create [flags] # From file
privatebin --output=json create --filename=/path/to/file [flags]
# File attachment
privatebin --output=json create --attachment --filename=/path/to/file [flags]
5. Parse response β Extract paste_url from JSON:
{ "paste_id": "...", "paste_url": "https://bin.example.com?id#key", "delete_token": "..." }
6. Confirm β Present paste_url, expiry, and password (if set) to user.
Common Flags
| Flag | Example | Use Case |
|------|---------|----------|
| Formatter | --formatter=markdown | Markdown reports |
| Expiry | --expire=10min | Quick share |
| Burn | --burn-after-reading | One-time secret |
| Password | --password=secret | Access control |
| Attachment | --attachment | Binary/image files |
On Failure
| Error | Action |
|-------|--------|
| CLI not found | Guide user to install (see README.md) |
| no privatebin instance configured | Run privatebin init --host |
| Rate limit | Wait 10s, retry once. If fails again, report to user |
| Upload error | Show error message. Check host URL, network, config |