同一个目标,不同的入口
如果你已经学过上一节的 CLAUDE.md,你心里可能有个疑问:".cursorrules 不就是 Cursor 版的 CLAUDE.md 吗?内容不是一样的?"
答案是:本质上,是的。但细节上,差别挺大的。
CLAUDE.md 和 Cursor Project Rules 解决的是同一个问题——把项目约束变成可复用的上下文。但两种工具的文件位置、作用范围和触发方式不同。

三个关键区别
区别 1:载体不同
CLAUDE.md 是一个 Markdown 文件——就是一个普通的 .md 文件,你用任何文本编辑器都能写。Claude Code 在终端里运行,它读这个文件就像读一篇文章。
.cursorrules 则更复杂一些。Cursor 在 2025 年做了一次大改版,引入了 Project Rules 系统——用 .mdc(Markdown Component)格式的文件,放在 .cursor/rules/ 目录下。每个 .mdc 文件有自己的元数据(描述、适用范围、是否全局生效),不再是一个扁平的文本文件。
老的 .cursorrules 文件(放在项目根目录的那个)仍然可以用,但 Cursor 官方已经在推新格式了。你现在新写规则,建议直接用 .cursor/rules/ 目录。
# 老格式(仍然支持,但已经 deprecated)
project-root/
└── .cursorrules # 一个文件写所有规则
# 新格式(推荐)
project-root/
└── .cursor/
└── rules/
├── general.mdc # 全局规则
├── frontend.mdc # 前端专用规则
├── backend.mdc # 后端专用规则
└── testing.mdc # 测试规则
区别 2:生效范围不同
CLAUDE.md 的逻辑比较简单:根目录的文件全局生效,子目录的文件在子目录里生效。没了。
Cursor 的 Project Rules 则有一个更精细的控制系统。每个 .mdc 文件的头部可以指定:
---
description: "React 组件规范"
globs: "src/components/**/*.tsx"
alwaysApply: false
---
- alwaysApply: true — 全局生效,类似 CLAUDE.md 根目录文件
- alwaysApply: false + globs — 只在匹配的文件路径上生效。比如上面的规则只在
src/components/目录的.tsx文件上生效 - alwaysApply: false + 无 globs — 不会自动生效,需要你在对话中用
@rules手动引用
说实话,这个设计比 CLAUDE.md 更先进。CLAUDE.md 目前还做不到"只在某些文件上生效"这种精细度。
区别 3:使用场景不同
Claude Code 是一个 CLI 工具——你在终端里跟它对话,它帮你改代码、跑命令、提交 Git。它更像一个"资深同事坐在你旁边"的感觉。
Cursor 是一个 IDE——你可以在 Chat/Agent 中处理多文件任务,也可以用 Cmd/Ctrl+K 做 Inline Edit。官方当前说明 Project Rules 提供给 Agent 和 Cmd-K,不会影响 Cursor Tab。所以不要把“控制 Tab 补全风格”写成这个功能的学习目标。

一张对比表
| 维度 | CLAUDE.md | .cursorrules / Project Rules |
|---|---|---|
| 工具 | Claude Code (CLI) | Cursor (IDE) |
| 文件格式 | Markdown (.md) | 旧: 纯文本;新: .mdc (Markdown Component) |
| 位置 | 项目根目录 | 旧: 根目录;新: .cursor/rules/ |
| 生效范围 | 全局 / 子目录 | 全局 / 按 glob 匹配文件 |
| 手动引用 | 不支持 | 支持 @rules |
| 层级系统 | CLAUDE.md + .claude/rules/ | .cursor/rules/ 多文件 |
| 适用场景 | 终端操作、Git、多文件任务 | Agent/Chat、Cmd/Ctrl+K Inline Edit |

那么问题来了:两个都要写吗?
如果你的团队同时用 Claude Code 和 Cursor——是的,两个都要写。但好消息是核心内容(技术栈、编码规范、禁止规则)是一样的,你可以先写一个,让 AI 帮你转换成另一个格式。
# 实际操作
1. 先写 CLAUDE.md(内容更全面)
2. 在 Claude Code 里说:"根据 CLAUDE.md 的内容,帮我生成 .cursor/rules/ 下的规则文件"
3. Claude Code 会帮你拆分成多个 .mdc 文件
如果你的团队只用 Cursor,那只写 .cursor/rules/ 就够了。反过来也一样。
不过话说回来,如果你是个人开发者,我建议至少学会写 CLAUDE.md。原因是:CLAUDE.md 是纯 Markdown,在任何 AI 工具里都能用(你甚至可以把它复制到 ChatGPT 对话的开头)。而 .cursorrules 的 .mdc 格式是 Cursor 专用的,换了工具就不认了。
Cursor Project Rules 和 CLAUDE.md 有什么区别?
从根本上理解 Cursor 的规则系统,以及它和 Claude Code 配置的异同