Share AI-generated HTML as a private, end-to-end encrypted link. Update it later at the same link.
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.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y html-cloud-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"cloud-html-html-cloud": {
"command": "npx",
"args": [
"-y",
"html-cloud-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencehtml-cloud-mcpnpmHTML Cloud works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.