LLMS.TXT GENERATOR · RUNS IN YOUR BROWSER

Build a valid llms.txt for your site

Paste a short list of your pages, a sitemap.xml, or point the CLI at a local Markdown docs tree — this assembles a correctly structured llms.txt file (the emerging convention that gives AI assistants a curated map of your site) and checks the result against the spec's own shape before you publish it.

Nothing is uploaded. Everything below runs in this browser and is never sent anywhere.

Build from a page list

Build from a sitemap.xml

Every URL lands under one "## Pages" section, titled by its own URL — edit titles afterward in the output, or use the page-list tab for per-link titles.

Validate an existing llms.txt

Prefer a CLI, or generating this in CI?

Same logic, zero dependencies, one file — and it can walk a real Markdown docs tree or fetch a live sitemap directly (Node has no cross-origin restriction, unlike this page):

node cli.mjs --dir ./docs --title "Example Docs" --base-url https://example.com
node cli.mjs --sitemap https://example.com/sitemap.xml --title "Example Site"
node cli.mjs --urls-file ./urls.txt --title "Example Site" --out llms.txt
node cli.mjs --check ./llms.txt

Get cli.mjs and generator.mjs — Node 18+, nothing to install.

Common questions

What is llms.txt?

An emerging, optional convention (see llmstxt.org) for a plain-text Markdown file at /llms.txt that gives an AI assistant a short, curated map of a site's most important pages — cheaper to read than crawling the whole site, and curated rather than everything a sitemap lists. It is not enforced by any browser or search engine; it is a convention some AI tools already read and more are adopting. More background: what llms.txt is for, and what it isn't.

Is this file generated correctly to spec?

The generator always produces the required shape — an H1 title, an optional blockquote summary, and Markdown link bullets grouped under "## Section" headings — and every build is run back through the same validator shown in tab 3, so you see any warning before you publish. What it can't know is whether you picked the right pages to include; that judgment stays yours.

Is my content uploaded anywhere?

No. The browser page builds and validates entirely in your own browser and never sends what you paste anywhere. The CLI only reads local files, or fetches a URL you explicitly name (a sitemap.xml), and makes no other network call.

Where do I put the generated file?

Publish it at the root of your site as /llms.txt — the same level as /robots.txt — so it's reachable at https://yoursite.com/llms.txt.

Same convention, opposite job: AI Crawler Access Check checks whether your robots.txt actually lets named AI crawlers reach your site, and does a lightweight structural check of an llms.txt you already have — this tool builds one from scratch instead of grading one that exists.

Already have docs hosted somewhere, or thinking about moving them for a platform that builds llms.txt for you? This generator vs. a hosted docs platform's built-in llms.txt feature lays out that tradeoff.

Thinking about just typing the file yourself? This generator vs. writing llms.txt by hand covers what actually goes wrong when you do.