GitHub ↗
Survey · 6 August 2026

What libraries actually ship for AI coding agents

Nine popular TypeScript libraries publish documentation aimed at LLMs. The filename is a convention; the contents are not. Same name, a 2,500× spread in size, and no agreement on whether the file contains documentation or a list of links to it.

Libraryllms.txtllms-full.txtUsable without fetching?
Prisma2,450 · 71% links6,915 · 0% linksyes — prose, and small
tRPC15,699 · 0% links599,762 · 2% linksyes — the index itself is prose
Zod21,522 · 94% links259,341 · 1% linksthe full file, at ~65k tokens
Vercel AI SDK2,217 · 33% links5,673,960 · 2% linksfull file is ~1.4M tokens
Drizzle ORM37,377 · 84% links3,553,515 · 1% linksfull file is ~890k tokens
Next.js8,792 · 58% links— (404)index only; docs index is 96% links
Stripe93,150 · 87% links— (404)index only
TanStack Query11,396 · 78% linksidentical fileindex only; "full" is the same bytes
React Router— (404)— (404)nothing published

"% links" = share of non-empty lines carrying a markdown link. Token estimates at ~4 chars/token.

The same filename means three different things

For tRPC, llms.txt is documentation — 15k of prose, no links. For Zod, the same filename is 94% links: a table of contents. For TanStack Query, llms-full.txt is byte-identical to llms.txt, so the "full" version is the index. For Next.js and Stripe, it 404s entirely.

Sizes span 2,217 characters to 5,673,960 — a factor of about 2,500. Nothing in the name tells a consumer which of those it is about to receive.

The practical consequence: an agent cannot write generic code to consume these. Fetching llms.txt gets you documentation from one library and a link list from the next, and fetching llms-full.txt gets you 7KB from Prisma or 5.7MB from the Vercel AI SDK. Any tool that uses these has to special-case each library — which is the thing a convention exists to prevent.

What this means if a model cannot fetch

A coding agent with web access can follow a link index. A model answering from its context alone cannot — it gets a list of URLs it has no way to open. So for the common case of a single request with documentation pasted in, only the self-contained prose files do anything at all: Prisma's 7KB llms-full.txt, tRPC's 15KB index, and Zod's full file if you are willing to spend ~65k tokens on it.

Everything else is either a menu with no kitchen behind it, or too large to put in a prompt.

The one approach that sidesteps this

Prisma installs its documentation into your project. From v7.9, prisma init writes a tree of skill files into .agents/skills/ — small, task-scoped, and already on disk, so no fetching is involved. It is the only mechanism in this survey that works for a model with no network access, and the only one this site has been able to measure directly.

The measurement is worth reading alongside this, because it is not a clean win. Prisma's shipped docs move their score from 87 to 93 — but the pack an agent would route to by name for the failing task fixes nothing at all, and one failure survives every document they ship. The Prisma scorecard has the numbers.

Check it yourself

Every figure above is one request. Nothing here needs to be taken on trust:

curl -sL https://prisma.io/llms-full.txt | wc -c
curl -sL https://ai-sdk.dev/llms-full.txt | wc -c

The survey script is in the repo (scripts/survey-agent-docs.mjs) and writes data/agent-docs.json. Re-run it and any of these numbers can be checked, or shown to have changed.

Why this site cares

SDKProof measures whether AI coding agents write a library's current API or an older one they remember. The obvious fix a maintainer reaches for is to ship documentation for agents. This is what that looks like today across nine libraries — and mostly, it is not yet something a model can use.

Surveyed 6 August 2026. These files change; the script re-runs in seconds.