4 ms·
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
by me551ah 3mo 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 https://github.com/anthropics/claude-code/issues/6235
- ValentineC 3mo agoMy 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#issuecomment-3217884068 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.
- troupo 3mo agoI 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.
- ahtihn 3mo agoSymlinks are a pain if you're on Windows, I'd rather not bother with them.
- layer8 3mo agoSymlinks aren’t portable.
- rurban 3mo agoPortable to all systems Claude runs on
- ValentineC 3mo agoOne bonus to this approach is that I can add Claude Code-specific stuff in there, that I wouldn't need for other harnesses.
- deleted 3mo ago[deleted]
- fortuitous-frog 3mo agoI 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 :)
- lelandbatey 3mo agoYour solution "appears" to solve the problem, but without any information about how exactly that solution works, it's just magic an vibes. Does the harness parse the contents of CLAUDE.md, see the @AGENTS.md and then inject the contents of AGENTS.md into that file with a note saying "hey Claude-the-llm, here's the contents of AGENTS.md per an @reference"? Does the harness parse and inject but WITHOUT any ceremony telling claude-the-llm that what it's looking at is from another file? Or does the harness do nothing and Claude-the-llm is merely trained to see @references and treat those as "I should go read that file"? Which is it? If it's #1 and #3, then on long contexts/after compaction, then the LLM is still pretty likely to lose the fact that it read that file and re-read it again. If it's #2, the LLM could have the same problem as with the symlinks. How does it work? The Anropic docs certainly don't say. So what's the best choice? I guess it's magic. For folks like me who care though, I guess there's always Pi or Opencode (or even, writing your own harness [which is shockingly easy if you want it reliable without all the fanciest features]).
- thejazzman 3mo agowhy over complicate it? the answer is obviously yes? it sees it and reads the file? might it sometimes not? yeah, just like every other thing you write in agents.md or the prompt. if you want to write a more verbose statement telling it to read the other file do so. or if you really want to make damn sure it read what you wrote, then symlink it, because it does in fact read the thing twice.
- dpkirchner 3mo agoI'm pretty sure some agent harnesses read both files when present, so this @ "aliasing" is more token efficient.
- lijok 3mo agoGood programmers know symlinks are not portable
- _alternator_ 3mo agoNeither are line endings. But like line endings, I just put it into git and get over it.
- anon373839 3mo ago[flagged]
- sethaurus 3mo ago> Be kind. Don't be snarky. Converse curiously; don't cross-examine. Edit out swipes. https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html
- chorkpop 3mo agoCLAUDE.md has been incredibly successful for them advertising wise. I wouldn’t expect them to admit AGENTS.md exists anytime soon.
- hexsprite 3mo agoI 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 https://github.com/hexsprite/claude-agents-md
- arcanemachiner 3mo agoClaude Code supports native imports: `@AGENTS.md`
- OJFord 3mo agoTo 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.
- troupo 3mo agoYou two realise that symlinks exist, right? That you need neither a "plugin" nor a "native import"?
- arcanemachiner 3mo agoWhat if I need Claude-specific instructions?
- hk__2 3mo agoWhat’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.
- bandrami 3mo agoSo there's this amazing thing called a symlink
- hk__2 3mo agoNot amazing enough. Let me present you claude-md-symlinker [1], an 8k-lines Rust project designed to do exactly the same as a symlink but in an obscure manner, running as a Linux service and maintaining its own database. This is like left_pad but for symlinks. [1]: https://github.com/dutifuldev/claude-md-symlinker#claude-md-symlinker https://github.com/dutifuldev/claude-md-symlinker#claude-md-... (I’m not the author obviously)
- denkmoon 3mo agoHaven’t even had my coffee yet and this is definitely the most cursed thing I’ll see today, thanks!
- bandrami 3mo agoA few years ago I noticed a junior dev was creating a lot of one-file, two-branch git repositories and I asked him why. He said he wanted to run a diff on two versions of a file that wasn't in version control, so he would make a branch with each version and run git diff. I think about that a lot lately.
- datsci_est_2015 3mo agoLiterally 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!”
- dgunay 3mo agoMaybe 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.