duodoc cli

A thin CLI that turns any HTML artifact in your Claude Code session into a hosted, shareable, comment-able doc — and lets the agent close the loop on incoming feedback without leaving the terminal.
Install
npx @duodoc/cli init # one-time, sets up auth duodoc --help
The three commands
Creates a doc (or a new version of one) and prints the shareable URL.
Fetches the latest HTML plus every open comment into .duodoc/comments.md. Plain Markdown — an agent can read it directly.
Asks Claude to rewrite the HTML to address each open comment, one at a time, committing a new version per comment. Skips the browser preview — meant for batch runs from inside an agent session.
With Claude Code
The CLI is built to slot into a Claude Code workflow. Once you duodoc pull, the comments are a file the agent can read directly. Tell it:
“Address every open comment in.duodoc/comments.mdby editingdoc.html, then runduodoc push doc.html.”
The push-pull rhythm replaces hand-copying between your terminal and a browser comment thread. Reviewers stay in the doc, the agent stays in the repo, and the URL is the rendezvous.
Claude Code skills
Two ready-made Claude Code skills wrap the workflow above so your agent invokes them by intent rather than command:
- /duodoc-publish — push an HTML or MD artifact, return the share URL.
- /duodoc-address — pull open comments, address each with a surgical edit, push v(n+1) per comment so the diff is auditable.
Install by copying the two files from cli/skills/ into your project's .claude/skills/ directory.
Configuration
# .duodoc/duodoc.json (per-project, written by `duodoc init` and updated by push/pull)
{
"server": "<your-duodoc-deployment>",
"slug": "<bound-doc-slug>",
"title": "<doc title>",
"files": ["<file you push>"],
"lastVersionNumber": 0,
"lastSyncedAt": ""
}The CLI keeps its token in a per-project config so multiple projects can address different duodoc instances.