hotedit
Open HTML reports in the browser and edit them live while the person watches, or by hand.
What can you do with hotedit?
- html-visual-editor has a nice
- Lavish has a great agent feedback loop, but
- GrapesJS, VvvebJs and Pinegrow are full page builders that re-serialise documents.
document.designModesaves whatever the scripts rendered.
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
hoteditclaude mcp add hotedit -- npx -y hotedit@0.5.0 mcp
{
"mcpServers": {
"hotedit": {
"command": "npx",
"args": [
"-y",
"hotedit@0.5.0",
"mcp"
]
}
}
}
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
Contents
hotedit
Edit any HTML file in your browser — text, styles, layout and charts — and save the changes straight back into the file. Built for the HTML reports that AI assistants write.
▶ Watch the narrated 95-second tour (MP4, sound on) · or try it yourself: npx hotedit demo
AI assistants produce a lot of HTML: reports, dashboards, summaries. They look great, but fixing a typo, renaming a chart title or moving a section means digging through thousands of lines of generated markup, or asking the AI again. hotedit opens the page in your browser so you can click what you see and change it. Only the bytes you changed are rewritten, so the file stays clean, diff-friendly and yours.
It doesn't change what your AI makes. Let it write the report exactly as it normally would, at the same quality and with the same charts, design and depth. hotedit only adds the ability to edit it afterwards. Nothing is simplified or re-generated, and nothing is added to the file.
Quick start (30 seconds)
You need Node.js 18+. Then:
npx hotedit report.html
Your browser opens the page. Click ✎ Edit (or press ⌥E / Alt+E), click any text and type.
Changes are saved into report.html as you go, ⌘Z / Ctrl+Z undoes them, and ✓ Done
(top right, always in the same place) saves anything still open and stops editing. Hover any
button to see its shortcut: they are all ⌥ / Alt + a key (⌥E edit, ⌥A ask AI, ⌥S style,
⌥I add, ⌥D duplicate, ⌥⌫ delete, ⌥↑/↓ move), so plain keys never trigger anything and
typing is never affected.
Just want to see it? Open a sample report (charts, maths, diagrams) in a throwaway copy:
npx hotedit demo
Not sure which file? Run it with no file and click one from the list:
npx hotedit # lists the HTML files in this folder
To install it permanently, so you can just type hotedit:
npm install -g hotedit
hotedit report.html
What you can do
| How | |
|---|---|
| Edit text | Click and type; the caret lands where you click. Click the next block to save and move on; Enter saves, Esc cancels, ⌘B / ⌘I for bold and italic. In a list, Enter at the end of an item starts a new one. |
| Add things | Select a block and click +: paragraph, heading, list or list item, box, quote, table, code, divider, image, chart, Mermaid diagram or your own HTML. Choose above, below or inside. |
| Move things | Drag ⠿ to move a block anywhere: list items into another list, a paragraph into a box. Or use ⋯ → Move up / down (Alt+↑ / Alt+↓). |
| Style | Aa: size, weight, colour, alignment, font, spacing, background, corners and border. |
| Charts | Click a Plotly, Chart.js, Vega-Lite or Mermaid chart. Pick a type from the tiles (bar, line, area, dots, pie, donut…) and it redraws instantly. Style has switches, menus and colour pickers for titles, axes, legend and series; Data is an editable table with + row; Code is the full spec. Everything previews live; Apply saves. |
| Images & links | 🖼 replaces an image, 🔗 changes a link. |
| Everything else | ⋯: duplicate, hide, delete, or Edit HTML for the selected block. The name chip (e.g. Paragraph ▴) selects the block around it. |
| Ask AI, live | ✨ on a block (or ✨ AI for the whole page): type what should change, and the AI edits the page while you watch, in place, without reloading. Select a block first and it changes only that block. Every change glows as it lands and Undo AI changes takes them all back. It's a chat: ask follow-ups in the box at the bottom, and it shows which AI and model answered. |
Things that are generated by the page's own scripts, such as KaTeX maths, Mermaid output or tables built in JavaScript, are never saved as rendered output. hotedit opens their source instead.
Working with AI agents
✨ Built in: ask, and watch it change
Click ✨, say what you want ("make this shorter", "turn the bars orange", "add a row for March"), and press Do it. The AI reads the page, makes small edits in the file and each one shows up in your browser straight away, without reloading. Connect it once with ⚙, using an AI you already have:
- Claude Code: your Claude plan. Install Claude Code and run
claudeonce to log in. - Codex: your ChatGPT plan.
npm install -g @openai/codexand runcodexonce to log in. - Anthropic API key: paste a key (kept only on your computer, in
~/.htmledit/config.json), or setANTHROPIC_API_KEY. Usesclaude-opus-5-5unless you pick another model. - Other agent: any agent CLI that has hotedit's MCP tools, e.g. after
gemini mcp add hotedit npx -y hotedit mcp, typegemini -y. The request is added as the last argument (or wherever you put{prompt}).
Change just one thing. With a block selected, the panel says Only changes: … and the AI can edit that block only (for a chart, also the code that draws it). Anything else it tries is rejected. Click another block to point it there, or Whole page to lift the limit. All its changes are normal undo steps.
Your own agent, live (MCP)
Give any coding agent that speaks MCP (Claude Code, Codex, Cursor, Gemini CLI…) hotedit's tools, and it can open a report in your browser and edit it while you watch:
claude mcp add hotedit -- npx -y hotedit mcp
codex mcp add hotedit -- npx -y hotedit mcp
Tools: open (opens the file in hotedit and your browser), outline, read and edit
(saved and shown live). The agent finds pages you already have open in hotedit, too.
Skill: your agent's reports open in hotedit by themselves
Install it once. Your agent then writes reports that are easy to edit (text in HTML, chart specs inline), and every HTML report it writes opens in hotedit in your browser automatically, ready to edit. Later edits by the agent show up on the page live.
As a Claude Code plugin (skill, auto-open hook and MCP tools in one go):
/plugin marketplace add Thewhey-Brian/hotedit
/plugin install hotedit@hotedit
Or from the command line:
npx hotedit skill install # Claude Code, all projects (~/.claude)
npx hotedit skill install --project # Claude Code, this project only (./.claude)
npx hotedit skill install --codex # Codex (~/.codex)
This adds the skill and a small hook that runs after the agent writes a file. It ignores
files that aren't HTML, pages that belong to an app or website (under src/, public/,
node_modules/… or with template tags), and pages already open. The page is served in the
background, and the server stops by itself once you've closed it for a while. Your other
settings and hooks are left as they are.
- Skill only, no auto-open: add
--no-auto. Pause it for one session:HOTEDIT_AUTO=0. - Remove it:
npx hotedit skill uninstall(add--codexor--projectto match). - Codex asks you once to trust the new hook.
- Other agents:
npx hotedit skill print(paste it intoAGENTS.md). They open a report withnpx -y hotedit open report.html --background, which returns at once.
The skill only shapes how the HTML is written: text in the markup, chart specs inline. It tells the agent never to simplify or leave anything out for the sake of editing.
How it works
report.html ──parse (keeps source positions)──► served copy with element ids + editor overlay
▲ │
└──────── small byte patch ◄── map your edit back to source ◄──┘
- Your file is never "re-written". The editor and the element ids exist only in the
copy the local server sends to your browser. Each edit becomes a minimal patch on the
original bytes. Entities like
·, quote styles, indentation and comments elsewhere stay exactly as they were. - Charts are edited in their source. The chart spec literal in the page's
<script>is patched value by value, keeping its own quote and key style. - Safe by default.
- A backup is taken when a session starts (
~/.htmledit/backups/). - Undo and redo cover every change.
- If the file changes on disk (say, your agent edited it), the page updates in place.
- Files that aren't UTF-8 are refused rather than corrupted.
- The server only listens on
127.0.0.1and checks a per-session token.
- A backup is taken when a session starts (
FAQ
Does it work on any HTML file? Yes, any local .html file: hand-written,
AI-generated, or exported from Jupyter, plotly.py, R Markdown or Quarto. It is tested on
pages with KaTeX, Mermaid, inline SVG charts, JavaScript-built dashboards, base64 images
and deliberately odd markup.
Will it mess up my file? It is designed not to. Every test page is opened, every editable element is saved unchanged, and the file must stay byte-identical. Each real edit must produce exactly the expected diff.
Does it need the internet? No, hotedit runs locally. Your page may load its own libraries from a CDN, as many AI reports load KaTeX or Plotly.
Which browsers? Any modern browser. Automated tests run in Chromium.
Can I edit content that a script builds? Use ⋯ → Edit HTML on the script's block, or ask the AI with ✨.
Limitations
- One HTML file at a time. External
.cssand.jsfiles are not edited, and styles are written as inlinestyleattributes. - Chart specs must be literals in an inline
<script>(directly, or throughconst spec = {...}). Specs computed at runtime or loaded from separate files open as source. - Undo history lasts for the session. Backups persist.
Development
git clone https://github.com/Thewhey-Brian/hotedit && cd hotedit
npm install
npx playwright install chromium # browser for the end-to-end tests
npm test # unit, CLI and real-browser tests (~3 min)
node demo/audio.mjs # tour narration, sound effects, music (ElevenLabs key)
node demo/record.js # re-record the tour video + GIF (needs ffmpeg)
See CONTRIBUTING.md and docs/ARCHITECTURE.md.
Get involved
hotedit is young and contributions are very welcome. Good places to start:
- Try it on your own AI-generated reports and open an issue for anything it can't edit. A sample file helps most.
- Pick up a good first issue.
- Share ideas or show what you made in Discussions.
Roadmap: more chart libraries (ECharts, Observable Plot, Bokeh), editing external CSS, a VS Code extension, and guides for more agents (Gemini CLI, Cursor, OpenCode).
Related tools
- html-visual-editor has a nice touch-up UI, but downloads a new file and has no chart editing.
- Lavish has a great agent feedback loop, but you can't edit the page yourself.
- GrapesJS, VvvebJs and Pinegrow are full page builders that re-serialise documents.
document.designModesaves whatever the scripts rendered.
License
Frequently asked questions
What is hotedit?
Open HTML reports in the browser and edit them live while the person watches, or by hand.
How do I install hotedit?
It runs on your machine. In Claude Code: claude mcp add hotedit -- npx -y hotedit@0.5.0 mcp. For other clients, paste the JSON configuration from this page into their MCP settings.
Does hotedit need an API key?
Its registry entry lists no required key or secret. Some features may still need an account with the service it connects to.
Is hotedit open source?
Yes. Its code is on GitHub under the MIT license.
Who maintains hotedit?
It is published by Thewhey-Brian. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.