跳到正文
claudemods

Prismantis:多彩可换肤的 Claude Code Markdown 主题插件

用带框表格、代码高亮、mermaid 图表和复制按钮重新绘制 Claude Code 的回复,内置 15 套主题。

权限

  • 读取你的提示词可以看到你输入的内容和对话记录(prompt.* / session.append / session.messages)。
  • 修改界面在 Claude Code 界面中绘制内容:横条、面板、状态文字、弹出通知(ui.render / $.ui.*)。
  • 添加命令/工具注册新的斜杠命令或工具,供你或 Claude 调用($.command.register / $.tool.register)。
实测版本
v2.1.291
最近实测
需要
Claude Code ≥ 2.1.287
显示位置
对话记录、弹出通知

在 Claude Code 中安装:

/plugin install prismantis --marketplace NahumLitvin/prismantis
全部安装方式 ↓

这个插件能做什么?

Prismantis 是一款 Claude Code Markdown 主题插件,属于社区插件,作者是 Nahum Litvin(NahumLitvin),它用色彩和结构重新绘制对话记录中 Claude 的回复。Markdown 表格会获得彩色表头、带框的单元格和表头下方的双线,并会缩小以适应终端。代码块会获得语言标题、复制按钮,以及支持 24 种语言的 Prism 高亮,shell 代码块会给命令名、参数、字符串和注释分别上色。标记为 mermaid 的代码块会被绘制成彩色字符画:流程图、时序图、状态图、类图和 ER 图,以及来自 xychart-beta 的柱状图和折线图。

它还会重新设计对话记录的其他部分。你自己的提示会绘制在圆角气泡中(也可以是强调色竖条或 V 形箭头)。工具调用会折叠成一行,例如 Ran gh pr view 12 或 Read ~/src/app.ts,并带有一个状态圆点。每轮末尾的页脚会给耗时上色。斜杠命令的输出也会得到同样的 Markdown 渲染。数字、版本号、时长和路径各有自己的颜色,> [!WARNING] 之类的 GitHub 提示框会绘制成彩色框,希伯来语和阿拉伯语文本会从右向左排版,并针对每种终端分别处理。共有 15 套主题外加 mono。README 中写明需要 Claude Code 2.1.287 或更高版本。

演示

录屏中,我们让 Claude 用 Markdown 表格列出四颗内行星及其卫星数量,再附上一行 bash 代码块。加载 prismantis 后,提示被绘制在气泡中,表格带框并有彩色表头,bash 代码块有自己的标签和 copy 按钮,回复则带有 copy、art 和 copy reply 按钮。

安装

使用安装区块中的任意一种方式;它们都直接从作者自己的插件市场安装。在加载了该插件的会话中,下一条回复就会由 prismantis 绘制。对于已经打开的会话,请运行 /reload-plugins。

$ install prismantis

需要 Claude Code ≥ 2.1.287

从作者自己的 marketplace 安装: NahumLitvin/prismantis

  1. 1.在 Claude Code 中一行安装

    /plugin install prismantis --marketplace NahumLitvin/prismantis

    粘贴到正在运行的会话中(v2.1.275+)。Claude Code 会先询问是否添加该插件市场。

  2. 2.从终端安装

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

    然后在所有已打开的会话中运行 /reload-plugins。

  3. 3.免安装试用

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

    仅在当前会话中加载该插件,不会写入你的设置。

工作原理

hooks/register.tsx 在对话记录的各个组件(AssistantMessage、UserMessage、CommandOutput、ToolGroup、ToolUse 和 TurnDuration)上注册渲染钩子。每个钩子都用插件自带的 Markdown 解析器(位于 hooks/markdown.ts)解析文本,再用 hooks/render.tsx 绘制结果。以下是 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>
  )
})

没有可解析的内容时,它会回退到 next(e),由 Claude Code 自己绘制这条消息。解析后的块按文本缓存,重绘时不会再次解析。Mermaid 代码块交给内置的一份 beautiful-mermaid ASCII 渲染器处理,比窗口还宽的图表则保留为代码。一个 prompt.submit 钩子会把图表提示附加到在输入框或通过 Remote Control 输入的提示上。插件还新增了一个引擎名词 $.prismantis.markdown,让其他插件也能用用户的 prismantis 主题绘制 Markdown。

自定义

所有选项都在 /config 的 prismantis 下,或者在 ~/.claude/settings.json 的 pluginConfigs 中。主要选项如下:

  • theme:15 套调色板之一或 mono。/prismantis theme <name> 可以当场切换。
  • tableStyle:box、rules、grid 或 minimal。headingStyle:banner、bold、underline 或 uppercase。
  • promptStyle:bubble、bar、chevron 或 off。toolStyle:chat、tree-dim、tree-bold 或 classic。taskStyle:checks、ticks、box 或 progress。
  • toolRows、mermaid、mermaidAscii、copyButtons、diagramHints、highlightNumbers 和 highlightPaths 用于单独开关各项功能。
  • 约 20 个颜色槽位(headingColor、tableHeaderColor、numberColor、pathColor 等)接受十六进制、rgb()、ansi256() 或颜色名称。

/prismantis copy 复制最后一条回复,/prismantis copy code 复制其中最后一个代码块,无需鼠标。/prismantis demo 会打印一份展示所有元素的样例。

权限与安全

