规则(AGENTS.md)
用 AGENTS.md 给 OpenCode 提供项目指令:/init 生成、项目与全局位置、Claude Code 兼容回退、查找优先级与 instructions 配置。
你可以通过创建 AGENTS.md 文件给 opencode 提供自定义指令,类似 Cursor 的规则:它包含会被包进 LLM 上下文的指令,针对你的具体项目定制它的行为。
初始化
在 opencode 里运行 /init 创建新的 AGENTS.md(建议把项目的 AGENTS.md 提交到 Git)。/init 扫描仓库里的重要文件,在代码库无法回答时可能问几个有针对性的问题,然后创建或更新 AGENTS.md,写下简洁的项目特定指引,聚焦未来的智能体会话最可能需要的东西:构建、lint 和测试命令;在重要时的命令顺序和聚焦验证步骤;从文件名看不出来的架构和仓库结构;项目特定的约定、设置怪癖和运维陷阱;对 Cursor 或 Copilot 规则等已有指令来源的引用。如果你已经有 AGENTS.md,/init 会原地改进它而不是盲目替换。当然也可以手动创建,示例(SST v3 monorepo):
# SST v3 Monorepo Project
This is an SST v3 monorepo with TypeScript. The project uses bun workspaces for package management.
## Project Structure
- `packages/` - Contains all workspace packages (functions, core, web, etc.)
- `infra/` - Infrastructure definitions split by service (storage.ts, api.ts, web.ts)
## Code Standards
- Use TypeScript with strict mode enabled
- Shared code goes in `packages/core/` with proper exports configuration类型
opencode 也支持从多个位置读取 AGENTS.md:项目(在项目根放 AGENTS.md,只在你在该目录或子目录里工作时适用);全局(~/.config/opencode/AGENTS.md,应用于所有 opencode 会话;它不提交到 Git 也不与团队共享,建议用来写个人规则)。Claude Code 兼容:对从 Claude Code 迁移的用户,OpenCode 支持 Claude Code 的文件约定作为回退;要禁用,设置环境变量:OPENCODE_DISABLE_CLAUDE_CODE=1(禁用所有 .claude 支持)、OPENCODE_DISABLE_CLAUDE_CODE_PROMPT=1(只禁用 ~/.claude/CLAUDE.md)、OPENCODE_DISABLE_CLAUDE_CODE_SKILLS=1(只禁用 .claude/skills)。
优先级
opencode 启动时按这个顺序查找规则文件:从当前目录向上遍历的本地文件(AGENTS.md、CLAUDE.md);~/.config/opencode/AGENTS.md 的全局文件;~/.claude/CLAUDE.md 的 Claude Code 文件(除非禁用)。每个类别里第一个匹配的文件胜出:例如同时有 AGENTS.md 和 CLAUDE.md 时只用 AGENTS.md;~/.config/opencode/AGENTS.md 优先于 ~/.claude/CLAUDE.md。
自定义指令
可以在 opencode.json 或全局 ~/.config/opencode/opencode.json 里指定自定义指令文件,这让你和团队复用已有规则而不必复制到 AGENTS.md:
{
"$schema": "https://opencode.ai/config.json",
"instructions": ["CONTRIBUTING.md", "docs/guidelines.md", ".cursor/rules/*.md"]
}也可以用远程 URL 从网络加载指令。