Share AI-generated HTML as a private, end-to-end encrypted link. Update it later at the same link.
Runs on your machine from its package; the steps are below.

At most: creates or changes data: records, files, settings.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
npx -y html-cloud-mcp
MCP client config
{
"mcpServers": {
"html-cloud": {
"command": "npx",
"args": [
"-y",
"html-cloud-mcp"
]
}
}
}
Share an HTML file. Keep the key.
Zero-knowledge, end-to-end encrypted HTML file sharing.
HTML Cloud · npm · Security · CLI · MCP
Your browser encrypts the file with AES-256-GCM before anything is uploaded. The decryption key lives after the # in the share URL — browsers never send that part to the server. We store only ciphertext.
/v/{id}#viewKey — give this to anyone you want to read the file/e/{id}#editKey — keep this private; it lets you replace the file, change its expiry, or delete it without changing the share linkThe server stores:
SHA-256(editKey) for authorization — never the plaintext keysSHA-256(editKey) is stored; the raw edit_key is verified on every write request (replace, expiry, settings, delete)model:pruneSee html.cloud/security for the full write-up.
Share a file from the terminal — encrypted locally, same crypto module as the browser:
npx html-cloud ./file.html
Or pipe straight from a generator:
my-report-tool | npx html-cloud -
The package lives in cli/ and on npm.
See html.cloud/cli for usage and options.
Let Claude (or any MCP client) share HTML for you. The server is published as html-cloud-mcp and lives in cli/mcp/:
{
"mcpServers": {
"html-cloud": {
"command": "npx",
"args": ["-y", "html-cloud-mcp"]
}
}
}
See html.cloud/mcp for setup instructions.
.env for production)cp .env.example .env
php artisan key:generate
php artisan migrate
npm install && npm run build
php artisan serve
Run the test suite with:
php artisan test
For production, add a cron entry to run the scheduler:
* * * * * cd /path/to/html.cloud && php artisan schedule:run >> /dev/null 2>&1
Clone, configure .env (APP_URL, DB_* if using MySQL/Postgres), run behind nginx or Caddy. Everything, including the encrypted blobs, lives in the database — back that up and you have the whole state.