在运行之前,我们读过了插件加载的每一个文件,包括两个内置的打包文件。插件不发出网络请求、不运行命令,也不读取文件。有两点值得了解:

  • 之所以适用读取你的提示,是因为一个 prompt.submit 钩子会给你输入的每条提示附加一段只给模型看的简短说明(约 190 个 token),描述这个终端能渲染什么。它不会改动你的文字。关闭 diagramHints(或 mermaid)即可停止。
  • $.session.messages 只由 /prismantis copy 调用,用来找到最后一条回复。$.config.set 只由 /prismantis theme 调用,用来保存 theme 选项。$.env.get 读取 TERM_PROGRAM 和 TERM 等终端变量,以选择合适的从右向左处理方式。

修改界面对应的是重新绘制的对话记录和 "Copied" 通知。添加命令/工具对应的是 /prismantis。hooks/vendor/prism.js 和 hooks/vendor/mermaid-text.js 是 Prism 和 beautiful-mermaid 经过空白压缩的构建产物,由仓库中的 scripts/build-vendor.mjs 生成。插件不会运行这些脚本,也不会安装软件包。claude plugin validate 没有报告任何警告。

读取你的提示词
可以看到你输入的内容和对话记录(prompt.* / session.append / session.messages)。
修改界面
在 Claude Code 界面中绘制内容:横条、面板、状态文字、弹出通知(ui.render / $.ui.*)。
添加命令/工具
注册新的斜杠命令或工具,供你或 Claude 调用($.command.register / $.tool.register)。

兼容性与故障排除

我们在 macOS 上使用 Claude Code 2.1.291 完成了验证,claude plugin test 通过了作者全部 138 个测试。作者在 macOS 的终端中测试过它;桌面应用和 VS Code 应该也能通过同一套插件 API 工作,但尚未人工检查。

  • 回复看起来没有变化:检查 claude --version 是否为 2.1.287 或更高版本、插件是否在 /plugin 中启用,以及 /config 中的 enabled 是否开启。安装到已打开的会话后,运行 /reload-plugins。
  • 图表中出现方框或断线:开启 mermaidAscii,它会用 + - | 代替制表符来绘制。
  • 点击复制按钮没有反应:你的终端可能没有传递点击事件。请改用 /prismantis copy。
  • 在浅色背景上颜色看起来不对:选择浅色主题,例如 github-light 或 catppuccin-latte。

常见问题

prismantis 会改变 Claude 写的内容吗?
它重新绘制已经显示在屏幕上的回复。在 diagramHints 开启时(默认开启),它还会给你输入的每条提示附加一段约 190 个 token 的隐藏说明,告诉模型这里能渲染表格、代码和 mermaid 图表。在 /config 中关闭 diagramHints 即可停止。
包含哪些主题?
十五套调色板:catppuccin-mocha(默认)、catppuccin-latte、dracula、nord、tokyo-night、gruvbox-dark、gruvbox-light、rose-pine、rose-pine-dawn、everforest、github-dark、github-light、one-dark、solarized-dark 和 solarized-light,另外还有只使用粗体和暗淡效果的 mono。
怎样切换主题?
运行 /prismantis theme nord,或者在 /config 中 prismantis 下选择一套。该命令会把你的选择保存为插件的 theme 设置。
能看到原始回复吗?
能。作者的 README 说,在某条回复上按 ctrl+o 即可查看原文;也可以在 /plugin 中停用插件,恢复 Claude Code 自带的渲染器。
它会使用网络吗?
不会。它内置了 Prism 和 beautiful-mermaid,不发出网络请求、不运行命令,也不读取文件。
Human in the loop 在 Claude Code 中运行精选

Human in the loop

Claude 把只有你能做的事派成任务,放进“我的任务”面板,并在输入框下方计数,直到你处理。

  • 面板
  • 状态栏
  • 弹出通知
  • 对话记录
  • 拦截工具调用
  • 读取你的提示词
  • 修改界面
  • 添加命令/工具
  • 存储数据

已在 v2.1.310 实测

Project Sentinel 在 Claude Code 中运行精选

Project Sentinel

为长时间运行的 Claude Code 任务提供状态带、上下文交接、提示缓存追踪和权限规则。

  • 输入框上方
  • 面板
  • 加载动画
  • 状态栏
  • 弹出通知
  • 读取文件
  • 执行命令
  • 调用模型(消耗你的额度)
  • 拦截工具调用
  • 读取你的提示词
  • 修改界面
  • 添加命令/工具
  • 存储数据

已在 v2.1.296 实测

After 在 Claude Code 中运行精选

After

Claude Code 的提示词队列:/after 会在当前这一轮结束后运行你的下一个任务,不会干扰正在进行的工作。

  • 输入框上方
  • 面板
  • 弹出通知
  • 状态栏
  • 调用模型(消耗你的额度)
  • 读取你的提示词
  • 修改界面
  • 添加命令/工具
  • 存储数据

已在 v2.1.303 实测

ctx-handoff 在 Claude Code 中运行精选

ctx-handoff

保持提示缓存不过期,把你教给 Claude 的内容整理成项目笔记,并可在上下文写满时完成交接。

  • 输入框上方
  • 状态栏
  • 弹出通知
  • 读取文件
  • 写入文件
  • 调用模型(消耗你的额度)
  • 拦截工具调用
  • 读取你的提示词
  • 修改界面
  • 添加命令/工具
  • 存储数据

已在 v2.1.303 实测

更多 计时、待办与站会。