The agents.md convergence

I've been bouncing between AI coding agents long enough to recognize the familiar patterns, that everyone notices: every tool shows up with its own sacred instruction file, asks you to drop a branded file at the root of your repo, and swears this is how the magic happens.

After a few rounds of testing different AI coding agents your project starts to look like a flea market of .(provider)/ directories, few Markdown files, the same rules phrased slightly differently, half of it possibly stale. None of this is surprising; it's how early markets behave. But it's not where we're going.

We are going to converge on a single, unbranded instruction file. Let's call it AGENTS.md. Not because a standards committee forced the issue or a perfect spec descended from on high, but because market incentives push everyone there.

This isn't a moral argument about tidiness. It's a practical argument about growth, friction, and where the competitive game actually gets played.

And let's call it AGENTS.md, just because OpenAi decided to call it AGENTS.md. It's a good name, actually; it makes sense.

Meme

The economics of the convergence

If you need the economics in one breath, it's Hotelling meeting Schelling at your repo root.

Hotelling's law says competitors on a line drift toward the center to capture more of the market. Translate "center" into "which file the agent reads by default," and you see why vendors who want adoption will inch toward whatever filename already sits in most repos.

Schelling's focal points explain the rest: when teams are coordinating without talking, they default to the solution that feels obvious. In a forest of config, a neutral, boring, guessable file name becomes that obvious place to meet.

Put the two ideas together and you get the same picture: AI coding agents are ice-cream carts sliding toward the middle of the beach, and the middle is an unbranded file that every tool can read without drama.

The value of the convergence

The objection I hear most is that vendors need moats, and a branded filename is part of the moat. That's wishful thinking.

The on-ramp to that experience should be as smooth as possible because the true battle is fought one layer up: model quality, tool use, latency, safety, ergonomics, integrations, and trust.

A neutral instruction file is not a concession; it's a growth hack. It reduces trial friction, removes the silly chore of duplicating the same content into three separate files, and makes it easier for teams to multi-home-because yes, people will run more than one agent. The tool that can walk into a new repo and "just work" earns more first impressions and, over time, becomes the default without ever having to litigate a naming convention.

Emergence of the standard

This is how standards actually happen in the wild. They don't get voted in; they accrete.

The happening of the standard is a partially coordinated effort:

  • One widely used agent treats a neutral filename as a first-class citizen.
  • Another tool adds compatibility because users keep asking why it doesn't read the file they already have.
  • Starter templates and demo repos begin to include it, so the convention leaks into greenfield projects without anyone thinking too hard.
  • Plugins and IDEs sniff for the same file because it's the easiest place to pick up project rules.
  • Enterprise enablement teams start adding "reads the neutral instruction file" to their procurement checklists, not to be fancy but to cut onboarding time.

By the time people are debating plural versus singular, the ecosystem has quietly decided to accept both and prefer the nearest file. The bikeshed can keep its paint; the market has moved on.

What makes this stick are the network effects you can actually feel in day-to-day work.

  • Documentation network effects kick in when more teams write down their build, test, merge, and "don't touch this" rules in one predictable place.
  • Tooling network effects follow when IDEs, CLIs, code search, and CI start using that same place as a hint source.
  • Talent network effects show up when new teammates-and new agents-know exactly where to look on day one.

Each of these is modest by itself, but together they turn a filename into part of the repo's public interface. Once that happens, ignoring it becomes expensive for vendors and annoying for users.

The future of the convergence

None of this requires branded files to disappear. They won't. Some tools will keep richer, proprietary formats for advanced features, and that's fine.

Convergence on an unbranded file is additive, not subtractive. The neutral file is the handshake; the branded file can be the secret handshake. You cooperate on the on-ramp and compete on everything above it. That mix-coopetition at the boundary, competition in the experience-is how healthy ecosystems grow.

Inside a vendor, the calculus is almost embarrassingly straightforward.

The cost to support a neutral Markdown file is low. The risk of "endorsing" a convention you don't own is theoretical. The rewards are concrete: more repos where your tool works without nudging, fewer support tickets asking why nothing was read, better conversion during trials, smoother enterprise rollouts.

Meanwhile, whatever moat you're building lives in your models, your tooling, your latency curve, your guardrails, and your integrations.

It doesn't live in a filename.

If you're shipping a better agent, the neutral on-ramp helps more people discover that fact faster. If you're shipping a weaker one, a branded filename won't save you.

You can already see the tipping behavior if you squint a little. Release notes brag that a tool "works with your existing repo instructions" without making you rearrange furniture.

New project templates quietly include a neutral file because it feels like common sense. Internal platform teams prefer tools that honor the convention since it trims training time and support. Tutorials assume there's one obvious place to put project rules, regardless of which agent you prefer this quarter

Momentum is not a press release; it's a thousand small conveniences that add up to inevitability.

The fear of the convergence

It's also worth naming the fear that standards enforce a lowest common denominator. They do, but only at the on-ramp. The whole point of a neutral file is to settle the "where do I look?" question so the interesting work can happen above it.

Once agents agree to meet at the same entry point, differentiation flows into capabilities rather than into scavenger hunts. That's better for users, and ironically, better for vendors who have something real to offer.

Closing thoughts

The practical reason this convergence will happen is the same reason so many developer conventions harden over time: friction is the real enemy. Developer time is expensive; attention is scarcer than compute.

If your tool demands that I rename a file, duplicate a document, or remember a bespoke ritual just to get started, you lose. If your tool reads the boring, unbranded thing already sitting in the repo and gets to work, you win.

And when enough users reward that behavior, competitors copy it, and the center of the beach gets crowded fast.

So yes, the future does not look like three files that all say the same thing. The future looks like one dull, predictable convention, and plenty of room for innovation around it.

Call it AGENTS.md, call it the unbranded instruction file, call it whatever you want. The name isn't sacred; the neutrality is. Hotelling explains why vendors drift toward the same spot. Schelling explains why a boring name becomes the spot. And experience explains why it sticks. In a root directory already juggling twenty bits of configuration, dull is a feature, not a bug.

And yes, OpenAi scored the goal with AGENTS.md.