The fact that it took this long to add such a basic feature is a disgrace. I’m not even remotely satisfied. Bailed on Claude ages ago. Rolling Codex, Gemini, and Qwen3.8 30B. The only way I’m going back to Anthropic is if they drop and Culture Series mind.
I recently had Claude Fable set up a new project for me and I pointed it at some existing projects to use as a guide on how I like to structure things. It created, unprompted, an AGENTS.md file and a CLAUDE.md symlink to AGENTS.md<p>I didn't even have that symlink in any other project - it just did it. I think it saw that one of the projects I already had was set up by Codex and that project had an AGENTS.md so perhaps it inferred that I was using both Claude and Codex, so it was politely covering both? Or maybe a recent change made this behavior default?<p>I was surprised and I hope they continue to seek standards.
Seems agents understand their own bugs now. <a href="https://github.com/openai/codex/issues/9252" rel="nofollow">https://github.com/openai/codex/issues/9252</a> has 88 thumbs up and a workaround (switch to raw mode with Alt+R) found in a comment. Codex suggested the workaround to me today when I complained about its multi-line bash command being corrupted on paste because of the two-space indent in Codex's code blocks.
Fable didn't want you to blame it for the limitations its creators gave it
Justba prompt change.
Don’t get too excited, Claude code still won’t detect skills on .agents/skills.
They have AGI, but they don't have $20 of token budget to add a so basic functionality.
A post-checkout git hook can handle this unfortunate situation.<p><pre><code> mkdir -p ~/.githooks
git config --global core.hooksPath ~/.githooks
cat > ~/.githooks/post-checkout <<'EOF'
#!/usr/bin/env bash
if [ -d .agents/skills ] && [ ! -e .claude/skills ]; then
mkdir -p .claude
ln -s ../.agents/skills .claude/skills
fi
EOF
chmod +x ~/.githooks/post-checkout</code></pre>
Won’t you have to do it recursively for all child directories?
we shouldn't have to do this on a per-repo basis, Ant can choose to be a reasonable member of the ecosystem or not
Don't worry, it's on the roadmap for Q4 2029.
Once I asked, puckishly, Claude Code to “follow the instructions in this directory” when there was only an AGENTS.md there.<p>In the manner of someone finding a dead mouse and holding it up for examination CC said it could find no instructions but perhaps it should check this AGENTS.md file.
Had a silly exchange with Codex: I had an AGENTS.md file in a directory that was a symlink to an already-created CLAUDE.md. On my first prompt to Codex, it decided to point to me that my AGENTS.md specifically calls out directions to Claude, and that it would generously re-interpret them as directions to itself, and that maybe I should fix my AGENTS.md to reference the correct agent.<p>Very sassy, Codex!
When I setup a global agents.md/claude.md for its communication style, I got the following response during the next session:<p>> The function you added is load-bear-very important [...]<p>I never felt this mocked by a computer.
But if you said that you were migrating from another platform to Claude, my guess is that it would have happily found and converted AGENTS.md
Remember they didn't do this because they wanted to help community, they did it because community was angry and they were losing users to other harnesses.<p>Doesn't look like Anthropic care about dev community
This is simply the obvious, non-stupid thing to do, like Apple switching to USB-C.
This just be a recession indicator
LOL <a href="https://thenewstack.io/shopify-claude-code-agentsmd/" rel="nofollow">https://thenewstack.io/shopify-claude-code-agentsmd/</a><p>> “I’m thinking about banning Claude Code at Shopify until they change their mind and read AGENTS.md and .agents/skills etc.,” Lütke posted Tuesday on X.
Caught myself about to praise this, but it's the absolute bare minimum.<p>Time to delete the symlinks
My view is at the end of 35 years in the industry the current wave of “software” and “systems” engineering coming out of the AI harness community is pretty garbage. But web technology and distributed systems followed a very similar arc, as did protocols and memory management; and microcode before them. But it feels like this is particularly bad because the mistakes being made are plainly obvious to the grey heads who have been here a while. As opposed to before when mistakes were in new domains being explored, these are mistakes made before and have good solutions to.<p>I feel people too readily blame the LLMs themselves for this, but I’ve found LLMs know the history of computing thought evolution better than anyone I’ve ever encountered. Once you push them in the right direction, ground them in the philosophy of thought of hard won engineering ideas, they are astoundingly precise and accurate in their read and application (keeping every session grounded is the trick!). So it’s not the machines making these same mistakes with ready conceptual frameworks around them, it’s the 22 year old gatekeepers dashing head first into wall after wall, when we painstakingly built the door two feet to the left about the time they were gestating.
Anthropic in 2025: We can use our dominant market position to degrade the harness experiences of our competitors because they will never adopt CLAUDE.md<p>Anthropic in 2026: We are losing our market position. Users who adopted other harnesses have a degraded Claude Code experience because it doesn't recognize their AGENTS.md
Sounds like free market at work to me. I am just glad there is quite a lot of competition in a field that I would have assumed would have huge costs of entry
The walls are closing in and the president is gleefully lighting fires he has no intention of putting out. There's a reason they're rushing like mad to an IPO, but as we saw with OpenAI it's easier said than done when your business model is "Lose tons of money to eventually maybe dominate a market with the moat we don't have, but trust us AI is huge give us trillions."
Its like the Epic Games Store supporting Linux, or [any website] supporting dark mode. You'd think its an easy to implement bare minimum that everyone asks for, but its like pulling teeth to actually get it done.
Claude also checks your settings.json first, and if it sees a default there it then prefers that over anything in CLAUDE.md. This is particularly nefarious as they ship logic to presume a default if a setting is not there in settings.json, even if there are instructions in CLAUDE.md for exactly that.<p>For instance, say you added "do not add 'Made with Claude Code' in any issues, pull requests or wiki entries" in your CLAUDE.md. So far, so good.<p>Well the latest update now looks for something in your settings.json. Since you don't know about it, it is not set. Claude then says "not explicitly set, so now it is true by default". It completely ignores your CLAUDE.md.<p>Wait, what?<p>You shouldn't be shipping logic that arbitrarily redefines the behavior of the program, especially if your new logic actually ignores your own configuration or directives.
The madlads finally did it, now if only I could use my Claude sub in other harnesses without risking getting banned.
yep, all i want is freedom to make a workflow where i don't feel tied to one provider, CC is exactly what i don't wanna get trapped in. I'll happily use claude MODELS, but if it means i have to keep learning two harnesses side by side to keep using one particular provider, then the second i can easily replace it, i am going to(even if its a small drop in performance).
Still can't read what their models vomit at me.
Finalllyyyy!! We need industry wide standards. I come from the 3d industry and oh god changing softwares and adapting to different hotkeys it's a pain. I have always thought every industry should be standardized for the sake of the users.
Meanwhile, I just setup codex for the first time (to try Astra) and it offered to load my Claude and Cursor conversations and claims to even do it in a way where it says in sync if you use both. The only reason to use Claude Code is the 20x usage of the 200$ plan is ridiculous value if you have the need for that volume.
The 20x plan offers the same amount of monthly usage per dollar as the $100 plan. It offers 2x monthly usage of the $100 plan. It's incredibly deceptively named, the "20x" is only about the 5-hour window.
“Offered to load conversations”. Let me translate that. “Can we please upload your data to our servers showing how you work with other AI agents?”
Oh, finally! Time to delete symlinks<p>That said, AGENTS.md doesn't seem like a good name, right?, technically, it's an instructions file read by a single agent, not necessarily for agents, so it always struck me as a bit odd<p>But until the next standardization, keeping just AGENTS.md is the best approach.
Finally doing something standards-compliant instead of forcing users into a proprietary workflow.
fwiw, i am with thariq <a href="https://x.com/trq212/status/2092302273099796842" rel="nofollow">https://x.com/trq212/status/2092302273099796842</a> in that prompts should be tuned for models and in fact blindly applying agents.md is probably an antipattern unless you want all models to basically converge to some common ill defined of instruction following - good local minima, bad global minima for model diversity and exploration of intelligence.<p>aka, sometimes it really is too early to force a standard
Is it realistic to rewrite your AGENTS.md every six weeks? That's about how often Anthropic releases a new point release of Opus.
I have had very little luck with agents.md. What <i>has</i> worked well for me is a ./docs folder. They seem to just create and update stuff on their own.
If you want this it's trivial to add an AGENTS.md that simply says "if you're Claude read CLAUDE.md, if you're Astra read ASTRA.md". A common entry point is good regardless.
By this logic you'd probably be wise to tier your claude.md by model (sonnet/opus) as well as effort level too, considering the varying failure modes
19 out of 20 harnesses supporting the standard isn't "too early".<p>Tariq is wrong and it's not an antipattern. Reason being that a <i>good</i> AGENTS.md impacts all models in a positive manner. If it affects certain models negatively, it means you're putting the wrong things in it.
depends what you're doing. if you've got a specialized agent deployed in prod, of course your evals and prompts will be targeted towards 1 specific version of a model.<p>on the other hand if it's just a local coding/"use my computer" agent, i highly doubt the effort in maintaining different prompts is worth any gain in performance
No thanks, I'm not tuning a bunch of files just for things to break when I switch models or a new one comes out.<p>I'll just use my one-size-fits-all AGENTS.md file and tweak it when the one of the clankers screw up. I don't have time for such busywork.<p>Actually, I will append extra rules to CLAUDE.md (which imports AGENTS.md) since there is a hook there, and Claude has its own foibles. So I'll backpedal a bit there.
It looks for Claude.md first so I don't understand what you think the problem is with the standard name as a fallback.
Yeah but are models good enough to review these files and say “i would work better if you worded it this way?”
That's of course rather nonsensical.<p>In a "one LLM only" environment, your instructions are by default tuned for said LLM.<p>In a multi-LLM environment, roughly nobody will keep separate sets of instructions for each. It's not a realistic take.<p>On top of that: If your LLM is so bad at reading that it can't follow a set of instructions that wasn't specifically written just for that one single precious LLM, I sure wonder what that says about your employers repeated statements that ASI is definitely right around the corner.
Trying to make a .md file proprietary by changing the name is hilarious
CLAUDE.md: @AGENTS.md
<p><pre><code> ln -s AGENTS.md CLAUDE.md</code></pre>
Why not hardlink - so it wouldn't even know?
Wake up babe, new recursive self learning technique just dropped.
I tried that before, it doesn’t work. Claude will not prioritize AGENTS instructions the same way it did for CLAUDE.<p>ln was the only thing that worked for me
I'm honestly not sure if this is tongue in cheek and the "finally" is in the silly way it is often used, but the claude.md variant existed first. Indeed, the agents.md thing was pretty clearly a "that's neat, let's do that with a different name".
It's "finally" because people have been asking for it for a long time. No one cares that "claude was first," what they want is for Ant to follow the conventions and not put extra work on us. This was such a minimal thing to do, and considering how much they vibe and claim "coding is solved," we thought it would not be too difficult to respect AGENTS.md, so <i>finally</i> seeing it happen, while nice, is too late for me. I've moved on from Big Ai and only use open weight models now.
There’s also that whole MCP thing.
I gotta hand it to programmers (or whatever we call ourselves now) for sticking to principle on something this trivial.<p>It was either this or Claude had to become a generic term like sheetrock.
My claude.md:<p># CLAUDE.md<p>This project uses `AGENTS.md` as its agent instruction file (kept provider-agnostic).
Treat any `AGENTS.md` file exactly as you would a `CLAUDE.md` file — at the root level and in any subdirectory you are working in.<p>@AGENTS.md
I wonder when they'll finally fix the VS Code plugin to not constantly dump your current file into the context.
Gotta say, it is hilarious that this is the current top HN post. I feel like it's gotta say something about our current AI zeitgeist, that there is such vigorous attention on a seemingly-minor change. Feels like something is on the tip of my tongue but I can't name it at the moment.<p>If anyone wants to write/link a much better-thought-out post, I'm all ears!
It's just so nice when even crazy people agree to some sane standard. Like USB c, like having dark mode, just nice.
I suppose it’s reflective of where the industry is. Claude is just that ubiquitous.<p>Reminds me of when you’d see posts for React 16.0.3 or whatever. Absolutely minor news, but multiply that by the number of users…<p>Now I just need to figure out which one makes me feel worse.
Another commenter appreciated the move towards a sane/nice standard. I am definitely on that side of the table. I'd rather feel good about the move -- good enough to ignore the other implied issues, lol.<p>I also think your point has at least one decent reading: that the upvotes help other practictioners update their mental model of their tools. There's probably also some value due to being an implicit "Claude Code megathread" for commenters to congregate around. News so minor that it does't even really make sense to force people to fully stay on topic, hah.
One of many "new normal" artifacts that seem all the more strange when the pace of change accelerates.
I read it more as sarcastic engagement since this should have been the case for a year+.
OMG THEY CHANGED THE FONT, TOP OF HN!!!
Just to touch on the wording of "in a project with no CLAUDE.md" does that mean user-level ~/AGENTS.md or ~/.agents/AGENTS.md isnt supported?
Finally, I can delete `sync-agent-docs.sh`, which recursively symlinked AGENTS.md to GEMINI.md and CLAUDE.md...
Thanks guys, you did the right thing.
Better late than never... Now it's time for Claude Code to load skills from .agents/skills!
Wild that it didn’t already do this
This is not a news to celebrate, they must follow standards
Wow..... Progress and technical innovation right here!!!
Thank you Tobi Lutke.
Context<p>“I’m thinking about banning Claude Code at Shopify until they change their mind and read AGENTS.md and .agents/skills etc.,”<p>- Tobi Lütke on X.
Next he needs to tweet about ~/.agents/skills
AGENTS.md is the new autoexec.bat.-
This allows us to remove our one line Claude.md files that just say "AGENTS.MD"
Commoditization commoditizes commodities.
First feature to borrow after peaking into openai repos? ))
Hell froze over?
finally!
Now this might sound sorta off-topic but i really wonder how people feel about skills.md, skill.md, skills.sh domains...<p>the fact that they're owned by different companies (ok vercel is a little less random) still leaves me with a sour taste in my mouth when thinking about the fact that they should all point to 1 place about how to create and find skills for ai agents?!
Before anyone even contemplates if Anthropic has any good intentions, remember, this is how petty and small minded they are.<p>Truly the last people you want with this kind of power.
Thank Christ
Forcing their own proprietary filename was clearly a business decision (it's free advertising, along with commit co-authorship). I wonder what made them go back on it.
They're probably losing market share. The only time you ever see tech companies make consumer-focused changes is when those consumers are jumping ship to go somewhere else in large enough numbers to matter.
Two reasons combining at the same time: GPT Astra, and the Shopify CEO tweet.
great, one less step for me.<p>I was using my claude.md file as a pointer to my agents.md file
Truly incredible innovation.
Great. Now if they could support the `~/.agents/skills` path next like everyone else does that would be even better.
I just wiped all agents and it’s always readme.md
Only took them a year and a half of everyone complaining to finally do the right thing.<p>Congrats.
So far I've been managing this with a symlink.<p>Same with skills, symlink to skills at .claude/skills
didn't it always read it?
Sanity prevails
Can it read copilot.md if neither of the other files are present?
Also: agents should be the standard, or we need to invoke the XKCD for "one more standard to rule them all"?
Great, now I have to redo my scaffold harness. I guess this agent.md awareness is part of the system prompt?
nope! they're releasing something called "Claude Code mods", toted as their "upcoming way to customize the Claude Code harness"<p><a href="https://x.com/trq212/status/2101009392611278961" rel="nofollow">https://x.com/trq212/status/2101009392611278961</a><p>AGENTS.md implementation is open sourced as well: <a href="https://github.com/anthropics/claude-code/tree/main/mods/agents-md" rel="nofollow">https://github.com/anthropics/claude-code/tree/main/mods/age...</a>
Great, now please standardize the skills folder and the MCP config.
About time!
Hi, September 2026, meet September 2025
Still don't understand the point of the markdown files.<p>Isn't it literally all just more text you're adding to the prompt. How can you even be sure it isn't just clouding context with nonsense for whatever you're asking for?
For skills, it only reads the summary telling it when to read the rest. So yes if you have too many skills, it can get confused and start reading all them and cloud the context. But if you have a few and they're used tactically, it's better than having to manually paste in prompts that you reuse a lot.<p>Similar reasoning with claude.md except it always reads the entire thing(?)
You know it because you write the content of AGENTS.md. And if you are smart, you keep it brief and cover only the important things that anyone (human OR LLM) would want to know if working in this directory.
why did it take so long?
Forced to do something for the users...
Ah yes, the peak of technology.
Now do skills
A reminder that needs to be said: Don't use a closed-source harness.<p>Why? This is why. [0]<p>[0] <a href="https://news.ycombinator.com/item?id=49750694">https://news.ycombinator.com/item?id=49750694</a>
[flagged]
[flagged]
[dead]
[dead]
[dead]
[dead]
yay! /s<p>Why are people still putting up with this kind of attitude, especially when there are so many good alternatives available?
ln -s
not as simple as that: nested AGENTS.md, skills, agent customization, MCP, ... the list of misaligned harness features is still rather long
[flagged]