duodoc cli

turtwig with a terminal

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

duodoc push <file.html>

Creates a doc (or a new version of one) and prints the shareable URL.

duodoc pull [slug]

Fetches the latest HTML plus every open comment into .duodoc/comments.md. Plain Markdown — an agent can read it directly.

duodoc address [slug]

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.md by editing doc.html, then run duodoc 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:

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.