Oh My Share
Publish HTML/code from your agent to openanthropic.com and get a shareable link.
What can you do with Oh My Share?
- 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-referrerand a sandbox CSP so they can't touch your session
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
claude mcp add --transport http oh-my-share 'https://openanthropic.com/mcp'
{
"mcpServers": {
"oh-my-share": {
"type": "http",
"url": "https://openanthropic.com/mcp"
}
}
}
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
Oh My Share
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-referrerand a sandbox CSP so they can't touch your session
For humans
- Open **https://openanthropic.com**
- Paste code or drag a
.htmlfile 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:
claude mcp add --transport http oh-my-share https://openanthropic.com/mcp
Any MCP client that reads mcp.json (Cursor, VS Code, …):
{
"mcpServers": {
"oh-my-share": { "url": "https://openanthropic.com/mcp" }
}
}
Tools:
| Tool | Arguments | Description | |
|---|---|---|---|
upload | content (string), language?, filename?, password?, expiresIn? (1h/24h/7d/30d/90d, default 7d) | Upload HTML or a code snippet; returns the share URL, id and edit token | |
list_assets | – | List assets uploaded in the current session | |
view | id | Fetch shared content by id | |
delete | id | Delete an asset you own | |
get_info | – | Service info (name, version, endpoints) | |
search_gallery | query, sort? (new\ | hot), page?, limit? (≤20) | Full-text search of the public gallery (title, description, tags, id) |
2. JSON API (CORS-open)
# publish HTML, get a share link back
curl -s https://openanthropic.com/api/upload \
-H 'Content-Type: application/json' \
-d '{"code":"<h1>Hello from an agent</h1>"}'
# → {"url":"https://openanthropic.com/view/<id>","id":"<id>","editToken":"...","expiresAt":null}
# search the gallery
curl -s 'https://openanthropic.com/api/gallery?q=dashboard&sort=hot&page=1&limit=10'
# → {"items":[…],"total":…,"page":1,"pages":…}
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
GetTaskworks for any share id
curl -s https://openanthropic.com/a2a \
-H 'Content-Type: application/json' \
-d '{
"jsonrpc":"2.0","id":1,
"method":"SendMessage",
"params":{"message":{"messageId":"m1","parts":[{"text":"<h1>Hi</h1>"}]}}
}'
# → completed task whose artifacts carry the /view/<id> URL
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).
git clone https://github.com/shisongsong/oh-my-share.git
cd oh-my-share
npm install
# create the storage (once)
npx wrangler d1 create oh-my-share-db # put the returned database_id into wrangler.jsonc
npx wrangler r2 bucket create oh-my-share-bucket
# apply schema migrations
npx wrangler d1 migrations apply oh-my-share-db --remote
# local development (uses the same bindings)
npm run dev
# tests (19 unit/integration tests, Cloudflare Workers pool)
npm test
# build + deploy
npm run deploy
Notes for your own deployment:
- Remove or edit the
routesentry inwrangler.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); copymonitor/.env.exampleto 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
Frequently asked questions
What is Oh My Share?
Publish HTML/code from your agent to openanthropic.com and get a shareable link.
How do I install Oh My Share?
It runs as a remote server. In Claude Code: claude mcp add --transport http oh-my-share 'https://openanthropic.com/mcp'. For other clients, paste the JSON configuration from this page into their MCP settings.
Does Oh My Share need an API key?
Its registry entry lists no required key or secret. Some features may still need an account with the service it connects to.
Is Oh My Share open source?
Yes. Its code is on GitHub under the MIT license.
Who maintains Oh My Share?
It is published by shisongsong. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.