For the complete documentation index, see llms.txt. Every page on this site is also served as Markdown: append `.md` to any URL, or send `Accept: text/markdown`.
Skip to content

Free tool

llms.txt generator and validator

The llms.txt generator builds an llms.txt file from your sitemap, with a title, a summary and your pages grouped into sections, ready to edit and publish. It also validates an existing llms.txt against the format line by line and says what each problem is. Free, no sign-up, and nothing is stored.

Build your file

Seconds, on our server · Free, no sign-up

Free, no sign-up, and the whole file is shown. Nothing is stored.

Your result appears here

Size
Title and summary
Sections
Errors
Warnings

See our own run

Share
Our runattensira.com

Inputattensira.com/llms.txt

Size
100,331 bytes
Title and summary
Present
✓ Passes
Sections
23, holding 425 links
✓ Passes
Errors
0 (25 on 4 Oct: list items that are not links)
✓ Passes
Warnings
0 (39 on 4 Oct: prose inside a section)
✓ Passes
llms.txt validator, this site's rules, on the file this site serves, n=1 run ·

Where does each line come from?

  1. The links

    Your sitemap, grouped into sections by the first path segment, shortest paths first, at most 25 links a section.

  2. The title

    Your og:site_name, or your homepage title.

  3. The summary

    Your homepage meta description. With none, the line is left blank for you to write, never guessed.

Does our own llms.txt pass?

It does now. On 4 Oct 2026 the validator found 25 errors in attensira.com/llms.txt; we moved the notes it flagged above the first section and ran it again on 5 Oct.

First error on 4 Oct, line 43, verbatim; it now sits above the first H2

- **Project** — one tracked brand and its domain. An API key is scoped to one project.

Our file carried a vocabulary list and notes on how we report numbers as bullets inside sections. The format says sections hold link lists, so the validator was right. The notes now sit above the first H2, where the format allows free text, and each section opens on its hub link instead of a sentence.

The format is a proposal that no major engine has said it follows, so a broken llms.txt costs little, and a correct one buys little. Fix it because it is cheap, not because it moves answers.

The run is the result panel at the top of this page. Read on 5 Oct 2026.

What is llms.txt, and does any engine read it?

