Skip to content
claudemods

Prismantis Claude Code mod: Claude Code themes for colorful replies

Themeable Claude Code replies: boxed tables, highlighted code, mermaid diagrams and charts, compact tool rows.

#9 in Best Claude Code Mods

Permissions

  • Reads your promptsCan see what you type and the conversation transcript (prompt.* / session.append / session.messages).
  • Changes the UIDraws into the Claude Code interface: bands, panes, status text, toasts (ui.render / $.ui.*).
  • Adds commands/toolsRegisters new slash commands or tools that you or Claude can invoke ($.command.register / $.tool.register).
tested with
v2.1.291
last tested
requires
Claude Code ≥ 2.1.287
surfaces
transcript, toast

Install inside Claude Code:

/plugin install prismantis --marketplace NahumLitvin/prismantis
All install options ↓

What does this mod do?

Prismantis is a community mod by Nahum Litvin (NahumLitvin) that redraws Claude's replies in the transcript with color and structure, in one of 15 Claude Code themes. Markdown tables get colored headers, boxed cells and a double rule under the header, and they shrink to fit the terminal. Code blocks get a language header, a copy button and Prism highlighting for 24 languages, and shell blocks color the command word, flags, strings and comments. Code blocks tagged mermaid are drawn as colored text art: flowcharts, sequence, state, class and ER diagrams, plus bar and line charts from xychart-beta.

It also restyles the rest of the transcript. Your own prompts draw in a rounded bubble (or an accent bar or chevron). Tool calls collapse to one line such as Ran gh pr view 12 or Read ~/src/app.ts, with a status dot. The turn footer colors the duration. Slash command output gets the same markdown rendering. Numbers, versions, durations and paths take their own colors, GitHub alerts like > [!WARNING] draw as colored boxes, and Hebrew and Arabic text is laid out right to left with handling for each terminal. There are 15 themes plus mono. The README says it needs Claude Code 2.1.287 or later.

Demo

The recording asks Claude for a markdown table of the four inner planets and their moon counts, plus a one-line bash block. With prismantis loaded, the prompt is drawn in a bubble, the table is boxed with colored headers, the bash block gets its own label and a copy button, and the reply has copy, art and copy reply buttons.

Install

Use any of the methods in the install block; they install straight from the author's own marketplace. The next reply in a session with the mod loaded is drawn by prismantis. Run /reload-plugins in sessions that were already open.

$ install prismantis

Requires Claude Code ≥ 2.1.287

Installs from the author's own marketplace: NahumLitvin/prismantis

  1. 1.One line, inside Claude Code

    /plugin install prismantis --marketplace NahumLitvin/prismantis

    Paste into a running session (v2.1.275+). Claude Code asks to add the marketplace first.

  2. 2.From your shell

    claude plugin marketplace add NahumLitvin/prismantis
    claude plugin install prismantis@prismantis

    Then run /reload-plugins in any session that is already open.

  3. 3.Try it without installing

    git clone https://github.com/NahumLitvin/prismantis
    claude --plugin-dir ./prismantis

    Loads the mod for one session only. Nothing is added to your settings.

How it works

hooks/register.tsx registers render hooks on the transcript components (AssistantMessage, UserMessage, CommandOutput, ToolGroup, ToolUse and TurnDuration). Each one parses the text with the plugin's own markdown parser in hooks/markdown.ts and draws the result with hooks/render.tsx. Here is the assistant reply hook from hooks/register.tsx:

on('ui.render', { component: 'AssistantMessage' }, ($, e, next) => {
  const blocks = parseCached(e.props.text)
  if (blocks.length === 0) return next(e)
  const el = $.ui.resolve(e)
  const { Box, Text } = el
  const columns = Math.max(20, (e.viewport?.columns ?? 100) - 4)
  // ...
  return (
    <Box flexDirection="row">
      <Box width={2} flexShrink={0}>
        <Text color={style.theme.accent}>{e.props.isFirstOfReply ? '●' : ' '}</Text>
      </Box>
      <Box flexDirection="column" rowGap={1} flexGrow={1}>
        {drawMarkdown($, el, style, blocks, columns, /* ... */)}
      </Box>
    </Box>
  )
})

When there is nothing to parse, it falls back to next(e) and Claude Code draws the message itself. Parsed blocks are cached by text, so a redraw does not parse again. Mermaid blocks go through a bundled copy of beautiful-mermaid's ASCII renderer, and a diagram wider than the window stays as code. A prompt.submit hook adds the diagram hint to prompts typed at the composer or through Remote Control. The mod also adds an engine noun, $.prismantis.markdown, so other mods can draw markdown in the user's prismantis theme.

Customize it

Every option is in /config under prismantis, or in pluginConfigs in ~/.claude/settings.json. The main ones:

  • theme: one of the 15 palettes or mono. /prismantis theme <name> switches on the spot.
  • tableStyle: box, rules, grid or minimal. headingStyle: banner, bold, underline or uppercase.
  • promptStyle: bubble, bar, chevron or off. toolStyle: chat, tree-dim, tree-bold or classic. taskStyle: checks, ticks, box or progress.
  • toolRows, mermaid, mermaidAscii, copyButtons, diagramHints, highlightNumbers and highlightPaths turn single features on or off.
  • About 20 color slots (headingColor, tableHeaderColor, numberColor, pathColor and so on) take hex, rgb(), ansi256() or a color name.

