Hushdrop

io.github.maxtecheraPublished by GitHub account maxtecherav0.3.3Updated Oct 24, 2026

Open-source artifact sharing for AI agents: private, branded, zero-knowledge links.

Overview

AI-generated overview

Publishes files, HTML pages, and static sites as branded, password-protected links on your own domain from an AI agent.

What you can do
Hushdrop exposes nine MCP tools for artifact sharing: publish_html and publish_file upload raw HTML or a local file (optionally wrapped in a branded download page), update_site replaces a drop's content at the same URL, list_sites and delete_site manage drops, and set_password, set_expiry, set_email_gate and set_feedback adjust a hosted drop. Branding and AES-256 encryption happen client-side, so the server stores only ciphertext, and drops are served under a clean slug with noindex, nofollow, noai headers.
When to use it
Use it when an assistant produces reports, proposals, guides, dashboards, or small static sites that need to be handed to someone as a link you control. It suits users who want their own domain and brand rather than a third-party sharing surface, and who want password protection, expiry, burn-after-read, or email gating on what they share.
Requirements
Runs locally over stdio via the npm package hushdrop-mcp (npx). The managed and hosted tiers need only Node.js and npx; a hosted account uses passwordless GitHub or magic-link login. Self-hosting on your own domain requires a Vercel Blob store and the BLOB_READ_WRITE_TOKEN environment variable, which the manifest marks optional.
Before you install
Self-hosting requires the BLOB_READ_WRITE_TOKEN secret, which grants write access to your Vercel Blob store; it is stored in a local .env file. Publishing uploads your content to Vercel Blob, and self-hosted usage incurs your own Vercel Blob costs. Tools can replace or delete drops, and expiry, burn-after-read, and email-gate settings change who can open a link. Locked HTML is encrypted client-side, but raw files rely on an unguessable slug unless a password is set.

Installation

In SourceWeft

  1. Open Hushdrop in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Hushdrop

Share what your AI builds — on your own domain.

Open-source, self-hosted artifact sharing. Drop a file, an HTML page, or a whole site and get a branded, password-protected (zero-knowledge AES-256) link on your own domain in ~1 second — from your terminal or any AI agent. The open-source alternative to Stacktree.

[npm] [downloads] [CI] [license: MIT] [stars]

Live demo → · Docs · Try in browser · vs Stacktree

[Deploy with Vercel]

[Hushdrop — share what your AI builds, on your own domain]


Quick start

The core way to use Hushdrop is from your agent — it publishes what it builds to your own domain.

Claude Code (recommended — auto-updates via the plugin marketplace):

bash
/plugin marketplace add maxtechera/hushdrop/plugin install hushdrop

Cursor · Codex · Copilot · Gemini · 20+ Agent Skills hosts:

bash
npx skills add maxtechera/hushdrop-skill

No install — open hushdrop.dev/try, drop an HTML file, get a link. No account.

One-off from the terminal — zero install, zero setup, no account:

bash
npx hushdrop report.html       # → https://hushdrop.dev/u/xxxx (+ password, copied) — no setup, no account

Free hosted account — persistent links on your own handle (hushdrop.dev/you/<slug>):

bash
npx hushdrop login                       # passwordless: GitHub or magic linknpx hushdrop report.html                 # → https://hushdrop.dev/you/report-a1b2 (persistent)

Your own domain — self-host on your Vercel Blob (free, MIT, your URL + brand forever):

bash
# one-click: the "Deploy with Vercel" button above auto-provisions a Blob store — then:npx hushdrop-install                         # wire your agents + CLIhush deploy --domain share.yoursite.com   # or do it from a local clone

No dashboard required. Two commands to try; one more to own.

Why this exists

Anthropic shipped artifact sharing so teams could hand each other the things they make with AI. It's great — and it's locked to their surface, their domain, their account. Stacktree does the agent-native version, but it's a closed SaaS: your content sits on their servers, custom domains and limits are paywalled, and you can't audit or self-host it.

I make things all day with agents: reports, proposals, guides, dashboards, whole little sites. I wanted to hand someone a link that's mine — my domain, my brand, my keys — in the time it takes to type one command, without uploading client work to someone else's server. So hush does exactly that: terminal-native, zero-knowledge, on your own domain, usable from any agent. MIT.

Hushdrop vs. the alternatives

HushdropStacktreesend.cotiiny.host
Your own domain✅ free❌❌paid
Zero-knowledge AES-256✅✅files only❌
Open-source / self-host✅ MIT❌❌❌
CLI + MCP (agent-native)✅partial❌❌
Anonymous, no-account drop✅❌✅✅
Burn-after-read / email-gate✅partialpartial❌
Pricefree / self-hostpaidfreemiumfreemium

Full write-ups: vs Stacktree · vs Send · vs ShareDuo

Features

  • 🔒 Zero-knowledge — branding + AES-256 happen client-side; the server only stores ciphertext.
  • 🌐 Your domain, your brand — colors, logo, social cards flow into the unlock gate + previews.
  • 🤖 Agent-native — one CLI command or 9 MCP tools; any agent that runs a shell can publish.
  • ⏱️ Auto-expire & burn-after-read — --expire 7d, --burn, server-enforced cleanup.
  • 📧 Email-gate & revocable share links — restrict by domain, mint/revoke guest links.
  • 📦 Anything static — HTML, Markdown (rendered), PDFs, images, multi-file zips → sites.
  • 🚀 One-click self-host — Deploy to Vercel auto-provisions Blob; no DB to run.

