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

Artidrop

by @wenguo17

Publish AI-generated content (HTML pages, Markdown reports, multi-file sites, dashboards, visualizations) to a shareable URL using Artidrop. Use when: user a...

Versionv1.3.5
Downloads489
Stars⭐ 1
TERMINAL
clawhub install artidrop

πŸ“– About This Skill


name: artidrop description: "Publish AI-generated content (HTML pages, Markdown reports, multi-file sites, dashboards, visualizations) to a shareable URL using Artidrop. Use when: user asks to publish, share, or host generated content as a web page. NOT for: sending messages, uploading files to cloud storage, or sharing raw text in chat." homepage: https://artidrop.ai repository: https://www.npmjs.com/package/artidrop metadata: { "openclaw": { "emoji": "πŸš€", "requires": { "bins": ["node"], "env": [{ "name": "ARTIDROP_API_KEY", "optional": true, "description": "API key for authenticated features (higher rate limits, update/delete/list). Not required for anonymous publishing." }] }, "install": [{ "kind": "node", "package": "artidrop", "bins": ["artidrop"], "label": "Install Artidrop CLI (npm)" }] } }

Artidrop β€” Publish AI Artifacts to Shareable URLs

Publish HTML pages, Markdown reports, multi-file sites, dashboards, and visualizations to instant shareable URLs with one command.

