🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

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...

Versionv1.0.0
Downloads899
TERMINAL
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:

  • User wants to upload/share text, code, reports, or files via a paste link
  • User mentions "paste", "privatebin", "shareable link", "burn after reading", or "password-protect"
  • User needs expiry-controlled or one-time viewing sharing
  • Do NOT use this skill when:

  • User only wants to *read* an existing paste (use privatebin show directly)
  • No content or file has been identified to upload
  • User is asking about PrivateBin in general without intent to upload
  • 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 config

    Output: 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 --force | | Rate limit | Wait 10s, retry once. If fails again, report to user | | Upload error | Show error message. Check host URL, network, config |

    ⚑ When to Use

    TriggerAction
    - User wants to upload/share text, code, reports, or files via a paste link
    - User mentions "paste", "privatebin", "shareable link", "burn after reading", or "password-protect"
    - User needs expiry-controlled or one-time viewing sharing
    **Do NOT use this skill when:**
    - User only wants to *read* an existing paste (use `privatebin show ` directly)
    - No content or file has been identified to upload
    - User is asking about PrivateBin in general without intent to upload