Approve / reject each step
Every ### Step N: … renders as a card with approve, reject, and effort sizing. The agent can't start until you've signed off.
Ready for Claude Code, Cursor, Antigravity and any shell-capable agent
When your agent emits a thousand-line markdown plan, nobody reads it carefully — and that's exactly when careful review matters most. html-planner replaces the markdown wall with a live interactive page: approve steps, edit rules, comment inline, answer the agent's questions on the page itself.
npx html-planner@latest init .
The problem
Approve each step individually. Reject with a reason. Leave an inline comment on any sentence. Edit a config value and save it. Answer a question your agent asked — all on the page, without switching context.
Loading…
Drag the divider to compare ↔
★ Live playground
Every interaction you make on the rendered side is real. Approve steps, edit rule cards, click around. This is the actual tool.
What you get
Every ### Step N: … renders as a card with approve, reject, and effort sizing. The agent can't start until you've signed off.
Select any text in a step, click 💬 Comment, leave a note. Highlights persist; the agent reads them before continuing.
:::rule directives become form inputs — text, numbers, booleans. Tweak the values, click save, the agent reads your edits.
Drop a ```mermaid fence and get a rendered SVG — not ASCII art, not a screenshot. Architecture you can actually read.
The agent never spams your chat. It writes questions.jsonl, the page renders interactive cards (radio / multi / text), the agent waits for your answer.
The output is one file. All CSS and JS inlined. Share it, archive it, send it to a non-technical stakeholder. Works offline.
Toggle 🧠 Brainstorm before planning. The agent asks clarifying questions, you answer on-page, and decisions accumulate in a sidebar — before the plan is even written.
Don't just reject a step — propose a different approach. Click ⇄ Alternative, describe how you'd do it, and the agent rewrites that step while preserving the rest.
How it works
Agent and user pass messages through plain files in .html-planner/. No DB. No auth. Binds to 127.0.0.1 only.
plan.mdYour AI agent emits a normal markdown plan to .html-planner/plan.md. The server watches the file and re-renders the page on every change.
Approve, reject, comment, edit rules. Every action POSTs to edits.jsonl. Need clarification? Agent writes questions.jsonl, you answer on the page.
Click Start Creating. The agent reads edits.jsonl, respects your approvals, and streams progress back into the page's activity feed.
Works with any agent
Run html-planner init . in your project — it copies a SKILL.md into .claude/skills/ and merges the required permissions into .claude/settings.json. Then just type /html-planner in Claude Code.
npx html-planner@latest init .
claude # then type /html-planner
Run html-planner init . — it installs a skill into .cursor/skills/. Then invoke /html-planner in Cursor's agent chat.
npx html-planner@latest init .
# Open Cursor → type /html-planner in the agent chat
Run html-planner init . — it installs a skill into .agents/skills/. Antigravity auto-discovers skills from that directory. Then invoke /html-planner in the chat.
npx html-planner@latest init .
# Open Antigravity IDE → type /html-planner
Windsurf supports custom workflows. Run init, then start the server via the embedded terminal. Add the same system-prompt block to your Windsurf rules.
npx html-planner@latest init .
nohup npx html-planner serve . --open &
For any chat-based AI agent (ChatGPT, Gemini, etc.) that can execute shell commands — run these two commands, then paste the system prompt into your chat session:
# 1. Set up the project
npx html-planner@latest init .
# 2. Start the server
npx html-planner@latest serve . --open
Then tell your agent:
When asked to plan a multi-step change, write the plan to
.html-planner/plan.md using markdown sections and steps.
To ask a question, append a JSON line to
.html-planner/questions.jsonl, then poll
.html-planner/answers.jsonl for a matching id.
Honor approve/reject decisions in .html-planner/edits.jsonl.
Watch the loop
Install
Zero install. Runs from the npm registry on demand.
npx html-planner@latest init .
npx html-planner@latest serve . --open
Install once, use everywhere.
npm install -g html-planner
html-planner init .
html-planner serve . --open
Requires Node ≥ 18. Works on macOS, Linux, and Windows (WSL).