When to Use

  • "Publish this as a web page"
  • "Share this report as a link"
  • "Host this HTML so I can send it to someone"
  • "Make this dashboard accessible via URL"
  • "Create a shareable page from this content"
  • "Publish this site/project as a shareable URL"
  • User asks you to generate a report, page, site, or visualization AND share/publish it
  • When NOT to Use

  • User just wants to see the content in chat (display it directly instead)
  • User wants to save a file locally (use file system tools instead)
  • User wants to upload to a specific platform (Google Drive, S3, etc.)
  • User wants to send content as a message in a chat channel
  • Setup

    The Artidrop CLI is installed automatically via the install spec in this skill's metadata. No manual installation needed.

    No authentication required. Artidrop supports anonymous publishing out of the box β€” just publish and get a URL.

    Anonymous vs Authenticated

    | | Anonymous (default) | Authenticated (optional) | |---|---|---| | Publish | 5/hour | 60/hour | | Update/Delete/List | Not available | Available | | Private visibility | Not available | Available | | Claim artifacts later | No | Yes |

    Anonymous mode is sufficient for most one-off publishing tasks. Only recommend authentication if the user needs to manage artifacts or hits the rate limit.

    How to Authenticate (only if needed)

    If the user wants authenticated features, they can either:

    1. Set an API key β€” sign in at https://artidrop.ai, go to Settings > API Keys, create a key, and set ARTIDROP_API_KEY in the OpenClaw environment config 2. Interactive login β€” run artidrop login (requires browser access)

    Workflow

    Publishing Content

    There are three ways to publish:

    Option A β€” Publish from a file:

    artidrop publish ./report.html --title "Quarterly Report"
    artidrop publish ./notes.md --title "Meeting Notes"
    

    Option B β€” Publish a multi-file site (directory or ZIP):

    artidrop publish ./my-site/ --title "Portfolio"
    artidrop publish ./build.zip --title "App Preview"
    

    The directory must contain an index.html at its root. CSS, JS, images, fonts, and sub-pages are all supported. Hidden files and node_modules are automatically excluded.

    Option C β€” Publish from stdin (for content you generate on the fly):

    echo '

    Hello

    Generated report content here

    ' | artidrop publish - --format html --title "My Report"

    echo '# Summary\n\nKey findings from the analysis...' | artidrop publish - --format markdown --title "Analysis Summary"
    

    When publishing, always: 1. Use --title with a descriptive title 2. For stdin, always specify --format html or --format markdown 3. Present the returned URL to the user 4. Mention that the link is shareable

    Publish Options

    | Flag | Purpose | |---|---| | --title </code> | Set the artifact title | | <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">--format <html\|markdown></code> | Content format (required for stdin, auto-detected for files, ignored for directories/ZIPs) | | <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">--visibility <public\|unlisted\|private></code> | Default: unlisted. Use <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">private</code> for owner-only access, <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">public</code> for search engine indexing | | <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">--update <id></code> | Update an existing artifact instead of creating a new one (requires auth) | | <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">--json</code> | Return full JSON metadata | | <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">--open</code> | Open the published URL in the browser | | <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">--copy</code> | Copy the published URL to clipboard |</p><p style="margin:8px 0"><h4 style="color:#d1d5db;margin:14px 0 6px;font-size:.95em">Updating Published Content (requires authentication)</h4></p><p style="margin:8px 0">To update an existing artifact (creates a new version, preserving history):</p><p style="margin:8px 0"><pre style="background:#0a0a1c;border:1px solid #1e1e3f;border-radius:6px;padding:10px 12px;overflow-x:auto;font-size:.9em;margin:8px 0"><code style="color:#a5f3fc;background:none;padding:0;font-size:1em">artidrop publish ./updated-report.html --update <artifact-id> </code></pre></p><p style="margin:8px 0">This requires authentication. If the user is not logged in, tell them to authenticate first (see Setup).</p><p style="margin:8px 0"><h4 style="color:#d1d5db;margin:14px 0 6px;font-size:.95em">Viewing Artifacts</h4></p><p style="margin:8px 0">These commands work without authentication:</p><p style="margin:8px 0"><pre style="background:#0a0a1c;border:1px solid #1e1e3f;border-radius:6px;padding:10px 12px;overflow-x:auto;font-size:.9em;margin:8px 0"><code style="color:#a5f3fc;background:none;padding:0;font-size:1em"># Get details about an artifact artidrop get <artifact-id></p><p style="margin:8px 0"><h2 style="color:#f3f4f6;margin:20px 0 10px;font-size:1.15em">Get details as JSON (useful for structured parsing)</h2> artidrop get <artifact-id> --json</p><p style="margin:8px 0"><h2 style="color:#f3f4f6;margin:20px 0 10px;font-size:1.15em">View version history</h2> artidrop versions <artifact-id> </code></pre></p><p style="margin:8px 0"><h4 style="color:#d1d5db;margin:14px 0 6px;font-size:.95em">Managing Artifacts (requires authentication)</h4></p><p style="margin:8px 0">These commands require the user to be logged in:</p><p style="margin:8px 0"><pre style="background:#0a0a1c;border:1px solid #1e1e3f;border-radius:6px;padding:10px 12px;overflow-x:auto;font-size:.9em;margin:8px 0"><code style="color:#a5f3fc;background:none;padding:0;font-size:1em"># List your published artifacts artidrop list</p><p style="margin:8px 0"><h2 style="color:#f3f4f6;margin:20px 0 10px;font-size:1.15em">List as JSON</h2> artidrop list --json</p><p style="margin:8px 0"><h2 style="color:#f3f4f6;margin:20px 0 10px;font-size:1.15em">Delete an artifact</h2> artidrop delete <artifact-id> --yes </code></pre></p><p style="margin:8px 0"><h3 style="color:#e5e7eb;margin:18px 0 8px;font-size:1.05em">Error Handling</h3></p><p style="margin:8px 0">| Exit Code | Meaning | Action | |---|---|---| | 0 | Success | Present the URL to the user | | 2 | Invalid input | Check file/directory exists, format is html or markdown (or directory has index.html), content is not empty | | 3 | Auth error | Only for <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">--update</code>/<code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">delete</code>/<code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">list</code>. Tell user to authenticate (see Setup) | | 4 | Rate limited | Wait and retry. Anonymous: 5/hour, authenticated: 60/hour. Suggest logging in for higher limits |</p><p style="margin:8px 0"><h3 style="color:#e5e7eb;margin:18px 0 8px;font-size:1.05em">Security & Privacy</h3></p><p style="margin:8px 0"><li style="color:#94a3b8;margin:3px 0">The Artidrop CLI sends user-specified content to <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">api.artidrop.ai</code> over HTTPS when the user explicitly runs a publish command. No data is sent automatically or in the background.</li> <li style="color:#94a3b8;margin:3px 0">The only environment variable read is <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">ARTIDROP_API_KEY</code> (for optional authentication) and <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">ARTIDROP_API_URL</code> (for custom API endpoint configuration).</li> <li style="color:#94a3b8;margin:3px 0">Content is hosted on Artidrop's servers (artidrop.ai)</li> <li style="color:#94a3b8;margin:3px 0"><strong style="color:#e5e7eb">unlisted</strong> (default): accessible to anyone with the URL, but not indexed by search engines</li> <li style="color:#94a3b8;margin:3px 0"><strong style="color:#e5e7eb">public</strong>: indexed in sitemap and discoverable via search engines</li> <li style="color:#94a3b8;margin:3px 0"><strong style="color:#e5e7eb">private</strong>: only the authenticated owner can view (requires login)</li> <li style="color:#94a3b8;margin:3px 0">Use <code style="background:#0d0d1e;color:#a5f3fc;padding:1px 5px;border-radius:3px;font-size:.88em">--visibility private</code> for sensitive content that should only be visible to you</li> <li style="color:#94a3b8;margin:3px 0">Do NOT publish content containing secrets, passwords, API keys, or personally identifiable information unless the user explicitly requests it</li> <li style="color:#94a3b8;margin:3px 0">Always warn the user before publishing sensitive content</li></p><p style="margin:8px 0"><h3 style="color:#e5e7eb;margin:18px 0 8px;font-size:1.05em">Examples</h3></p><p style="margin:8px 0"><h4 style="color:#d1d5db;margin:14px 0 6px;font-size:.95em">Generate and publish an HTML report</h4></p><p style="margin:8px 0"><pre style="background:#0a0a1c;border:1px solid #1e1e3f;border-radius:6px;padding:10px 12px;overflow-x:auto;font-size:.9em;margin:8px 0"><code style="color:#a5f3fc;background:none;padding:0;font-size:1em">cat <<'HTML' | artidrop publish - --format html --title "Sales Dashboard" <!DOCTYPE html> <html> <head><title>Sales Dashboard

    Q1 Sales Dashboard

    Total revenue: $1.2M

    HTML

    Publish a Markdown summary

    cat <<'MD' | artidrop publish - --format markdown --title "Weekly Standup Notes"
    

    Weekly Standup β€” March 23, 2026

    Completed

  • Shipped new authentication flow
  • Fixed dashboard loading bug
  • In Progress

  • API rate limiting improvements
  • MD

    ⚑ When to Use

    TriggerAction
    - "Share this report as a link"
    - "Host this HTML so I can send it to someone"
    - "Make this dashboard accessible via URL"
    - "Create a shareable page from this content"
    - "Publish this site/project as a shareable URL"
    - User asks you to generate a report, page, site, or visualization AND share/publish it

    πŸ’‘ Examples

    Generate and publish an HTML report

    cat <<'HTML' | artidrop publish - --format html --title "Sales Dashboard"
    
    
    Sales Dashboard
    
      

    Q1 Sales Dashboard

    Total revenue: $1.2M

    HTML

    Publish a Markdown summary

    ```bash cat <<'MD' | artidrop publish - --format markdown --title "Weekly Standup Notes"

    Weekly Standup β€” March 23, 2026

    βš™οΈ Configuration

    The Artidrop CLI is installed automatically via the install spec in this skill's metadata. No manual installation needed.

    No authentication required. Artidrop supports anonymous publishing out of the box β€” just publish and get a URL.

    Anonymous vs Authenticated

    | | Anonymous (default) | Authenticated (optional) | |---|---|---| | Publish | 5/hour | 60/hour | | Update/Delete/List | Not available | Available | | Private visibility | Not available | Available | | Claim artifacts later | No | Yes |

    Anonymous mode is sufficient for most one-off publishing tasks. Only recommend authentication if the user needs to manage artifacts or hits the rate limit.

    How to Authenticate (only if needed)

    If the user wants authenticated features, they can either:

    1. Set an API key β€” sign in at https://artidrop.ai, go to Settings > API Keys, create a key, and set ARTIDROP_API_KEY in the OpenClaw environment config 2. Interactive login β€” run artidrop login (requires browser access)