A Claude Code mod that draws mermaid diagrams, tables and code in color, right in the terminal.
# Add to your Claude Code skills
git clone https://github.com/iamrohithrnair/mermanGuides for using cli tools skills like merman.
See how merman compares with popular alternatives.
merman is an open-source cli tools skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by iamrohithrnair. A Claude Code mod that draws mermaid diagrams, tables and code in color, right in the terminal. It has 50 GitHub stars.
merman's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/iamrohithrnair/merman" and add it to your Claude Code skills directory (see the Installation section above).
merman is primarily written in TypeScript. It is open-source under iamrohithrnair on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other CLI Tools skills you can browse and compare side by side. Open the CLI Tools category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh merman against similar tools.
No comments yet. Be the first to share your thoughts!
Top skills in this category by stars
Available after the catalog security scan passes.
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
mono, and copy buttons on everything./plugin to turn it off. Claude Code's own renderer comes back the moment you do.⧉ html or ▣ png (the clipboard helper) or turn on LaTeX (RaTeX's renderer).Requires Claude Code 2.1.311 or later. One line in your shell:
claude plugin marketplace add iamrohithrnair/merman && claude plugin install merman@merman
Or inside Claude Code:
/plugin marketplace add iamrohithrnair/merman
/plugin install merman@merman
Then start a new session, or run /reload-plugins in an open one, and run /merman setup to pick a theme and styles, then /merman demo for a tour.
In a terminal, setup opens a pane: the arrows or Tab move through the styles of a step with a preview of the one in focus, Enter saves it and shows the next step. Where the session has no terminal, as in the desktop app, it walks the same steps in the transcript.
The install follows tagged releases. To update to the latest one:
claude plugin marketplace update merman && claude plugin update merman@merman
Then run /reload-plugins in every open session. A session keeps what it loaded until it reloads.
To turn it off or on, run claude plugin disable merman@merman or claude plugin enable merman@merman, or use /plugin. To remove it:
claude plugin uninstall merman@merman
To run the latest main, or your own changes, link a clone into Claude Code's skills folder instead. It loads in place as merman@skills-dir, so whatever the checkout has is what draws; git pull and /reload-plugins update it. Uninstall the marketplace copy first so the two don't both load.
git clone https://github.com/iamrohithrnair/merman.git && cd merman
mkdir -p "${CLAUDE_CONFIG_DIR:-$HOME/.claude}/skills"
ln -s "$PWD" "${CLAUDE_CONFIG_DIR:-$HOME/.claude}/skills/merman"
To remove it, delete the link: rm without -r removes only the link, not the checkout.
rm "${CLAUDE_CONFIG_DIR:-$HOME/.claude}/skills/merman"
For LaTeX math, install RaTeX's renderer and set latex to true; see LaTeX math. Until then formulas draw as text.
merman draws replies in place of Claude Code's own markdown renderer, so its cost is the time to turn a reply into a tree, plus a one-time note to the model.
| What | Median | p95 |
|---|---|---|
| Full demo reply (headings, tables, code, 7 diagrams), first draw | 2.3 ms | 3.0 ms |
| Same reply, redrawn | 0.35 ms | 0.45 ms |
| One redraw while an 18 KB reply streams in | 1.4 ms | 2.5 ms |
| 300-row table | 2.4 ms | 3.0 ms |
| 800-line highlighted code block | 0.98 ms | 1.6 ms |
| Markdown parse of the demo reply | 0.07 ms | 0.08 ms |
Measured with npm --prefix scripts run bench (200 runs, Node 24, Apple M4 Pro). A 60 Hz frame is 16.7 ms, so even a long reply leaves most of the frame free.
Redraws: finished replies keep their drawing and are reused when only their place on screen changes, so scrolling back does not redraw them.
C4 layout: merman routes C4 lines itself, in about 1 ms for 5 to 10 boxes and 30 to 45 ms for 30 boxes and 40 relationships at the 80-line cap. The router stops after a fixed amount of work, about 100 ms, and lists what it has not reached in the legend. Routes are kept for every width that packs the boxes the same way, so resizing the terminal from 200 to 120 columns routes that largest diagram 14 times instead of 81 (0.8 s in all instead of 3.6 s), and resizing back takes about 0.1 s. Once its fence closes, a diagram keeps its drawing while the rest of the reply streams in, so each redraw costs about 0.1 ms, as with a flowchart.
Screen size: the demo reply draws in 996 nodes, 5% of Claude Code's 20000-node limit per tree. A 500-line highlighted file uses 38%. Past 18000 nodes a reply drops C4 hover groups first, then draws its heaviest code blocks plain.
Tokens: merman's only model-facing cost is the diagramHints note, added once to the first prompt of a conversation and again only after a compaction drops it. Like any message it then stays in the conversation's context, where prompt caching covers it on later turns. Replies, tool output and redraws add nothing.
| Part | Tokens |
|---|---|
| Main note (what merman draws) | about 135 |
| Figure rules | about 220 |
LaTeX line, only while latex is on |
about 55 |
| Total | about 355, or 410 with LaTeX |
Set diagramHints to false and merman sends nothing to the model. See Diagram hints.
Size: 656 KB of hooks on disk, 220 KB of it the bundled mermaid and Prism engines. No network calls.
| Feature | What you get |
|---|---|
| Themes | /merman theme <name> switches on the spot. 17 themes and 20 color slots you can override |
| Tables | colored headers, rules, column alignment, colored numbers, sized to the terminal |
| Code | a language header and copy button, Prism highlighting in two dozen languages, shell lines colored like a prompt |
| Diagrams and charts | flowcharts, sequence, state, class, ER and C4 diagrams, bar and line charts, one color per box, participant and bar |
| Figures | ```figure text pictures drawn as written in the theme's colors, for timelines, layouts and before and after; glyphs and markup checked before they are drawn |
| LaTeX math | $$ and ```math formulas typeset as images in kitty and Ghostty by RaTeX, text everywhere else |
| Layout | back-to-back tables and diagrams sit side by side and wrap on narrow terminals |
| Copy buttons | ⧉ md, ⧉ art, ⧉ html and ▣ png on tables, [ ⧉ copy ] on code, lists and quotes, /merman copy without a mouse |
| Tool rows | Opt-in with toolRows: true: Ran gh pr view 12, Read ~/src/app.ts, groups summed up as Ran 3 commands, read 2 files, with status dots; toolOutput: quiet hides what Claude only read and says in plain words what each call did |
| Slash commands | command output (/cost, /context, plugin commands) gets the same tables and code styling |
| Diagram hints | a short model-only note, once per conversation, so Claude reaches for diagrams, charts and figures when they help, and builds explaining replies around the pictures |
| Text | bold, italic, strikethrough, inline code, links, versions, durations, percentages and clickable paths in their own colors |
| Headings, lists, quotes | 4 heading styles, nested lists, task lists, quotes with an accent bar |
| Your prompts | what you type draws in a bubble, an accent bar or a chevron, so you find your turns when you scroll back, and clock adds when you sent it |
| Right to left | Hebrew and Arabic read right to left, with bullets, quote bars and table columns mirrored |
| Other mods | $.merman.markdown draws any markdown the way replies are drawn, for mod authors |
Dark: catppuccin-mocha (default), dracula, nord, tokyo-night, gruvbox-dark, rose-pine, everforest, github-dark, one-dark, solarized-dark, neon.
Light: catppuccin-latte, gruvbox-light, rose-pine-dawn, github-light, solarized-light.
mono drops the palette for bold and dim; alerts keep their colors. Switch with /merman theme nord, or run /merman for the help screen with every theme. Every palette is MIT licensed and credited in THIRD_PARTY_NOTICES.md.
Header cells take the tableHeader color, and the default box style puts a double line under the header. tableStyle picks box (the default, every cell boxed), rules, grid or minimal. :---: and ---: alignment is honored, number