ibrahemid/plugins · claude-code · MIT

to-html

Render Claude Code
output as HTML.

Type /to-html once. Substantive replies render into one self-contained page with a TL;DR band, an interactive concept map, and a body set for reading. Quiet by default: short or flat replies render nothing, and nothing opens a browser tab unless you turn auto-open on.

/plugin marketplace add ibrahemid/plugins
/plugin install to-html@ibrahemid
to-html artifact: TL;DR band, concept map, reading body open live →
01

the summary the reply led with, hoisted to the top

TL;DR band

When a reply opens with a TL;DR line, it is lifted into a band above everything else. It is never synthesized from the first sentence; if the reply has no summary, the band is absent. A UserPromptSubmit hook reminds the model to supply one while mode is on.

02

mermaid → interactive SVG · click a node to find its section

Concept map

A mermaid graph in the reply becomes a pure-SVG map. Hover a node to trace its edges; click to scroll to the matching section and open a detail panel; drag to pan; scroll or +/-/0 to zoom. No mermaid runtime; the map ships inside the artifact. No graph in the reply? A table-of-contents rail takes its place instead of a fabricated one.

03

18px · 66ch · system sans · high contrast

Reading body

Body type set for screen reading: 18px, 66ch measure, system sans. No drop cap, no roman-numeral sections, no all-small-caps. A reading-order stepper walks the sections (j / k), in-page search filters them (/), and a settings gear controls theme, size, width, and font.

04

phase sidebar · live status · focus checkboxes

plan

Phase sidebar with progress, status per task (◯ pending · ◐ in-progress · ● done · ✕ failed), and a meta-refresh that re-renders as Claude reports progress. Tick the tasks to focus next; Copy as prompt emits only those.

05

side-by-side · pros / cons · pick + reason

comparison

Side-by-side cards with pros and cons pulled into colored panels and a recommended badge when Claude marks one. Pick a card, add a one-line reason; Copy as prompt emits the choice and the reason, never the whole comparison.

Toggling on does not open a browser tab. The artifact is written and a file:// link is printed; you open it when you want it. A reply renders only when it carries structure: 600+ chars, or 2+ headings, a code block, a table, checkboxes, or a graph. A manual /to-html toggle always renders the reply you were looking at.

Set durable defaults per project:

/to-html config auto-open  yes | no
/to-html config theme      auto | light | dark | sepia
/to-html config size       s | m | l | xl
/to-html config width      narrow | comfortable | wide
/to-html config font       sans | serif

Force a template from any reply by prepending a fenced block. Unknown templates fall back to the classifier; skip is rejected.

```to-html
{"template":"diagram","title":"Auth handshake"}
```