TL;DR
当你需要在 Kilocode、OpenCode、Claude、Codex、GitHub Copilot 等一众 AI 编程助手间来回切换时,Ruler[1] 绝对是你不想错过的工具。它解决的问题很直接:

- 单一数据源:所有指令(instructions)集中管理,再也不用满项目找配置文件。
- 自动分发:一键把写好的配置,精准投递到各个编程助手专属的配置文件中。
- MCP 配置管理:统一捣鼓 Model Context Protocol 服务器配置,不用再为每个工具学一套新语法。
- Skills 支持:集中管理并分发 Agent Skills,让团队的好经验流动起来。
- 嵌套规则加载:支持复杂项目结构里的分层配置,比如 Monorepo 这种。
- 自动维护 .gitignore:自动处理那些生成的文件,保持项目目录干净清爽。
背景:从混乱到标准化的演进
曾经的痛点
之前写过一篇关于《AGENTS.md》的文章,当时还觉得这标准真不错,起码解决了一个大问题。但说实话,那会儿自己用得并不勤,毕竟主力开发工具就一个,没什么切来切去的烦恼。
但现在呢?AI 编程助手就跟雨后春笋似的,一个个冒出来。工作需要,不得不在几个工具之间频繁切换:
- Kilocode:日常编码和快速原型,就图它个轻快。
- Claude:遇到复杂算法或深度思考,还得交给它。
- Codex:API 开发和文档生成,有自己的独到之处。
- OpenCode:参与开源项目,它总能给出不错的思路。
麻烦就来了——每个工具都有自己的小脾气:
- Instructions 文件放在哪,什么格式?
- MCP 服务器怎么配置?
- Agent Skills 目录长什么样?
- 有没有哪些独特的功能和配置项?
每次切工具,都得手动折腾一遍配置。这感觉,就像出差住酒店,每住一家都得重新布置房间,心累。
AGENTS.md 解决了什么?没解决什么?
AGENTS.md[3] 标准(由 Google、OpenAI、Factory、Sourcegraph 和 Cursor 联合推出)确实是个里程碑。它统一了 instructions 文件的名称和位置——项目根目录下就叫 AGENTS.md。至少,项目根目录不再是一锅粥了。
AGENTS.md 解决的问题:
- 统一了 instructions 文件名(都叫
AGENTS.md) - 统一了文件位置(项目根目录)
- 提供了标准的内容格式建议
AGENTS.md 没解决的问题:
- MCP 服务器配置还是各玩各的。
- Cursor 用
.cursor/mcp.json - Claude 用
.mcp.json - Windsurf 用
.windsurf/mcp_config.json - Codex 用
.codex/config.toml
- Cursor 用
- Agent Skills 目录结构也互不买账。
- Claude / Copilot / Kilocode 用
.claude/skills/ - Codex 用
.codex/skills/ - OpenCode 用
.opencode/skill/ - Goose / Amp 用
.agents/skills/
- Claude / Copilot / Kilocode 用
- 特定工具的额外配置文件照旧存在,比如 Aider 的
.aider.conf.yml、Cline 的.clinerules、Crush 的CRUSH.md。 - 最关键的是,没有一个便捷的管理和同步机制。
这就是为什么,AGENTS.md 标准之后,Ruler 依然有它不可替代的位置。
Ruler 是什么?
Ruler 是一个命令行工具,核心理念很朴素:单一数据源(Single Source of Truth)。所有 AI 编程助手的配置,都由它统一管理。
核心理念
简单来说,在 .ruler/ 目录下维护你的配置:
.ruler/
├── AGENTS.md # 主指令文件
├── coding_style.md # 代码风格指南
├── api_guidelines.md # API 设计规范
├── ruler.toml # Ruler 配置
└── skills/ # 集中管理的 Skills
├── my-skill/
│ └── SKILL.md
└── another-skill/
└── SKILL.md
然后,一条命令 ruler apply,它就会帮你生成并分发到各个工具的专属文件:
AGENTS.md # 分发给所有支持的工具
.cursor/mcp.json # Cursor 的 MCP 配置
.mcp.json # Claude 的 MCP 配置
.codex/config.toml # Codex 的 MCP 配置
.claude/skills/ # Claude/Copilot/Kilocode 的 Skills
.codex/skills/ # Codex 的 Skills
.opencode/skill/ # OpenCode 的 Skills
.gitignore # 自动更新,忽略生成的文件
关键特性
- 集中式规则管理:所有 instructions 都放在
.ruler/目录,支持多个 Markdown 文件,自动合并,文件发现和加载顺序都可预测。 - 嵌套规则加载:这是它的杀手锏。支持复杂项目的分层配置,特别适合 Monorepo 和多组件项目——不同目录可以有各自的上下文规则。
- 自动分发:一键生成各个工具的配置文件,目前支持超过 30 种 AI 编程助手。还可以按需选择要配置哪些工具。
- MCP 服务器管理:在
ruler.toml中统一定义 MCP 服务器,自动分发到各工具的配置文件。支持merge和overwrite两种策略。 - Agent Skills 分发:集中管理 Skills 在
.ruler/skills/,自动复制到各工具的 skills 目录,支持嵌套的 Skills 结构。 - 自动 .gitignore 管理:自动把生成文件加进
.gitignore,用标记块管理,不影响其他内容。
核心概念详解
1. .ruler/ 目录结构
.ruler/
├── AGENTS.md # 主指令文件(新标准)
├── instructions.md # 旧版支持(向后兼容)
├── ruler.toml # Ruler 配置文件
├── coding_style.md # 额外的规则文件
├── api_conventions.md # API 设计规范
└── skills/ # Skills 目录
├── skill-1/
│ └── SKILL.md # 必需
└── skill-2/
└── SKILL.md
文件加载顺序和优先级:
- 项目根目录的
AGENTS.md(如果存在,最高优先级) .ruler/AGENTS.md(新标准,推荐).ruler/instructions.md(旧版,向后兼容).ruler/下的其他.md文件(按字母顺序)
所有文件内容会被合并,每个文件前会自动添加来源标记。
2. 嵌套规则加载(Nested Rules)
这绝对是 Ruler 最亮眼的特性,特别适合复杂项目。
使用场景:
my-monorepo/
├── .ruler/ # 全局规则
│ ├── AGENTS.md
│ └── global_standards.md
├── frontend/
│ └── .ruler/ # 前端特定规则
│ └── react_guidelines.md
├── backend/
│ └── .ruler/ # 后端特定规则
│ └── api_standards.md
└── docs/
└── .ruler/ # 文档写作规则
└── writing_style.md
启用方式: 在 .ruler/ruler.toml 中设置 nested = true,或者在命令行加参数 ruler apply --nested。
适用场景:
- Monorepo 项目(多个服务或包)
- 前后端分离项目
- 多团队协作,不同区域有不同标准
- 大型复杂代码库
3. MCP 服务器配置
Model Context Protocol (MCP) 为 AI 模型提供额外的上下文和能力:文件系统访问、Git 操作、远程 API 调用、数据库查询等。但每个工具的 MCP 配置格式都不同,Ruler 就是来解决这个的。
配置示例:
# .ruler/ruler.toml
[mcp]
enabled = true
merge_strategy = "merge" # 或 "overwrite"
# 本地 stdio 服务器
[mcp_servers.filesystem]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/project"]
# Git 服务器
[mcp_servers.git]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-git", "--repository", "."]
# 远程服务器
[mcp_servers.api]
url = "https://mcp.example.com"
[mcp_servers.api.headers]
Authorization = "Bearer your-token"
执行 ruler apply --mcp,Ruler 会自动将 MCP 配置转换为各工具的格式并分发。
4. Agent Skills 管理
Agent Skills 可以理解为 AI 袋里里的“可复用能力包”,类似于软件的插件系统。Ruler 的 Skills 管理:
.ruler/skills/
├── obsidian-workflow/
│ ├── SKILL.md # 必需:技能说明
│ ├── templates/ # 可选:模板文件
│ └── scripts/ # 可选:辅助脚本
└── api-design/
├── SKILL.md
└── examples/
Ruler 会将 Skills 自动复制到各工具的 skills 目录(.claude/skills/、.codex/skills/、.opencode/skill/ 等)。
支持的 AI 编程助手
Ruler 支持超过 30 种 AI 编程助手,包括 GitHub Copilot、Claude Code、Cursor、Kilo Code、OpenCode、Codex 等常用的工具。完整列表可以看 Ruler 的 GitHub[4] 仓库。
安装和快速入门
安装
# 全局安装(推荐)
npm install -g @intellectronica/ruler
# 或使用 npx(一次性)
npx @intellectronica/ruler apply
要求 Node.js ^20.19.0 || ^22.12.0 || >=23。
项目初始化
# 进入项目目录
cd your-project
# 初始化 Ruler
ruler init
这会创建 .ruler/ 目录、AGENTS.md 和 ruler.toml 配置文件。
实战指南
场景 1:基础使用
创建配置:
ruler init编辑规则:比如在
.ruler/AGENTS.md中写入项目规范。应用到所有工具:
ruler apply
场景 2:只配置特定工具
# 只配置 Cursor 和 Claude
ruler apply --agents cursor,claude
# 查看详细输出
ruler apply --agents cursor,claude --verbose
场景 3:配置 MCP 服务器
编辑 .ruler/ruler.toml,定义好 MCP 服务器后,执行 ruler apply --mcp 即可。
场景 4:管理 Agent Skills
在 .ruler/skills/ 下创建 skill 目录,每个 skill 目录里放一个 SKILL.md 文件。然后执行 ruler apply --skills。
场景 5:Monorepo 嵌套规则
在 .ruler/ruler.toml 中启用 nested = true,然后从项目根目录运行 ruler apply --nested。Ruler 会自动发现所有嵌套的 .ruler/ 目录并合并规则。
与其他方案对比
Ruler vs. AGENTS.md 标准
| 维度 | AGENTS.md | Ruler |
|---|---|---|
| Instructions 统一 | 文件名和位置统一 | 单一数据源 |
| MCP 配置 | 各工具自行配置 | 统一管理和分发 |
| Skills 管理 | 各工具独立 | 集中管理 |
| 嵌套规则 | 不支持 | 原生支持 |
| 自动化 | 手动维护 | 一键应用 |
| 学习成本 | 低(只是文件) | 中(需要学习工具) |
推荐使用场景:
如果只是用 1-2 个 AI 编程助手,不需要 MCP 服务器配置,不用 Agent Skills,项目结构也很简单——那用 AGENTS.md 就足够了。
但如果你需要频繁切换多个 AI 工具,要统一管理 MCP 配置,在用 Agent Skills,或者项目是 Monorepo 或复杂结构,又或者团队协作,需要标准化配置——那 Ruler 会更适合。
最佳实践:结合使用
- 用 AGENTS.md 标准(统一文件名和位置)
- 用 Ruler 管理配置(MCP、Skills、嵌套规则)
- 把
.ruler/目录提交到版本控制 - 团队成员只需运行
ruler apply
团队协作建议
1. 提交 .ruler/ 到版本控制
# .gitignore
# 生成的文件由 Ruler 自动管理,不提交
AGENTS.md
.cursor/mcp.json
.mcp.json
.claude/skills/
# .ruler/ 目录提交到版本控制
!.ruler/
2. NPM Scripts 集成
{
"scripts": {
"ruler:apply": "ruler apply",
"ruler:check": "ruler apply --dry-run",
"postinstall": "npm run ruler:apply"
}
}
3. 团队标准化
创建团队配置模板,比如 team-configs/ruler-templates/ 下放不同项目类型的 .toml 文件,team-configs/skills/ 下放团队的公共 skill。新项目初始化时,直接从模板复制并应用。
cp team-configs/ruler-templates/frontend.toml .ruler/ruler.toml
cp -r team-configs/skills/* .ruler/skills/
ruler apply
总结
AGENTS.md 标准统一了 instructions 文件的名称和位置,这很好。但 MCP 配置、Agent Skills 管理和嵌套规则等问题,依然需要手动处理。Ruler 用“单一数据源”的理念填补了这个空白,支持超过 30 种 AI 编程助手的自动化配置管理。
一条 ruler apply 命令,就能把集中管理的配置自动分发到各个工具。对于那些频繁切换多个工具、使用复杂项目结构、或者需要团队标准化的场景来说,这无疑能让配置管理回归简单,也大幅降低维护成本。
参考资料
[1] Ruler: https://github.com/intellectronica/ruler
[2] AGENTS.md:统一编码助手指令文件的新标准: https://mp.weixin.qq.com/s/6ZEGcGzt-Nsb1h354ySscg
[3] AGENTS.md: https://agents.md/
[4] Ruler GitHub: https://github.com/intellectronica/ruler
