Cursor Chat 原生支持 Mermaid 是有价值的,因为开发者在规划阶段不仅需要模型输出代码,还需要快速检查实体关系、组件架构和工作流。社区早期诉求正是希望不用把 Mermaid 源码复制到外部编辑器,就能在对话中直接理解模型准备实现什么。后续 Cursor 已逐步加入会话内可视化、Plan Mode 内联 Mermaid,以及 CLI 中的 Mermaid ASCII 展示,但不同入口和图类型的支持范围仍不完全一致。
原帖作者在同时使用 Cursor 与 Cline 时发现,Cline 的规划模式会生成 Mermaid 图来展示实体关系、组件架构和工作流,而当时 Cursor 可以生成 Mermaid 语法,却不能直接在聊天区域渲染。
用户真正需要的不是“模型会不会写 Mermaid”,而是规划内容能否在当前上下文中直接阅读。若每次都要复制到 Markdown 文件、安装扩展、打开预览或粘贴到外部网站,图表带来的理解收益会被操作成本抵消。
从后续官方更新看,答案是部分且持续演进地实现了。Cursor 的更新日志曾宣布会话可以直接生成和查看 Mermaid 图;2025 年 12 月的 Plan Mode 更新加入内联 Mermaid;2026 年 CLI 更新则让 Mermaid 代码块以内联 ASCII 图显示。
因此今天不应再笼统声称“Cursor Chat 不支持 Mermaid”。更准确的描述是:不同客户端、模式、Markdown 预览和图表类型具有不同支持矩阵,某些高级类型仍会失败或需要扩展。
Agent 或 Edit 模式会直接改代码,而 Plan 或 Chat 阶段用于建立共同理解。图表能让用户在执行前发现以下问题:
图表不是计划的装饰,而是一种执行前审查界面。
适合展示请求处理、CI 流水线、状态判断和故障排查路径。流程图容易把遗漏分支暴露出来。
适合展示客户端、API、数据库和外部服务之间的调用顺序,尤其有助于审查认证、事务和异步消息。
适合讨论领域模型、接口继承和类之间的依赖,但不能代替真实类型定义。
适合在数据库迁移前检查表、主键、外键和基数关系。
适合订单、任务、连接和工作流等显式状态机,能帮助发现非法跃迁与缺失终态。
Cursor 社区支持人员在 2026 年的公开回复中列出的 Chat 支持类型包括 flowchart、stateDiagram、sequenceDiagram、classDiagram、erDiagram 和 xychart。
同一回复指出,timeline、gitGraph、pie、gantt、mindmap、journey 和 C4 等类型当时未被 Chat 渲染器支持,可能错误地回退到流程图解析器并显示误导性的语法错误。
这个清单会随版本变化,使用时应以当前客户端实测和官方说明为准。
“在 Cursor 中支持 Mermaid”不是单一开关。团队应明确交付物要在哪个入口查看,并用同一路径验收。
提示应指定图类型、范围、节点命名和输出限制。例如:
根据当前仓库生成一个 Mermaid flowchart TD。
只展示 Web、API、Queue、Worker、PostgreSQL 和对象存储。
标出同步 HTTP 与异步消息的区别。
不要推测仓库中没有证据的服务。
先列出引用的文件,再输出一个 mermaid 代码块。
让 Agent 引用证据可以降低凭空补全架构的风险。图表应是代码分析结果的压缩表达,而不是独立幻想。
读取数据库迁移和 ORM 模型,生成 Mermaid erDiagram。
包含主键、外键、唯一约束及关系基数。
表名和字段名必须与代码一致。
不确定的关系单独列出,不要写进图中。
ER 图生成后应回到迁移文件逐项核对。模型可能根据命名推断关系,但数据库真正的约束只由 schema 和迁移证明。
为“用户刷新访问令牌”生成 Mermaid sequenceDiagram。
参与者仅限 Browser、API、AuthService、Redis、Database。
展示成功、刷新令牌过期和令牌复用检测三条路径。
消息名称引用实际函数或路由。
不要开始修改代码。
在进入 Agent 模式前,检查参与者、消息顺序、错误出口和数据写入是否符合安全要求。
渲染图便于快速理解,源码便于精确检查和复制。理想界面应允许在两者间切换:
CLI 已提供在 ASCII 图与 Mermaid 源码之间切换的思路,这种双视图对桌面 Chat 同样重要。
扩展可以为普通 Markdown 提供预览,但聊天消息、计划文件和流式响应是 Cursor 自己控制的界面。原生支持能够:
扩展仍适合普通项目 Markdown,尤其当它使用更新的 Mermaid 版本或支持更多图类型时。
Mermaid 的语法和图类型持续演进。Cursor 内置版本、VS Code Markdown 预览、第三方扩展和在线编辑器可能使用不同版本。同一源码在一个入口成功、另一个入口失败,并不罕见。
团队应在文档中约定目标 Mermaid 版本,并避免仅在某个编辑器私有渲染器中通过的语法。若必须使用 C4 等高级类型,应先确认实际交付环境支持。
一个良好的原生实现应先读取代码块首行,识别图类型,再检查支持矩阵。若类型未实现,应显示“当前渲染器不支持 timeline”,而不是把内容交给流程图解析器后报告“Mermaid Syntax Error”。
可操作的错误提示至少包含:
聊天回复在生成过程中是不完整的。代码块、括号和控制结构尚未闭合时反复调用 Mermaid 会产生闪烁和大量无意义错误。界面可等待代码围栏闭合,或在短暂防抖后只渲染可解析版本。
新版本成功前应保留上一张有效图。用户取消生成后,也应能查看已完成的源码片段,而不是只留下空白错误框。
复杂架构图在窄聊天栏中很难阅读。Plan 文件的交互预览体现了几个必要能力:
普通 Markdown 用户也在社区请求同等的全屏、缩放和平移体验,说明“能渲染”只是第一步,可读性同样决定功能价值。
Mermaid 最终会生成 SVG 并进入界面 DOM。原生渲染器需要固定安全级别、限制危险链接和 HTML、升级依赖,并对异常大的图设置资源限制。
图表能提升可检查性,但不会自动提升事实正确性。模型仍可能遗漏服务、误读代码、画错关系或把推测表示成确定事实。视觉上的整洁甚至可能让错误计划显得更可信。
因此每张图都应能追溯到仓库文件、接口定义、数据库 schema 或用户明确要求。无证据内容应标成假设。
对话中的图适合讨论,但稳定架构说明应保存为项目文件。可以把 Mermaid 代码块写入 Markdown,或把纯源码保存为 .mmd 文件,并在 CI 中用固定版本渲染。
提交时同时审查图表源码和相关代码变化。若实现改变了调用关系却没有更新图,应让文档检查或评审流程发现这种漂移。
flowchart LR 表示时间线。先检查首行图类型是否受当前入口支持,再检查真正的语法。不要默认所有错误都是模型写错。
两个入口可能使用不同渲染链路和 Mermaid 版本。分别记录客户端版本、入口和最小复现代码。
这是交互能力差异。可暂时使用支持 Mermaid 的 Markdown 扩展或将图放入适合的预览工具。
要求 Agent 引用具体文件重新生成,并逐条核对节点和连接。不要把旧聊天图当作当前架构事实。
切换回源码,保存到 Markdown 或导出 SVG。ASCII 适合快速查看,不适合所有大型或复杂布局。
分析当前代码库,但不要修改文件。
目标:解释用户登录请求的完整链路。
输出:
1. 证据文件及关键符号;
2. 一个 Mermaid sequenceDiagram;
3. 三个仍不确定的问题。
要求:图中每个参与者必须能在证据中找到,
同时展示成功、认证失败和数据库超时路径。
这种提示把证据、图和不确定性放在一起,能减少漂亮但不可验证的输出。
Cursor Chat 原生支持 Mermaid 的理由很充分:它能让用户在 Agent 改代码前直观看清模型理解的实体、组件、流程和调用顺序。早期社区提出的核心诉求后来已被产品更新逐步回应,Chat、Plan Mode 和 CLI 都出现了相应展示能力。但今天的问题已从“是否支持”转向“在哪些入口支持哪些类型、如何查看源码、如何处理大图和错误”。最可靠的用法是让 Agent 基于仓库证据生成图,在渲染视图与源码之间核对,把稳定图表保存进仓库,并始终把图视为可审查的计划表达,而不是代码事实本身。