llms.txt generator, checker and validator
An llms.txt file is a plain markdown file at the root of a website that tells an AI model what the site is for and which pages matter most. This free tool builds one from the pages your site already publishes, checks a file you already have, and validates either against the llmstxt.org specification line by line.
Generate, check and validate in one place. No signup, no install, nothing stored.
Free, no account, nothing to install. The file is generated in your browser session and kept nowhere: Kymo stores no copy of it and no copy of your site.
What this tool checks
- H1 headingThe file must open with a single H1 heading that names the site.
- One H1 onlyA second H1 heading is not allowed, because the file describes one site.
- H1 comes firstThe H1 heading must come before any other content in the file.
- H1 names the siteAn empty or placeholder H1 tells a model nothing about the site.
- Summary blockquoteA blockquote directly under the H1 gives a model a one-line summary of the site.
- Link sectionsH2 sections group the links, and a file with no links gives a model nothing to fetch.
- List items are linksEvery list item under an H2 heading must be a markdown link, written as [title](url).
- Absolute URLsA relative URL is ambiguous to a model that reads the file on its own, so every link should be absolute.
- Link descriptionsA short description after a ": " separator tells a model what a page holds before it fetches the page.
- Optional sectionAn H2 named exactly "Optional" marks the links a model may skip when the context is short.
- Heading depthThe format uses H1 and H2 only, so an H3 or deeper heading is outside the specification.
- File has contentAn empty file is not a valid llms.txt file.
Every rule above is read from the same table the validator runs, so the list and the findings can never disagree.
How the generator builds the file
The generator reads your sitemap.xml and takes the title and meta description of each page it lists. When a site has no sitemap, the tool reads the homepage and follows its internal links instead, and the result tells you which path it took. Pages are grouped into sections by their first path segment, and a /docs tree leads.
No model writes any of it. Each line is your own page title and your own meta description, so the file says what you already said, and a second run gives the same file.
Questions
What is an llms.txt file?
An llms.txt file is a plain markdown file at the root of a website that tells an AI model what the site is for and which pages matter most. The format was proposed at llmstxt.org in 2024: one H1 with the site name, an optional summary quote, then H2 sections listing the key pages as markdown links with a short description each.
Do AI crawlers actually read llms.txt?
Partly, and the honest answer is that adoption is uneven. No major AI operator has publicly committed to honouring llms.txt, and neither OpenAI, Anthropic nor Google documents it as a signal their crawlers follow. Several documentation platforms and developer tools do read it, and publishing one costs a few minutes. Treat it as a low-cost bet rather than a guarantee, and check what each operator actually documents. The AI crawler directory records what each operator states about its own agents.
Where do I put the llms.txt file?
Put it at the root of the domain, so it answers at https://yoursite.com/llms.txt. The file must be served as plain text, not as a web page, and the path is fixed: a file at any other path will not be found.
What is the difference between llms.txt and robots.txt?
A robots.txt file says which paths a crawler may fetch, and it is a permission file. An llms.txt file says what the site is about and which pages are worth reading, and it is a guide. Robots.txt is an established standard that every major crawler follows; llms.txt is a 2024 proposal with partial adoption. The two do different jobs, and a site can carry both.
What is llms-full.txt?
An llms-full.txt file holds the full text of the documentation in one file, instead of a list of links to it. The llms.txt file is the index and stays small enough for a model to read in one pass; llms-full.txt is the whole corpus and can run to hundreds of thousands of words. This tool generates the index, because the index is the part the format specifies.
Is this llms.txt generator free?
Yes. No charge, no card, no account, and no email address. The file is generated and shown in the browser, and Kymo keeps no copy of it.
How many pages does the generator include?
Up to 50 pages in one run, and the run stops after 20 seconds whatever it has read. Both limits exist because the tool fetches a site on request from somebody who may not own it, so a run has to be bounded. A site with more pages than that gets a file covering the first 50, and the result says so.
How do I know my llms.txt is valid?
Switch to "Check a file", enter your domain, and the validator reads the live file and reports every finding with its line number. An error means the file breaks the format; a warning means a model will read it but something is weaker than it needs to be; a note is a suggestion. A file with no errors is valid.
Will an llms.txt file get my site into ChatGPT answers?
No, and any tool that promises that is overselling. An llms.txt file describes your site to a model that reads it, and nothing more. Being quoted in an answer depends on whether a crawler can reach your pages at all, what those pages say, and how the assistant chooses its sources. Fix crawler access first, because no file helps a site a crawler cannot fetch. The free AI visibility checker reports whether each AI crawler can reach your site.
Does the generator use AI to write the descriptions?
No. Each line comes from the page’s own title and meta description, which you already wrote. A deterministic run gives the same file every time and cannot invent a description for a page it misread.
A valid file is a guess until a crawler proves it.
Every other tool on this page tells you the file is correct. Kymo tells you which AI crawlers actually arrived afterwards, which pages they took, and whether any of it sent you a real visitor.
Start free →14-day free trial. No card required.
The generator fetches at most 50 pages per run and stops after 20 seconds, because it reads a site on request from somebody who may not own it. Runs are limited to 10 files and 30 checks an hour from one address, and that address is hashed and never stored. See the privacy page, and the AI crawler directory for what each operator documents.