← Back to context

Comment by me551ah

10 hours ago

Claude is also weird for being the only coding assistant that for some reason doesn't support AGENTS.md. Codex, Amp, Cursor all of them support it and read from it, but not claude which forces it's users to use CLAUDE.md instead.

The issue is the higest voted issue on their gitlab repo: https://github.com/anthropics/claude-code/issues/6235

My CLAUDE.md is just:

    @AGENTS.md

And Claude processes it just fine.

(I see that it's a common workaround, and there's a comment in the above link saying just this: https://github.com/anthropics/claude-code/issues/6235#issuec...)

It's a hassle having to add it to every repo that I use Claude with though, and I often use other models and harnesses too for the more trivial tasks.

  • I beg people to learn what symlinks are. The fact that "put @AGENTS.md in there" is a "common workaround" shows why programmers (good ones at least) are not going anywhere soon.

    • I used to use a symlink but was concerned that Claude might see the presence of an "AGENTS.md" file (in e.g, a "List Files" tool call output or from a direct `ls`), be curious and attempt to read it directly (not knowing that it's the same as the "CLAUDE.md" file auto-injected by the harness), and essentially double the token impact / context bloat. Indeed, I did some local experimentation and noticed this was the case, which is why I switched to the explicit "@AGENTS.md" approach.

      So perhaps there's no need to be rude about it :)

      2 replies →

    • One bonus to this approach is that I can add Claude Code-specific stuff in there, that I wouldn't need for other harnesses.

    • I'm pretty sure some agent harnesses read both files when present, so this @ "aliasing" is more token efficient.

Maybe I'm just not aware enough to notice any quality degradation, but I've been using Claude Code in repos that only have AGENTS.md and it just generally seems to know to read it when getting its bearings.

CLAUDE.md has been incredibly successful for them advertising wise. I wouldn’t expect them to admit AGENTS.md exists anytime soon.

So there's this amazing thing called a symlink

Literally trying to use file naming to build a moat. “We can’t switch to Cursor, we’d have to rename all of our files from CLAUDE.md to AGENTS.md!”

I created a Claude Code plugin to load AGENTS.md. Uses symlinks but it’s better than no support.

https://github.com/hexsprite/claude-agents-md

  • What’s actually better is doing a symlink by hand. 1- if you didn’t know it you learn what’s a symlink; 2- if that’s in a git repo you share it with all your coworkers without all of them needing to install the plugin; 3- security-wise it’s way better than running some 100+ lines of Bash from a repo on GitHub.

  • Claude Code supports native imports: `@AGENTS.md`

    • To be fair if you can do it through some kind of plugin or skill it does spare you having a CLAUDE.md of `@AGENTS.md` in every repo individually.

    • You two realise that symlinks exist, right? That you need neither a "plugin" nor a "native import"?