/prismantis copy copies the last reply, and /prismantis copy code copies its last code block, without a mouse. /prismantis demo prints a showcase of every element.

Permissions & safety

We read every file the plugin loads before we ran it, including the two vendored bundles. The plugin makes no network calls, runs no commands and reads no files. Two notes are worth knowing:

  • Reads your prompts applies because a prompt.submit hook attaches a short model-only note (about 190 tokens) to each prompt you type, describing what renders in this terminal. It does not change your text. Turn off diagramHints (or mermaid) to stop it.
  • $.session.messages is called only by /prismantis copy, to find the last reply. $.config.set is called only by /prismantis theme, to save the theme option. $.env.get reads terminal variables such as TERM_PROGRAM and TERM to pick the right-to-left handling.

Changes the UI covers the redrawn transcript and the "Copied" toasts. Adds commands/tools covers /prismantis. hooks/vendor/prism.js and hooks/vendor/mermaid-text.js are whitespace-minified builds of Prism and beautiful-mermaid, made by the repo's scripts/build-vendor.mjs. The plugin does not run those scripts or install packages. claude plugin validate reported no warnings.

Reads your prompts
Can see what you type and the conversation transcript (prompt.* / session.append / session.messages).
Changes the UI
Draws into the Claude Code interface: bands, panes, status text, toasts (ui.render / $.ui.*).
Adds commands/tools
Registers new slash commands or tools that you or Claude can invoke ($.command.register / $.tool.register).

Compatibility & troubleshooting

We validated it with Claude Code 2.1.291 on macOS, and claude plugin test passed all 138 of the author's tests. The author has tested it in the terminal on macOS; the desktop app and VS Code should work through the same mod API but have not been checked by hand.

  • Replies look unchanged: check claude --version is 2.1.287 or later, the plugin is enabled in /plugin, and enabled is on in /config. Run /reload-plugins after installing into an open session.
  • Boxes or broken lines in diagrams: turn on mermaidAscii, which draws with + - | instead of box-drawing characters.
  • Copy buttons do nothing on click: your terminal may not pass clicks through. Use /prismantis copy instead.
  • Colors look wrong on a light background: pick a light theme such as github-light or catppuccin-latte.

FAQ

Does prismantis change what Claude writes?
It redraws replies that are already on screen. With diagramHints on (the default) it also attaches a short hidden note, about 190 tokens, to each prompt you type, telling the model that tables, code and mermaid diagrams render here. Turn diagramHints off in /config to stop that.
Which themes are included?
Fifteen palettes: catppuccin-mocha (default), catppuccin-latte, dracula, nord, tokyo-night, gruvbox-dark, gruvbox-light, rose-pine, rose-pine-dawn, everforest, github-dark, github-light, one-dark, solarized-dark and solarized-light, plus mono, which uses only bold and dim.
How do I switch themes?
Run /prismantis theme nord, or pick one under prismantis in /config. The command saves the choice as the plugin's theme setting.
Can I see the original reply?
Yes. The author's README says to press ctrl+o on a reply to see the original, or disable the mod in /plugin to get Claude Code's own renderer back.
Does it use the network?
No. It bundles Prism and beautiful-mermaid, makes no network calls, runs no commands and reads no files.
>_ image-preview

Image Preview

Hover a pasted [Image #N] in Claude Code to see the picture, in a window by the pointer or drawn in the terminal.

  • above-prompt
  • transcript
  • Reads files
  • Runs commands
  • Reads your prompts
  • Changes the UI

tested with v2.1.303

>_ skins

Skins

Fifteen themes that redraw Claude Code tool rows, diffs, tables, code and Mermaid charts, plus a usage band.

  • above-prompt
  • spinner
  • transcript
  • pane
  • Reads files
  • Runs commands
  • Network
  • Intercepts tool calls
  • Reads your prompts
  • Changes the UI
  • Adds commands/tools
  • Stores data

tested with v2.1.307

>_ glowup

glowup

A side pane for changes, subagents and context, an activity band, JSON packs and themes, and a pixel pet.

  • pane
  • above-prompt
  • spinner
  • status
  • transcript
  • Reads files
  • Writes files
  • Runs commands
  • Network
  • Calls the model (uses your quota)
  • Intercepts tool calls
  • Reads your prompts
  • Changes the UI
  • Adds commands/tools
  • Stores data

tested with v2.1.310

>_ bilingual-view

Bilingual View

Write Claude Code prompts in Chinese, send English, and read replies in Chinese through your own translation API.

  • above-prompt
  • pane
  • transcript
  • Reads files
  • Writes files
  • Runs commands
  • Network
  • Intercepts tool calls
  • Reads your prompts
  • Changes the UI
  • Adds commands/tools

tested with v2.1.310

More in Timers, todos, standups.