Skip to main content
NeVibe · guide · 2026-10-24

AI agent config files: CLAUDE.md, AGENTS.md, SKILL.md, .mdc and the rest

Every agent has its own instructions file, but two formats are read almost everywhere: AGENTS.md for standing rules and SKILL.md for skills. Below is a matrix for ten agents, checked against official docs on 2026-10-24.

Two kinds of files: rules and skills

Rules (CLAUDE.md, AGENTS.md, .mdc, copilot-instructions.md) load at startup or when you touch a matching file, and they stay in context. Every line costs tokens on every request, so keep them short: Anthropic suggests under 200 lines per CLAUDE.md, Cursor under 500 lines per rule, and Codex stops adding AGENTS.md content after 32 KiB by default.

Skills (SKILL.md) use progressive disclosure: only the name and description sit in context, and the body loads when a task matches. Long, situational material belongs there. The format is covered in how to write a SKILL.md.

Matrix: which agent reads which file

FormatPathRead byWhen it loadsCLAUDE.md./CLAUDE.md, .claude/CLAUDE.md, ~/.claude/CLAUDE.md, CLAUDE.local.mdClaude Code; Copilot (cloud agent, code review, CLI); opencode as a fallback; Codex only via project_doc_fallback_filenamesat startup, root down to the working dir; subfolder files on demandAGENTS.mdrepo root and subfoldersCodex, Cursor, Copilot, Devin Desktop, Kiro, opencode, Zed, Cline, Junie; Gemini CLI via context.fileName; Claude Code since v2.1.277always; the file closest to the edit winsGEMINI.md~/.gemini/GEMINI.md, working dirs and parentsGemini CLI; Copilot (cloud agent, CLI); Zedconcatenated and sent with every promptSKILL.md.claude/skills/, .agents/skills/, .kiro/skills/ and moreClaude Code, Codex, Cursor, Copilot, Gemini CLI, Kiro, opencode, Zed, Devin Desktopname and description at startup, body on use.claude/rules/*.md.claude/rules/, ~/.claude/rules/Claude Codealways without paths; with paths, when a matching file is touched.cursor/rules/*.mdc.cursor/rules/Cursoralways, by globs, by description, or manually.cursorrulesrootCursor (legacy), Cline, Zedalwayscopilot-instructions.md.github/Copilot; Zedalways in repo context*.instructions.md.github/instructions/Copilotwhen the path matches applyTo.clinerules.clinerules/ or .cline/rules/Clinealways, or by paths.devin/rules/*.md.devin/rules/ (fallback .windsurf/rules/)Windsurf / Devin Desktopby trigger: always_on, model_decision, glob, manual; 12,000 characters per fileKiro steering.kiro/steering/*.mdKiroby inclusion: always, fileMatch, manual, auto

Zed is the odd one. From the list .rules → .cursorrules → .windsurfrules → .clinerules → .github/copilot-instructions.md → AGENT.md → AGENTS.md → CLAUDE.md → GEMINI.md it uses only the first file it finds. A stale .rules in the root will shadow your AGENTS.md.

AGENTS.md and CLAUDE.md in one repo

Since v2.1.277 Claude Code reads AGENTS.md natively, but by default only when there is no CLAUDE.md, .claude/CLAUDE.md or CLAUDE.local.md in the working directory or above. If CLAUDE.md exists, AGENTS.md is silently skipped. The documented bridge is a line @AGENTS.md inside CLAUDE.md. Details in AGENTS.md vs CLAUDE.md.

The shared .agents/skills folder

.agents/skills/ (and ~/.agents/skills/) is read by Codex, Cursor, Copilot, Gemini CLI, opencode, Zed and Devin Desktop. It is the closest thing to a common home for skills.

Two exceptions. The Claude Code docs do not mention this path; Claude Code looks in .claude/skills/. Kiro reads only .kiro/skills/. On the other hand, Cursor, Copilot, opencode and, when enabled, Devin Desktop all pick up .claude/skills/.

Installers handle the split for you. npx skills add owner/repo -a claude-code drops the skill into .claude/skills/; with -a codex it goes to .agents/skills/. Per-platform steps: Claude Code, Codex, Cursor.

Slash commands: still a mess of formats

AgentWhereFormatClaude Code.claude/commands/*.mdMarkdown; merged into skills, old files still workCodex~/.codex/prompts/*.mddeprecated in favor of skillsGemini CLI.gemini/commands/*.tomlTOML with a prompt fieldCopilot (VS Code).github/prompts/*.prompt.mdMarkdown + frontmatterDevin Desktop.devin/workflows/*.mdMarkdown, run with /name

The direction is clear: Claude Code and Codex are folding commands into skills, and Cursor does the same with /migrate-to-skills. Write new commands as skills from the start.

Converters: one source for every agent

GitHub stars as of 2026-10-24.

ToolWhat it doesCoveragerulesync (1,551★, MIT)generates rules, MCP, commands, subagents, skills and hooks from .rulesync/; imports from CLAUDE.md, .cursorrules, copilot-instructionsabout 65 targetsruler (2,950★, MIT)writes AGENTS.md for most agents from .ruler/, merges MCP into native configs31 rows in the README tableblock/ai-rules (139★, Apache-2.0)rules and MCP from ai-rules/11 agentsvercel-labs/skills (36,354★, MIT)an installer, not a converter: puts SKILL.md into each agent's folderClaude Code, Codex, Cursor, OpenCode and 75 more per the READMEopenskills (10,808★)installs skills and lists them in AGENTS.mdany agent that reads AGENTS.md; last push 2026-01-18

Our take. One person, one agent: skip converters and use the native file. A team on two or more agents: keep rules in AGENTS.md, skills in .agents/skills/, and add an @AGENTS.md bridge in CLAUDE.md for Claude Code. Once MCP and hooks for three agents join the rules, use rulesync; it covers the most features and works in both directions.

FAQ

Which rules file do all AI coding agents read?

AGENTS.md comes closest: Codex, Cursor, Copilot, Devin Desktop, Kiro, opencode, Zed, Cline and Junie read it, and Claude Code does since v2.1.277 when no CLAUDE.md is present. Gemini CLI reads it once you set context.fileName.

What is the difference between .mdc and .cursorrules?

.cursorrules is a single legacy file in the root that always loads. .mdc files live in .cursor/rules/ and use frontmatter to say when a rule applies: always, by file glob, by description, or manually.

Where should I store skills so several agents see them?

In .agents/skills/, which Codex, Cursor, Copilot, Gemini CLI, opencode, Zed and Devin Desktop read. Claude Code looks in .claude/skills/ and Kiro in .kiro/skills/.

How do I keep Claude Code and Cursor rules in sync?

Keep the rules in AGENTS.md, which Cursor reads directly, and add a line @AGENTS.md to CLAUDE.md. For MCP, hooks and commands, use rulesync or ruler.

NeVibe catalog

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor