/llms.txt is a pointer. It names the endpoints, tools, and collections an agent can use on this host, and links to per-collection index shards. It is not a copy of the site.
An agent that fetches it learns where to connect in roughly a kilobyte, instead of reading the site as text.
Fetch it
curl -s https://<host>/llms.txt# ArcBlock
> ArcBlock builds decentralized identity, user-owned data, Blocklet
> infrastructure, and AI-native application systems.
## For agents
- MCP (Streamable HTTP): https://<host>/mcp
- Server card: https://<host>/.well-known/mcp.json
- AFS over HTTP (JSON-RPC): POST https://<host>/api/afs/rpc
- Tools: search_content, list_content, get_content
- Collections available to agents: articles, docs, glossary, products
- Anonymous public read; writes require DID-Connect auth
Locales: en, zh, ja, zh-TW (base: en). …
Full-text version (all collections, never truncated): https://<host>/llms-full.txt
## Docs (1268 items)
Index: https://<host>/llms-docs.txt
Full text: https://<host>/llms-docs-full.txtThe document above is 1,142 bytes. The For agents block is the part that matters: it hands over the MCP endpoint, the server card, and the JSON-RPC endpoint, so a client that can do better than reading text does not have to read text.
Shards
Each collection that declared an llms face gets an index shard and a full-text shard.
| Path | Contains |
|---|---|
/llms.txt | The pointer above, plus a section per collection with item counts and shard links |
/llms-<collection>.txt | Index for one collection |
/llms-<collection>-full.txt | Full text for one collection |
/llms-full.txt | Full text for every collection |
A collection without the face has no shard:
curl -s -o /dev/null -w '%{http_code} %{size_download}\n' https://<host>/llms-docs.txt # 200 154869
curl -s -o /dev/null -w '%{http_code} %{size_download}\n' https://<host>/llms-articles.txt # 404 9Which collections have the face is a per-blocklet decision; see Declare what agents see.
Sizes are not symmetric
On a site with about 1,300 documents the pointer is around 1 KB, the docs index shard is around 150 KB, and /llms-full.txt is several megabytes.
The shards exist so an agent can take the one collection it needs. llms-full.txt is there for completeness, not as the intended entry point. Fetching it costs more context than connecting over MCP and asking a question.
When to use which
| Situation | Use |
|---|---|
| The client speaks MCP | /mcp. Query instead of ingesting |
| The client can issue HTTP but has no tool harness | /api/afs/rpc |
| The client can only fetch text | /llms.txt, then the one shard it needs |
llms.txt names the first two, so an agent that starts at the text surface can move up to a better one.