Docs
Everything the landing page leaves out: install choices, updating a shared page, the agent skill, and the limits.
#Install
The CLI is the npm package htmldoc-cli. Pick one:
No install (npx)
npx htmldoc-cli login
npx htmldoc-cli report.html
Global install (shorter command)
npm i -g htmldoc-cli
htmldoc login
htmldoc report.html
Both print one line on success: the share link. Errors go to stderr, so the link is safe to pipe.
No terminal at hand? Publish from the browser instead.
#Sign in once
htmldoc login prints an approval link and opens it in your browser when it can. Sign in with GitHub, check the code and the requesting address, press Approve. In a terminal the same command waits for that click, stores the key, and tells you who you are signed in as.
An agent has no terminal, so for it login exits at once after printing the link, and htmldoc login --wait picks the key up after your click. The skill runs both and relays the link; you only click Approve. A code works once and lasts 10 minutes.
login --paste opens nothing and asks for one thing: your API key. Get it from the dashboard after signing in with GitHub. The key is stored in ~/.config/htmldoc/config.json, readable only by you.
For CI or scripts, set HTMLDOC_API_KEY in the environment instead of running login.
#From the browser
Sign in and press + New on the dashboard. Two tabs: Upload picks an .html or .md file from your machine; Paste source takes a filename and the source text. The filename's extension decides the type.
The link appears at the top of the dashboard with a Copy button. Same checks, same size caps, and the same upload budget as the CLI. Updating a page in place stays on the CLI with --update.
#Update a page in place
Every page has a twelve-character id, the last part of its link. Pass it with --update to replace the content behind the same link and reset its 30-day clock:
htmldoc report.html --update abc123def456
htmldoc report.html --update https://p.htmldoc.space/abc123def456
The CLI remembers which file went to which id. Share the same path again and it tells you the id on stderr, so you can choose between a fresh link and an update.
An expired page stays revivable for 7 more days with --update. After that its id is gone for good.
#Ask your AI agent
The htmldoc skill teaches Claude, Codex, Pi, or any AI agent that supports skills to share a file for you. Install it once:
npx skills add ajaxray/htmldoc-skill
Then ask in plain words: "share this doc", "share this plan with htmldoc", "make this shareable", "share it again". The agent runs the CLI, which uses the login above. It never reads your API key and never calls the API directly.
No need to sign in first. If the CLI has no key yet, the agent tells you htmldoc.space needs a GitHub sign-in, shows you the approval link and code, waits for your click, then finishes the share. Already ran login yourself, or set HTMLDOC_API_KEY? It just shares.
#Why HTML, and what to ask for
Agents write better HTML than Markdown. The Claude Code team makes the case in The Unreasonable Effectiveness of HTML, with twenty example pages: plans, PR reviews, design systems, prototypes, reports, slide decks. Their one caveat is that the file then needs somewhere to live. That is this.
Prompts that produce something worth sharing: "make a single self-contained HTML file", "lay the options out side by side in a grid", "add sliders to tune it", "add a copy-as-JSON button". Then "share it with htmldoc".
Scripts run. A shared page keeps its inline JavaScript, styles, and scripts loaded from a CDN, so collapsible sections, sliders, draggable boards, and copy buttons all work. What a page cannot do: set cookies, use the camera, microphone, or location, or register a service worker. Every page shares one viewer origin, so do not keep secrets in browser storage.
#Examples
Three real pages, each shared with the tool. They expire like any other page and get re-shared with --update, so the links stay the same.
- A plan: Markdown, rendered. The product roadmap, published with the product.
- A report: HTML with bars and a table. The file from the demo GIF.
- A UI mockup: HTML, static, generated from a one-paragraph brief.
Three more, straight from the Claude Code team's html-effectiveness examples (MIT), re-shared unchanged:
- An implementation plan: milestones, data-flow diagrams, mockups, risks.
- Component variants: every state of a UI component on one sheet.
- SVG illustrations: inline figures for a blog post.
#Commands
htmldoc <file> share, print the link
htmldoc <file> --update <id> replace the page behind an existing link
htmldoc <file> --json print JSON instead of a bare link
htmldoc login sign in through the browser, store the key
htmldoc login --paste paste a key copied from the dashboard
htmldoc list your pages, newest first
htmldoc delete <id> remove a page; its link shows a removed notice
#Limits
| file types | One .html / .htm or .md / .markdown file per page. Markdown is rendered server-side (GitHub-flavoured). |
| size | HTML up to 2 MB, Markdown up to 512 KB. |
| lifetime | 30 days from the last upload. Updating resets it. |
| live pages | 100 per account. Delete or let old ones expire. |
| uploads | 10 per minute, 100 per day. |
| visibility | Unlisted and noindex, not private. Anyone with the link can open it. |
| badge | Every page carries a small fixed badge linking here and to a report form. It is hidden when printing. |
| caching | Browsers may keep a copy but check with the server on every visit, so an updated page shows at once and a removed or expired one stops showing at once. |
#Feedback and roadmap
The roadmap is a set of GitHub issues. React with 👍 on the ones you want; the list sorted by votes is what gets built next.
- Feature requests, votes, anything about the site: github.com/ajaxray/htmldoc.space
- A bug in the
htmldoccommand: htmldoc-cli issues - The skill misbehaving: skill issues
- A page that should not be online: the Report link in its badge, or the report form
#Source
- CLI: github.com/ajaxray/htmldoc-cli · npm htmldoc-cli
- Skill: github.com/ajaxray/htmldoc-skill
- Roadmap, changelog, demo assets: github.com/ajaxray/htmldoc.space. The service itself is closed source.