agents-md

Generate and safely maintain an AGENTS.md for any repo, the cross-tool standard that AI coding agents read.

standard: AGENTS.md License: MIT node >=16 zero dependencies

One AGENTS.md works across Codex, Cursor, GitHub Copilot, Gemini CLI, Aider, Windsurf, Zed, Devin, and more. CLAUDE.md is pointed at it via symlink. agents-md writes a great one by reading your repo, and it is safe to re-run: it only updates the regions it generated and never clobbers anything you wrote by hand.

Quick start

cd your-repo
npx @eugeniughelbur/agents-md

Or as a Claude Code skill: npx skills add eugeniughelbur/agents-md, then run /agents-md.

Why agents-md

AGENTS.md vs CLAUDE.md vs .cursorrules vs llms.txt

FileRead byWhat it is
AGENTS.mdCodex, Cursor, Copilot, Gemini CLI, Aider, Windsurf, Zed, DevinThe cross-tool standard for agent instructions
CLAUDE.mdClaude CodeTool-specific; symlink it to AGENTS.md
.cursorrulesCursorTool-specific (Cursor also reads AGENTS.md)
.github/copilot-instructions.mdGitHub CopilotTool-specific (Copilot also reads AGENTS.md)
llms.txtLLMs / AI searchFor documentation sites, not repo agent instructions

FAQ

What is AGENTS.md?

AGENTS.md is an open, cross-tool standard file that tells AI coding agents how to work in your repository: its build and test commands, code conventions, gotchas, and do-not-touch boundaries. It originated at OpenAI in 2025 and is now governed by the Linux Foundation's Agentic AI Foundation. Think of it as a README for agents.

AGENTS.md vs CLAUDE.md, which should I use?

Use AGENTS.md as the single source, then symlink CLAUDE.md to it. Most agents read AGENTS.md natively; Claude Code reads CLAUDE.md, so the symlink covers both. agents-md sets this up automatically.

Is it safe to re-run? Will it overwrite my edits?

Yes, it is safe. Re-runs refresh only the regions wrapped in HTML-comment markers; everything outside the markers is preserved. A handwritten AGENTS.md with no markers is never overwritten.

Does it need an API key or send my code anywhere?

No. The CLI has zero dependencies, makes no network calls, and reads only repo metadata (and .env.example, never real secret values).