{"id":51065286,"url":"https://github.com/urbanmorph/mdshare","last_synced_at":"2026-06-23T06:01:15.355Z","repository":{"id":348556359,"uuid":"1198441046","full_name":"urbanmorph/mdshare","owner":"urbanmorph","description":"Share and collaborate on local markdown files via shareable links","archived":false,"fork":false,"pushed_at":"2026-05-19T18:12:05.000Z","size":4003,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-19T21:51:36.404Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/urbanmorph.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-04-01T12:33:08.000Z","updated_at":"2026-05-19T18:12:20.000Z","dependencies_parsed_at":"2026-04-02T04:06:13.592Z","dependency_job_id":null,"html_url":"https://github.com/urbanmorph/mdshare","commit_stats":null,"previous_names":["sathya-sankaran/mdshare"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/urbanmorph/mdshare","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urbanmorph%2Fmdshare","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urbanmorph%2Fmdshare/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urbanmorph%2Fmdshare/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urbanmorph%2Fmdshare/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/urbanmorph","download_url":"https://codeload.github.com/urbanmorph/mdshare/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urbanmorph%2Fmdshare/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34677400,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-23T02:00:07.161Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-23T06:01:13.966Z","updated_at":"2026-06-23T06:01:15.335Z","avatar_url":"https://github.com/urbanmorph.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mdshare\n\nShare markdown instantly. Free. No login required.\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n[![MCP](https://img.shields.io/npm/v/mdshare-mcp?label=MCP\u0026color=indigo)](https://www.npmjs.com/package/mdshare-mcp)\n[![GitHub last commit](https://img.shields.io/github/last-commit/urbanmorph/mdshare)](https://github.com/urbanmorph/mdshare)\n[![Runs on Cloudflare Workers](https://img.shields.io/badge/Runs%20on-Cloudflare%20Workers-F38020?logo=cloudflare)](https://mdshare.live)\n\n**[mdshare.live](https://mdshare.live)** | **[API Docs](https://mdshare.live/docs)** | **[VS Code](https://mdshare.live/docs#vscode)** | **[Obsidian](https://mdshare.live/docs#obsidian)**\n\n![mdshare editor](public/screenshot.png)\n\n## Quick Start\n\nPaste markdown at [mdshare.live](https://mdshare.live), start from a blank page, or upload via curl:\n\n```bash\ncurl -X POST https://mdshare.live/api/documents \\\n  -H \"Content-Type: text/markdown\" \\\n  --data-binary @your-file.md\n```\n\nYou get back an admin URL. Share it, or generate links with different permissions.\n\n[Full API documentation](https://mdshare.live/docs)\n\n## Features\n\n- **Four permission levels** -- Admin, Edit, Comment, View -- each with its own shareable link\n- **WYSIWYG editor** -- formatting toolbar, tables, code blocks, keyboard shortcuts\n- **Inline comments** -- anchor comments to specific text, reply, and resolve\n- **Real-time sync** -- WebSocket collaboration, live presence indicators\n- **Link management** -- revoke links instantly, optional expiry, 50-link cap per document\n- **VS Code \u0026 Obsidian plugins** -- share markdown directly from your editor\n- **API \u0026 MCP** -- REST API + MCP server for Claude, ChatGPT, Gemini, Cursor, and Windsurf\n\n## MCP Server\n\n```bash\nnpx mdshare-mcp\n```\n\nSay *\"upload my-notes.md to mdshare\"* in any MCP-compatible AI tool. The MCP server reads files directly from disk (no echoing through the conversation), so it's fast even for large markdown files. [Setup guide](https://mdshare.live/share-markdown-with-ai)\n\n## Claude Code Plugin\n\n```\n/plugin marketplace add urbanmorph/mdshare\n/plugin install mdshare@urbanmorph\n```\n\nWraps the MCP server above with a single skill — Claude reaches for it on phrases like *\"share this markdown\"*. [Setup guide](https://mdshare.live/install-mdshare-plugin) · [source](plugins/claude-code/)\n\n## Cursor Plugin\n\nListed on [Cursor Directory](https://cursor.directory/plugins/mdshare) — click \"Add to Cursor\" on the listing page. Same MCP server, same skill as the Claude Code plugin. [Source](plugins/mdshare-cursor/)\n\n## Obsidian Plugin\n\nListed in the [Obsidian Community Plugins directory](https://community.obsidian.md/plugins/mdshare) — install via `Settings → Community Plugins → Browse → search \"mdshare\"`. Right-click any `.md` file in your vault to share it; admin URL is copied to your clipboard. [Source](https://github.com/urbanmorph/obsidian-mdshare)\n\n## Tech Stack\n\n| Component | Technology |\n|-----------|-----------|\n| Framework | Astro 5 |\n| UI | React (as Astro islands) |\n| Hosting | Cloudflare Workers (native) |\n| Database | Cloudflare D1 (SQLite) |\n| Real-time | Cloudflare Durable Objects (WebSocket) |\n| Editor | Tiptap + tiptap-markdown |\n| Styling | Tailwind CSS v4 |\n| CI/CD | GitHub Actions |\n\n## Local Development\n\n```bash\ngit clone https://github.com/urbanmorph/mdshare.git\ncd mdshare\nnpm install\n\n# Create a .dev.vars file with your Cloudflare API token\necho \"CLOUDFLARE_API_TOKEN=your_token\" \u003e .dev.vars\n\n# Apply local D1 migrations\nnpx wrangler d1 migrations apply mdshare-db --local\n\n# Start dev server\nnpm run dev -- -p 3737\n```\n\n## Contributing\n\nIssues and PRs welcome. Please open an issue first to discuss significant changes.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Furbanmorph%2Fmdshare","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Furbanmorph%2Fmdshare","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Furbanmorph%2Fmdshare/lists"}