Minimalist CLI-first Markdown hosting for developers and AI agents.
fastmd lets you push Markdown from terminal to a short URL in milliseconds. The same document can be consumed by humans as HTML and by machines as raw Markdown.
cat report.md | fastmd
# -> https://fastmd.dev/x7y2- Added 8-character IDs for new documents
- Added token-authenticated
/v1/docsAPI and web Dashboard - Added IP rate limiting and dashboard management flow
No Python or CLI dependency required. The skill only needs sh and curl.
curl -fsSL https://raw.githubusercontent.com/wonfull888/fastmd/main/install-skill.sh | shTargets installed by default:
- Claude Code:
~/.claude/skills/fastmd - OpenCode:
~/.config/opencode/skills/fastmd - Codex:
~/.codex/skills/fastmd
Install only one client:
curl -fsSL https://raw.githubusercontent.com/wonfull888/fastmd/main/install-skill.sh | sh -s -- --claude
curl -fsSL https://raw.githubusercontent.com/wonfull888/fastmd/main/install-skill.sh | sh -s -- --opencode
curl -fsSL https://raw.githubusercontent.com/wonfull888/fastmd/main/install-skill.sh | sh -s -- --codexcurl -fsSL https://fastmd.dev/install.sh | shSupported platforms:
- macOS:
arm64,amd64 - Linux:
arm64,amd64
# Pipe mode
cat report.md | fastmd
# File mode
fastmd push report.mdIf you use the fastmd skill in an agent environment, the skill name is just fastmd.
Expected behavior:
- first run auto-generates a local token like
fmd_live_xxxx - the skill pushes the Markdown report to fastmd.dev directly, without requiring CLI installation
- the final result is one short URL instead of a huge inline report
Typical flow:
agent finishes report -> fastmd skill loads token -> push succeeds -> URL returned
Open https://fastmd.dev/dashboard, paste your fmd_live_ token, and manage every document tied to that token.
- list published docs
- copy document URLs
- delete documents from the browser
fastmd get x7y2fastmd delete x7y2fastmd upgrade-
AI External Display Large agent output is published to a clean web view instead of flooding terminal history.
-
Seamless Agent Handoff Use
/:id.mdto pass structured context between local and remote agents. -
Stealth Doc Sharing Share internal docs quickly while keeping distribution controlled.
-
CI/CD Debug Snapshots Pipe failed build/test logs to a short URL for team debugging.
-
Remote Prompt Control Host prompt/state markdown centrally and let remote workers pull updates.
-
Instant Skill Report Sharing Pipe AI skill outputs (SEO audits, content drafts, reports) to fastmd and share a clean private link in milliseconds.
curl -X POST https://fastmd.dev/v1/push \
-H "Content-Type: application/json" \
-d '{"content":"# Hello\nWorld","token":"fmd_live_xxxx"}'Response:
{"id":"Ab3kL9xQ","url":"https://fastmd.dev/Ab3kL9xQ"}curl https://fastmd.dev/v1/docs \
-H "Authorization: Bearer fmd_live_xxxx"Response:
{
"documents": [
{
"id": "Ab3kL9xQ",
"title": "Weekly Report",
"created_at": 1710000000,
"url": "https://fastmd.dev/Ab3kL9xQ"
}
]
}Human-friendly HTML view.
Raw Markdown view for agents and scripts.
curl -X DELETE https://fastmd.dev/v1/Ab3kL9xQ \
-H "Authorization: Bearer fmd_live_xxxx"curl https://fastmd.dev/v1/version- First run generates token like
fmd_live_xxxx - Token is saved locally at
~/.config/fastmd/token - Server stores only token hash (
SHA-256), never raw token - Token ownership controls delete permission
- Detail/raw pages return no-index directives for privacy-first sharing
Skill flow follows the same model: first use bootstraps the token locally, and later pushes reuse the same token automatically.
Skill and CLI are separate products, but they share the same local token file at ~/.config/fastmd/token.
Dashboard uses the same token model. Paste the token in the browser to manage the document list for that identity.
- Skill source:
skills/fastmd - Installer:
install-skill.sh - Main skill entry:
skills/fastmd/SKILL.md - Runtime helper:
skills/fastmd/scripts/publish.sh
git clone https://github.com/wonfull888/fastmd.git
cd fastmd
make build-server
./dist/fastmd-server --port 8080 --db ./data/fastmd.dbReverse proxy example (Caddy):
fastmd.yourdomain.com {
reverse_proxy localhost:8080
}See:
MIT