← 返回
未分类 中文

Artidrop

Publish AI-generated content (HTML pages, Markdown reports, multi-file sites, dashboards, visualizations) to a shareable URL using Artidrop. Use when: user a...
使用 Artidrop 将 AI 生成的内容(HTML 页面、Markdown 报告、多文件站点、仪表板、可视化图表)发布到可共享的 URL。适用场景:用户...
wenguo17
未分类 clawhub v1.3.5 1 版本 99808.8 Key: 无需
★ 1
Stars
📥 502
下载
💾 0
安装
1
版本
#latest

概述

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)
---------
Publish5/hour60/hour
Update/Delete/ListNot availableAvailable
Private visibilityNot availableAvailable
Claim artifacts laterNoYes

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 '<h1>Hello</h1><p>Generated report content here</p>' | 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

FlagPurpose
------
--title </code></td><td>Set the artifact title</td></tr><tr><td>`--format <html\</td><td>markdown>`</td><td>Content format (required for stdin, auto-detected for files, ignored for directories/ZIPs)</td></tr><tr><td>`--visibility <public\</td><td>unlisted\</td><td>private>`</td><td>Default: unlisted. Use <code>private</code> for owner-only access, <code>public</code> for search engine indexing</td></tr><tr><td><code>--update <id></code></td><td>Update an existing artifact instead of creating a new one (requires auth)</td></tr><tr><td><code>--json</code></td><td>Return full JSON metadata</td></tr><tr><td><code>--open</code></td><td>Open the published URL in the browser</td></tr><tr><td><code>--copy</code></td><td>Copy the published URL to clipboard</td></tr></tbody></table><h3>Updating Published Content (requires authentication)</h3><p>To update an existing artifact (creates a new version, preserving history):</p><pre><code>artidrop publish ./updated-report.html --update <artifact-id> </code></pre><p>This requires authentication. If the user is not logged in, tell them to authenticate first (see Setup).</p><h3>Viewing Artifacts</h3><p>These commands work without authentication:</p><pre><code># Get details about an artifact artidrop get <artifact-id> # Get details as JSON (useful for structured parsing) artidrop get <artifact-id> --json # View version history artidrop versions <artifact-id> </code></pre><h3>Managing Artifacts (requires authentication)</h3><p>These commands require the user to be logged in:</p><pre><code># List your published artifacts artidrop list # List as JSON artidrop list --json # Delete an artifact artidrop delete <artifact-id> --yes </code></pre><h2>Error Handling</h2><table><thead><tr><th>Exit Code</th><th>Meaning</th><th>Action</th></tr></thead><tbody><tr><td>---</td><td>---</td><td>---</td></tr><tr><td>0</td><td>Success</td><td>Present the URL to the user</td></tr><tr><td>2</td><td>Invalid input</td><td>Check file/directory exists, format is html or markdown (or directory has index.html), content is not empty</td></tr><tr><td>3</td><td>Auth error</td><td>Only for <code>--update</code>/<code>delete</code>/<code>list</code>. Tell user to authenticate (see Setup)</td></tr><tr><td>4</td><td>Rate limited</td><td>Wait and retry. Anonymous: 5/hour, authenticated: 60/hour. Suggest logging in for higher limits</td></tr></tbody></table><h2>Security & Privacy</h2><ul><li>The Artidrop CLI sends user-specified content to <code>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>The only environment variable read is <code>ARTIDROP_API_KEY</code> (for optional authentication) and <code>ARTIDROP_API_URL</code> (for custom API endpoint configuration).</li><li>Content is hosted on Artidrop's servers (artidrop.ai)</li><li><strong>unlisted</strong> (default): accessible to anyone with the URL, but not indexed by search engines</li><li><strong>public</strong>: indexed in sitemap and discoverable via search engines</li><li><strong>private</strong>: only the authenticated owner can view (requires login)</li><li>Use <code>--visibility private</code> for sensitive content that should only be visible to you</li><li>Do NOT publish content containing secrets, passwords, API keys, or personally identifiable information unless the user explicitly requests it</li><li>Always warn the user before publishing sensitive content</li></ul><h2>Examples</h2><h3>Generate and publish an HTML report</h3><pre><code>cat <<'HTML' | artidrop publish - --format html --title "Sales Dashboard" <!DOCTYPE html> <html> <head><title>Sales Dashboard</title></head> <body> <h1>Q1 Sales Dashboard</h1> <p>Total revenue: $1.2M</p> </body> </html> HTML </code></pre><h3>Publish a Markdown summary</h3><pre><code>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 </code></pre></div> </div> </div> <div id="tab-versions" class="detail-content"> <div class="detail-section"> <h2>版本历史</h2> <p style="margin-bottom:12px;font-size:14px;color:#94a3b8;">共 1 个版本</p> <ul class="version-list"> <li> <div> <span class="version-tag">v1.3.5</span> <span style="font-size:11px;color:#5b6abf;margin-left:8px;background:#eef0ff;padding:1px 8px;border-radius:10px;">当前</span> </div> <div style="font-size:12px;color:#94a3b8;"> 2026-05-03 05:41 安全 安全 </div> </li> </ul> </div> </div> <div id="tab-security" class="detail-content"> <div class="detail-section"> <h2>安全检测</h2> <div class="sec-grid"> <div class="sec-card"> <h4>腾讯云安全 (Keen)</h4> <div class="sec-status sec-safe"> 安全,无风险 </div> <a href="https://tix.qq.com/search/skill?keyword=17ae16969232dfc950fa6f7d1e37dd3e" target="_blank">查看报告</a> </div> <div class="sec-card"> <h4>腾讯云安全 (Sanbu)</h4> <div class="sec-status sec-safe"> 安全,无风险 </div> <a href="https://static.cloudsec.tencent.com/html-report-v2/2026/05/26/428093_3e32693a1551179722c91f5c9049c2d7.html?q-sign-algorithm=sha1&q-ak=AKID8JMG1bzBC1dz96qNhssfFftujT1NCoFi&q-sign-time=1781237324%3B1812773324&q-key-time=1781237324%3B1812773324&q-header-list=host&q-url-param-list=&q-signature=858e774d3d90fa8884aa2f3d43c15a06d2276d83" target="_blank">查看报告</a> </div> </div> </div> </div> <!-- Recommended Skills --> <div style="margin-top:24px;"> <h2 style="font-size:18px;font-weight:600;margin-bottom:16px;">🔗 相关推荐</h2> <div class="rec-grid"> <div class="rec-card"> <span class="badge-cat" style="margin-bottom:8px;display:inline-block;">security-compliance</span> <h3><a href="/s/skill-vetter">Skill Vetter</a></h3> <div class="rec-owner">spclaudehome</div> <div class="rec-desc">AI智能体技能安全预审工具。安装ClawdHub、GitHub等来源技能前,检查风险信号、权限范围及可疑模式。</div> <div class="rec-stats"> <span style="color:#f39c12;">★ 1,210</span> <span style="color:#5b6abf;">📥 266,154</span> </div> </div> <div class="rec-card"> <span class="badge-cat" style="margin-bottom:8px;display:inline-block;">ai-intelligence</span> <h3><a href="/s/self-improving-agent">self-improving agent</a></h3> <div class="rec-owner">pskoett</div> <div class="rec-desc">捕获经验教训、错误和纠正,以实现持续改进。使用时机:(1)命令或操作意外失败;(2)用户纠正……</div> <div class="rec-stats"> <span style="color:#f39c12;">★ 4,055</span> <span style="color:#5b6abf;">📥 795,961</span> </div> </div> <div class="rec-card"> <span class="badge-cat" style="margin-bottom:8px;display:inline-block;">developer-tools</span> <h3><a href="/s/github">Github</a></h3> <div class="rec-owner">steipete</div> <div class="rec-desc">使用 `gh` CLI 与 GitHub 交互,通过 `gh issue`、`gh pr`、`gh run` 和 `gh api` 管理议题、PR、CI 运行及高级查询。</div> <div class="rec-stats"> <span style="color:#f39c12;">★ 666</span> <span style="color:#5b6abf;">📥 323,794</span> </div> </div> </div> </div> </div> <script> document.addEventListener('DOMContentLoaded',function(){ document.querySelectorAll('.detail-tab').forEach(function(btn){ btn.addEventListener('click',function(e){ var tab = this.getAttribute('data-tab'); document.querySelectorAll('.detail-tab').forEach(function(b){b.classList.remove('active')}); document.querySelectorAll('.detail-content').forEach(function(c){c.classList.remove('active')}); this.classList.add('active'); var el = document.getElementById('tab-'+tab); if(el) el.classList.add('active'); }); }); }); </script> <div class="footer"> <p>Skill工具集 © 2026</p> </div></body> </html>