Altdown: RSS for agents*

Reader mode for agents, made by the publisher.

This post as MarkdownAll copies

Altdown is reader mode for agents, made by the publisher.

Not a feed

Think of it as RSS for agents,* except that instead of telling you what's new, it tells you what a page says. RSS is a subscription. It tells a reader what changed. The copy does not replace the feed. A browser's reader mode guesses which part of a page is the content. The publisher states it, instead of the browser guessing.

The web was built for people sitting in front of a browser, and nearly everything about a modern page assumes one: the nav bar, the sticky header, the related-posts rail, the analytics scripts. A growing share of the readers on those pages are now software acting for someone. An assistant summarizing a page, a coding agent checking a reference before it writes a call, a research tool pulling twenty articles into one answer. Those agents receive the same page a person does, pay for all of it in tokens, and then guess which part was the article. Sometimes the guess is right. Often it keeps the footer and drops the code sample.

Altdown, short for Alternate Markdown, is small on purpose. A site publishes a Markdown copy of each page's main content as a plain file next to the page, and the page announces that copy with one line in its <head>. There is no server logic, no proxy, and no custom HTTP header.

This site does that. The New SDLC announces its copy like this:

HTML
<link rel="alternate" type="text/markdown" href="/posts/new-sdlc.md">

The copy is at https://www.vivekchopra.com/posts/new-sdlc.md. Its metadata, without the description and generator lines, looks like this:

Markdown
---
altdown: 1
canonical: https://www.vivekchopra.com/posts/new-sdlc
title: The New SDLC
published: 2026-04-26T00:00:00Z
updated: 2026-04-26T00:00:00Z
lang: en
author: Vivek Chopra
signals: search=yes, ai-input=yes, ai-train=no
---

The link element is the same pattern RSS autodiscovery has used for twenty years. That is the part worth borrowing. The job is not. A site should have both. This one does: the feed and the copies.

What an agent gets

An agent that follows the link reads the content and nothing else. The publisher decides what the main content is, because the publisher knows. The copies on this site leave out the header, the footer, and the related posts. The home page's copy, https://www.vivekchopra.com/index.md, is the introduction and the list of posts.

A site can also publish an index of every copy, with a last-modified time on each, announced from robots.txt. An agent that wants the whole site reads the index, fetches the copies, and on its next visit stops when it reaches a date it has already seen. The same way a feed reader syncs a feed. On this site the line sits next to the sitemaps:

Code
Sitemap: https://www.vivekchopra.com/sitemap.xml
Sitemap: https://www.vivekchopra.com/feed.xml
Altdown: https://www.vivekchopra.com/altdown.json

The index is https://www.vivekchopra.com/altdown.json. It lists the copies. It does not contain them.

The copy may contain only text a person can see on the page. A publisher cannot add keywords, hidden text, or instructions addressed to software, and cannot leave out part of the main content. The one exception is an optional description, capped at 300 characters, which an agent must treat as a hint. The page and the copy also point at each other: the link names the copy, the copy's canonical names the page, and both live on the same origin. If that check fails, the agent reads the HTML. A site that adopts Altdown badly loses nothing it had before.

search, ai-input, and ai-train reuse Cloudflare's content signal names. A missing signal means unspecified, so publishing a copy never implies consent to training. Altdown does not decide who may fetch a site. That is still robots.txt. It does not let an agent act on a site. It also differs from llms.txt, a description of the site at a fixed path that nothing checks against the pages. Altdown is a copy of each page, announced by the page and checkable against it. The two can coexist.

Status

This is version 1.0 in draft. The full specification is at altdown.org/spec, or as Markdown. altdown.org publishes every page in the format it describes. I would like to hear from publishers who try it on a real site, and from people building agents that read the web. Open an issue with what breaks.