What you can drop

You runYou get
hush report.htmlBranded, AES-256-locked page at yourdomain.com/<slug> (+ auto password)
hush notes.mdMarkdown → rendered, branded HTML page
hush report.html -p secretYour own password
hush report.html --no-lockBranded page, no password — renders for anyone with the link
hush report.html --expire 7dAuto-expire (7d/24h/2w/date); enforce with hush gc
hush report.html --burnBurn-after-read — self-destructs on first view
hush report.html --email-gate acme.comOnly viewers with that email domain can open it
hush deck.pdf --pageA branded download page wrapping the file
hush site.zipMulti-file static site at yourdomain.com/<slug>/
hush -s q3 deck.htmlForce the slug

CLI reference

CommandDoes
hush <file>Publish (managed / hosted / self-host, auto-detected)
hush login / whoami / logoutPasswordless hosted account (GitHub or magic link)
hush list / rm <slug> / gcList, delete, garbage-collect drops
hush share <slug> [--revoke]Mint / revoke a revocable guest link
hush claim <url>Move an anonymous /u/ drop into your account
hush set-expiry / set-email-gate / set-password / set-feedbackManage a hosted drop
hush init / setup / deployConfigure + self-host on your own domain
hush migrateRe-home hosted drops onto your own Blob

Use it from any AI agent

npx hushdrop-install registers the drops MCP server into your detected agents (Claude Code, Codex, Cursor, Windsurf, OpenCode, Amp), puts hush on your PATH, and prints config for GUI clients.

bash
claude mcp add hushdrop -- npx -y hushdrop-mcp        # Claude Codecodex  mcp add hushdrop -- npx -y hushdrop-mcp         # Codex
jsonc
{ "mcpServers": { "hushdrop": { "command": "npx", "args": ["-y", "hushdrop-mcp"] } } }

MCP tools (9 — vs Stacktree's 7)

ToolPurpose
publish_htmlPublish raw HTML → branded, password-protected link
publish_filePublish a local file (optionally a branded download page)
update_siteReplace a drop's content in place (same URL)
list_sites / delete_siteList / delete drops
set_password / set_expiry / set_email_gate / set_feedbackManage a hosted drop

How it works

  1. Read your file and detect its type.
  2. Brand (HTML) — inject favicon, OG/Twitter card, and a subtle corner badge before </body>.
  3. Encrypt (if locking) — StatiCrypt (AES-256, client-side) behind your branded unlock gate. The badge is baked in before encryption, so it survives.
  4. Upload to Vercel Blob under a clean key.
  5. Serve — yourdomain.com/<slug> proxies the blob via middleware.js, rewriting headers so encrypted HTML decrypts + renders (not downloads) and CSP doesn't block the unlock script. Drops are noindex, nofollow, noai.
  6. Report — URL (+ password) printed and copied to your clipboard.

Serving is a dumb transparent proxy; all branding + encryption happen client-side at upload. The server only ever stores ciphertext.

Self-host

[Deploy with Vercel]

The Deploy button clones the repo and auto-provisions a Blob store (it injects BLOB_READ_WRITE_TOKEN; the app derives its store from the token, so it just works). Then npx hushdrop-install + hush init --domain share.yoursite.com to point your CLI + agents at your instance. Self-host is token-only, free, unlimited — no account needed. Full walkthrough in skill/SETUP.md.

Configuration

FileHoldsCommitted?
skill/brand/brand.jsonPresentation — name, colors, owner, social links. Edit to rebrand.yes
~/.hushdrop/config.jsonInfra — domain, blob host, Vercel project. Written by hush init.no
~/.hushdrop/.envYour BLOB_READ_WRITE_TOKEN.no

FAQ

Is it really zero-knowledge? Yes — for locked drops, AES-256 runs in your browser before upload; the server stores only ciphertext. Managed vs. hosted vs. self-host? Managed = anonymous, 24h, no account. Hosted = free account, persistent links on hushdrop.dev/you/…. Self-host = your own domain + Blob. Does it need Vercel? Only to self-host. The managed + hosted tiers need nothing but npx. How is this different from Stacktree? Same agent-native idea, but open-source, self-hostable, your own domain free, and anonymous (no account). See the comparison. Can agents use it without MCP? Yes — it's a single CLI; any agent that runs a shell command can publish. Is it free? Yes. MIT. Self-host costs only your own (usually pennies) Vercel Blob usage.

Security

  • Locked HTML is genuinely AES-256 encrypted in the browser — use long passwords; strong against casual access, not a vault.
  • Raw files are protected by an unguessable slug; use --page -p <password> for a gated download.
  • Passwords are stored in ~/.hushdrop/manifest.json on your machine only — never uploaded.

See SECURITY.md to report a vulnerability.

Contributing

PRs welcome — see CONTRIBUTING.md. It's a few hundred lines of readable Node + HTML, no build step.

MIT · Built by Max Techera · GitHub · Instagram · hushdrop.dev

Source: README.md at commit 3b0e3ef

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.3.3LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts