Oh My Share
[License: MIT]
[MCP Registry]
[Live]
Free, no-signup HTML & code sharing — for humans and AI agents.
Paste code (or drag in a .html file) at openanthropic.com, get back a link like https://openanthropic.com/view/<id> that renders in any browser. AI agents get the same ability over MCP, a JSON API, and an A2A endpoint: send HTML in, shareable link out.
中文简介:免费无注册的 HTML/代码分享工具,支持端到端加密、可编辑的永久链接、密码保护、过期时间与公开作品广场;同时内置 MCP 服务器与 A2A 端点,AI 代理可以直接发布内容。
Features
- No account required — paste and share, works on mobile
- Editable permanent links — every share has an
editToken; update the content at the same URL while you iterate
- Optional end-to-end encryption — encrypted in the browser, the server only ever stores ciphertext (registered accounts include a 3-day encryption trial)
- Password protection and expiry (1 hour – 90 days)
- Public gallery — publish works to
/gallery, searchable by keyword, sortable by newest/popular
- Abuse reporting — reported content is unpublished immediately (HTTP 451) pending review, with an appeal path
- Referrer-Policy + sandboxed rendering — shared pages are served with
no-referrer and a sandbox CSP so they can't touch your session
For humans
- Open https://openanthropic.com
- Paste code or drag a
.html file in
- Copy the
/view/<id> link
Advanced options (password, expiry, title, tags, publish-to-gallery) are in the same editor. Use the returned editToken to update the share later at POST /api/edit/<id>.
For AI agents
Three equivalent interfaces — no API key needed for the basic flows.
1. MCP server (streamable HTTP)
Endpoint: https://openanthropic.com/mcp
Listed in the official MCP Registry as io.github.shisongsong/oh-my-share (v2.2.0). No API key required — anonymous clients can call every tool (OAuth metadata is also advertised for clients that prefer it); requests are rate-limited per IP.
Claude Code:
Any MCP client that reads mcp.json (Cursor, VS Code, …):
Tools:
2. JSON API (CORS-open)
3. A2A endpoint (Agent2Agent, v1.0 JSON-RPC)
- Endpoint:
POST https://openanthropic.com/a2a
- Agent card:
https://openanthropic.com/.well-known/agent-card.json
- Registered at a2aregistry.org as
com.openanthropic.oh_my_share
- Stateless: completed tasks are synthesized from stored shares, so
GetTask works for any share id
GetTask, /search <query> and a plain-text help reply (for anything that isn't HTML) are supported too; streaming/cancel methods return standard A2A "not supported" errors.
Self-hosting
Requirements: Node.js 18+, a Cloudflare account (Workers, D1, R2), wrangler (installed via npm install).
Notes for your own deployment:
- Remove or edit the
routes entry in wrangler.jsonc (it points at the production custom domain)
- The daily cron (
triggers.crons) runs the stats snapshot/IndexNow job — optional
monitor/ holds an optional shell-based analytics/uptime monitor (monitor/README.md); copy monitor/.env.example to fill in your Cloudflare API token
Architecture
- Cloudflare Workers — one worker: routing, SSR pages, MCP server, JSON API, A2A endpoint
- D1 (SQLite) — metadata: shares, sessions, subscriptions, gallery index, reports
- R2 — content objects (HTML/code/encrypted blobs)
- Web Crypto — password hashing and client-side end-to-end encryption (keys never leave the browser except in the URL fragment)
Agent-facing files: llms.txt · robots.txt · sitemap · MCP server card · A2A agent card
Contributing
Issues and PRs are welcome. Run npm test before submitting — CI parity matters more than style nits.
License
MIT © shisongsong