llms.txt is a markdown file you publish at the root of your domain (https://example.com/llms.txt) that lists the pages on your site worth reading, with a one-line description of what the site is. It exists because a language model given your rendered HTML has to spend most of its context on navigation, cookie banners and boilerplate before it reaches anything you wanted it to read.

It is a proposal, published at llmstxt.org, not a standard any AI company has committed to honoring. We publish our own llms.txt and a longer llms-full.txt, which is why we built this tool. Being straight about its status matters: adopt it because it costs an hour and makes your site legible, not because someone promised you citations for it.

What does the format require?

The specification is short. A valid file has, in this order:

  • An H1 with the name of the site or project. This is the only element the spec requires.
  • A blockquote summary: optional, but it is the one line a model reads to decide whether the rest is relevant to the question it is answering. Write it deliberately.
  • Optional prose giving more context. No headings in this part.
  • H2 sections, each containing a markdown list of links in the form - [name](url): optional notes.
  • A final section named Optional, if you want one. Its links are the ones a model should drop first when it needs a shorter context.
# Attensira

> Attensira is software that does your AI-search visibility work. A crew of AI agents
> finds gaps, drafts fixes, and ships only what you approve.

## Core pages

- [Home](https://attensira.com/)
- [Pricing](https://attensira.com/pricing)

## Tools

- [Schema markup validator](https://attensira.com/tools/schema-validator)
- [XML sitemap validator](https://attensira.com/tools/sitemap-validator)

## Optional

- [Glossary](https://attensira.com/glossary)

The validator checks exactly those rules and reports the line number for each failure. It does not score the file: a spec is followed or it is not, and a percentage in between would be a number we invented.

How would the crew ship a fix like ours?

Inside Attensira, a change to a file crawlers read ships as a pull request you approve. GitHub delivery.

Pull requestyour-site

llms.txt: move the vocabulary notes above the first section

attensirawaits for your review

public/llms.txt

  1. unchanged: > For the complete documentation index, see …
  2. removed: ## Vocabulary
  3. added: **Vocabulary.** These are the exact nouns Attensira uses in its app, REST API and MCP server. …
  4. unchanged: - **Project** — one tracked brand and its domain. An API key is scoped to one project.
Web engineer agentWeb engineer · would hand you a pull request like thisExample · the kind of change this finding calls for, not one that shipped

How does the generator build your file?

Nothing here is written by a model. The generator is deterministic (the same site produces the same file), and every value in the output comes from something it actually read:

  • It finds your sitemap: the URL you gave it, or a Sitemap: line in your robots.txt, or /sitemap.xml, /sitemap_index.xml and /sitemap-index.xml in that order.
  • If that is a sitemap index, it reads the first five child sitemaps and says so in the result.
  • URLs are grouped into sections by their first path segment: /blog/* becomes a Blog section, /docs/* becomes Documentation. Shortest paths come first, because a section root is usually more useful than a leaf.
  • Link text comes from the last path segment, de-slugified. The H1 comes from your og:site_name or your homepage title. The summary comes from your homepage meta description; if you have none, the line is left blank for you to write rather than filled with a guess.
  • Sections are capped at 25 links so the file stays readable.

Treat the output as a first draft. A generated list of every URL on your site is not an llms.txt worth publishing. The value of the file is in what you leave out.

How do you get the file right?

What it showsWhyWhat to do
An HTML page instead of the fileWhy: The file was never deployed, and a catch-all route answered with a 200.What to do: Deploy the file and serve it as text/plain.
List items that are not linksWhy: Notes written as bullets inside a section. Sections hold link lists. It was the error in our own file until 5 Oct 2026.What to do: Move the notes above the first H2, where the format allows free text.
Relative URLsWhy: A model reading the file has no base to resolve them against.What to do: Use absolute URLs only.
No summary, or a generated oneWhy: The summary is the highest-leverage line in the file.What to do: Write one sentence yourself: what the site is and who it is for.
Thousands of links, or links that 404Why: The file lists everything, or was written once and drifted.What to do: Curate: twenty pages that answer real questions beat two thousand URLs. Generate the file in your build.
Using it to keep crawlers outWhy: llms.txt invites reading; it cannot prevent it.What to do: Decide which crawlers may fetch your pages in robots.txt. robots.txt generator

Questions people ask about llms.txt

Do ChatGPT, Claude or Perplexity actually read llms.txt?

None of them has publicly committed to it. Adoption today is on the publishing side (many sites, including this one, ship the file), and support on the consuming side is unannounced. The honest position is that this is a low-cost bet on a format that may become conventional, not a lever with measured returns. We know of no published measurement of a citation uplift from llms.txt, so ask for the source of any figure you are quoted.

How is it different from robots.txt?

robots.txt is permission: which crawlers may fetch which paths. llms.txt is curation: which pages are worth reading and what the site is about. They answer different questions and you want both. Blocking a crawler in robots.txt while listing pages for it in llms.txt is a contradiction.

What is llms-full.txt?

A companion convention: the same index expanded to include the full markdown body of each listed page, so a model can read the content without a second fetch. It is larger and goes stale faster. Start with llms.txt; add the full version only if you can generate it from the same source your pages come from.

Should the file be in my sitemap?

No. It is not a page for human readers and does not need to be indexed. Publish it at the root path and leave it out of the sitemap.

Do you store the sites I run this against?

No. The sitemap is fetched and the file assembled inside the request, then returned to your browser. There is no email field, no account and no saved history. The shareable link just re-runs the same request.

This builds the file. Attensira's crew keeps it valid.

7 days free · card required