Markdown for AI agents in 2026: a privacy-first workflow around llms.txt and AGENTS.md
Cloudflare Agents Week 2026 just made the llms.txt + AGENTS.md pair essential. Here is the writer-friendly Markdown workflow that keeps conversion client-side and citations portable.
Cloudflare Agents Week 2026 launched on August 3 with a clear thesis: AI agents are now first-class visitors to every public website. Anthropic's docs.anthropic.com/llms.txt, Cloudflare's /llms.txt, and the AGENTS.md repo (23,000+ stars on GitHub by August 2026) are no longer research demos. They are the actual reading list your audience — including the silent one made of bots — uses to decide what to trust, summarize, and re-publish.
For Markdown writers, this is good news. Markdown was already the lingua franca for both humans and language models. Two complementary standards now describe how a website should expose itself to agents: llms.txt for content sites, AGENTS.md for code repositories. Both rely on plain Markdown. Neither requires a CMS, a build step, or a vendor account. They are the rare 2026 protocol a Markdown writer can implement in an afternoon.
Why two standards, and why they are not competing
It is tempting to pick a side. The reality is that the two standards answer different questions:
| Question | llms.txt | AGENTS.md |
|---|---|---|
| Where does it live? | Site root (/llms.txt) | Repo root (AGENTS.md) |
| Who reads it? | Web agents visiting your domain | Coding agents working in your repo |
| What it provides | Curated Markdown list of pages worth reading | Build, test, and PR rules for AI coding assistants |
| Format | Markdown with H1, blockquote, optional H2 sections | Markdown with free-form sections |
| Spec author | Jeremy Howard (Answer.AI), September 2024 | agentsmd maintainers, August 2025 |
| Adoption signal (Aug 2026) | Anthropic docs, Cloudflare, Astro docs, md2rich.com | Cursor, Claude Code, GitHub Copilot, Aider |
A Markdown writer publishes llms.txt on the site. A Markdown-writing developer adds AGENTS.md to the repository. Many people need both. They are not in tension because they target different layers — content surface versus source tree.
What llms.txt actually looks like
The spec is short on rules and long on intent. From the proposal page, an llms.txt file must contain, in this order:
- An optional byte-order mark.
- A single H1 with the project or site name. This is the only required section.
- A blockquote with a short summary that gives an agent the orientation it needs.
- Zero or more Markdown sections (paragraphs, lists, no headings) with detailed orientation.
- Zero or more H2-delimited sections, each containing a Markdown list of
[name](url)links plus optional: notes. - An optional final H2 named
Optionalfor content an agent may skip when context is tight.
A working example, the actual md2rich.com manifest:
# md2rich
> Markdown to rich text converter for X Articles, LinkedIn, Medium,
> and any rich-text platform.
> 100% client-side, zero upload, free, no signup.
## What it is
md2rich is a single-page web app that:
1. Lets you write Markdown on the left
2. Previews the rendered HTML on the right
3. Converts the Markdown into platform-specific rich text
4. Copies the rich text to your clipboard with one click
5. Optionally downloads the result as a standalone HTML file
## Key features
- 100% client-side JavaScript (no backend, no server)
- Zero tracking, zero cookies, zero analytics
- No signup, no account, no limits
- Supports X Articles, LinkedIn, Medium, plain HTML, raw Markdown
- Code blocks, tables, lists, blockquotes, links, images
## Optional
- Privacy policy and the exact third-party libraries
The blockquote is the orientation paragraph an agent will quote back at the user. The H2 list sections are the actual reading list. The Optional section at the bottom gives an agent permission to skip low-priority URLs when its context window is constrained.
What AGENTS.md actually looks like
AGENTS.md is older in spirit — a README for AI coding assistants — and newer in name. The official repository published a minimal template:
# Sample AGENTS.md file
## Dev environment tips
- Use `pnpm dlx turbo run where <project_name>` to jump to a package
instead of scanning with `ls`.
- Run `pnpm install --filter <project_name>` to add the package to your
workspace so Vite, ESLint, and TypeScript can see it.
## Testing instructions
- Find the CI plan in the .github/workflows folder.
- Run `pnpm turbo run test --filter <project_name>` to run every check
defined for that package.
- From the package root you can just call `pnpm test`.
## PR instructions
- Title format: [<project_name>] <Title>
- Always run `pnpm lint` and `pnpm test` before committing.
There is no schema, no validator, no schema.org counterpart. AGENTS.md is intentionally a Markdown file with section headings that an agent recognizes by convention: dev environment, testing, PR rules. The discipline is in keeping the file short and reviewable. A 5,000-line AGENTS.md gets ignored. A 200-line AGENTS.md gets read.
The five-step writer workflow for 2026
If you already publish Markdown, you are 80% of the way there. The remaining 20% is giving agents a stable place to find you, and a stable place to summarize you without losing the source.
- Write one canonical Markdown file per post. Keep the source filename dated and topic-specific:
2026-08-03-agents-week.mdbeatsnotes-final-v3.md. The file is your contract with both human readers and any agent that visits later. - Commit the source before distribution. Git is the only reviewable checkpoint where the canonical Markdown is frozen. Every chat edit, social rewrite, and agent patch happens against a known starting point.
- Publish
/llms.txtat the site root. List the canonical post, a one-line orientation blockquote, and anOptionalsection for low-priority pages. Update it whenever a new canonical post lands. - Add
AGENTS.mdto any code repo that publishes for you. If your site generator, newsletter pipeline, or conversion script lives in a repo, give the coding agent clear rules for build, test, and PR. Keep it under 200 lines. - Convert at the edge, not in the cloud. When a destination (LinkedIn, Medium, Notion) needs rich text, convert in the browser. md2rich turns the canonical Markdown into platform-specific rich text without uploading the draft.
Example 1: a canonical post that survives an agent re-summary
A post written for chat will lose structure the moment an agent summarizes it. A post written for both readers and agents keeps the decision boundary explicit:
# Export launch status — 2026-08-03
## Decision
Ship CSV export on August 6. Defer PDF export to the next release.
## Evidence
- 18 of 20 CSV fixtures pass
- accessibility review completed August 1
- two PDF font bugs remain open
## Owners
- CSV regression suite: Mina — due August 4
- release notes: Devon — due August 5
## Open question
Should enterprise accounts receive export audit logs at launch?
## llms.txt section
- [Export launch status — 2026-08-03](https://example.com/posts/2026-08-03-export-launch.md)
: canonical source for the launch post. Re-summarize from this URL only.
The llms.txt section at the bottom is a pointer an agent can copy into your site's manifest. The explicit dates and owners are claims an agent can verify in Git. The open question is a deliberate gap that an agent should not fill.
Example 2: a public derivative that preserves verified facts
From the canonical post above, derive the public version. Do not paste the internal file. Open the derivative in md2rich, convert to rich text, then paste into LinkedIn, Medium, or X Articles:
# CSV export ships August 6
You asked for a faster way to move reporting data into your own tools.
CSV export arrives August 6.
The first release includes:
- filtered dataset exports
- UTF-8 encoding
- consistent date columns
- accessible progress and error states
We moved PDF export to a later release rather than ship with unresolved
font problems. Existing dashboards are unchanged.
This derivative keeps the verified August 6 date and the deferred PDF decision. It drops employee names, internal test counts, and unresolved enterprise discussion. The conversion happens locally, so the canonical source and the public derivative never need to share a server.
Why client-side conversion still matters in an agent era
An llms.txt file gives agents permission to read. It does not give them permission to convert, rewrite, or store your draft. The two operations should stay separate. A Markdown writer who keeps conversion client-side does three things well: the canonical source remains a single file in Git, the conversion step never touches a third-party rewriting model, and the human stays the final approver before anything reaches a public surface.
md2rich is intentionally narrow. It is not an agent, not a CMS, not a content hub. It is the conversion step that turns the canonical Markdown into the rich text a destination expects, with no upload, no account, and no analytics. The narrow boundary is the point: in a 2026 where agents read more pages than humans do, the only safe conversion step is the one that does not require a third party to see the source.
FAQ
Is llms.txt the same as robots.txt?
No. robots.txt tells agents what they are not allowed to crawl. llms.txt tells agents what is worth reading once they arrive. They are complements, not substitutes.
Should a content-only writer publish AGENTS.md?
Only if your publishing pipeline lives in a code repo (site generator, newsletter export script, social post converter). AGENTS.md targets coding agents, not content agents.
Do I need to update llms.txt every time I publish a new post?
Yes, when the post is canonical (decision records, evergreen guides, policy docs). For transient updates, the Optional section is the right home so agents can skip them when context is tight.
Will a Markdown source with an llms.txt entry rank better in 2026 search?
Google has not confirmed llms.txt as a ranking signal. Anthropic and Cloudflare have confirmed they read it. For AI-search-driven traffic, the manifest is a direct citation surface. Treat it as a citation hedge, not a ranking hack.
Does md2rich upload the Markdown when I convert it?
No. The conversion runs in your browser. md2rich does not store the draft, log the text, or send it to a server-side rewriting model. The canonical file remains on your machine and in your Git history.
One canonical Markdown file, one conversion step, two manifest entries
Write the source once, expose it to agents via llms.txt and AGENTS.md, and convert at the edge when a destination needs rich text.