llms.txt Generator + Validator
Free, no signup. Build a clean llms.txt that points LLMs at your key pages, or paste one you already have and check that it's well-formed.
| Check | Status when healthy |
|---|---|
| H1 | One site-name H1 |
| Summary | A short blockquote is recommended |
| Links | Grouped, absolute HTTPS URLs |
| Size | Keep the map concise (under ~20 KiB) |
llms.txt is a community proposal
(llmstxt.org), not an official standard.
No major AI crawler is documented to read it today. Treat it as low-effort, low-risk housekeeping —
not a ranking lever. If you want to influence what AI systems can access, that's
robots.txt and your on-page content, not this file.
More on how AI crawlers actually work → Upload your own access log to the Log File Analyzer. Its browser-local /llms.txt report distinguishes verified AI crawler requests, unverifiable crawler claims, spoofed claims, other traffic, and no observation in the supplied period. A request is retrieval evidence only—not proof of rankings, citations, or broad provider adoption.
The Optional section (a crawler may skip it) is emitted last automatically — just name a section “Optional”.
Runs entirely in your browser — nothing you paste is uploaded or stored. Anonymous run-level outcome counters may be used for aggregate research; URLs, domains, IPs, and identifiers are never included, and no statistic is released below 100 runs.
We fetch only <domain>/llms.txt (nothing else) — browsers can't, because of CORS.
Runs entirely in your browser — nothing you paste is uploaded or stored. Fetch by URL sends only the domain to our server to retrieve /llms.txt (browsers can't — CORS); validation still runs locally. Anonymous run-level outcome counters may be used for aggregate research; URLs, domains, IPs, and identifiers are never included, and no statistic is released below 100 runs.
Sample report
Fill in a site name, a summary, two sections, and an Optional link, and the generator emits this
llms.txt — one # title, a > summary blockquote,
## section headings with Markdown link rows, and the Optional section
moved to the end:
# Acme Docs
> Acme builds developer tools. This file maps our docs, guides, and API reference.
## Docs
- [Getting started](https://acme.example/docs/start): 5-minute quick start
- [API reference](https://acme.example/docs/api): every endpoint and field
## Guides
- [Authentication](https://acme.example/guides/auth): tokens, scopes, rotation
## Optional
- [Changelog](https://acme.example/changelog)
Example data — captured by running this page's own validator against the file above
- 0 errors, 0 warnings — the file has a title, a summary placed right after it,
absolute
https://links grouped under sections, and no duplicates. See what each severity means ↓. - "Optional" landed last automatically because the generator always emits that named section after every other section, regardless of input order.
- A clean validator result says nothing about adoption — no major AI crawler has
published support for reading
llms.txt. Read llms.txt for why this is a proposal, not a directive.
How to use it
- Generate tab: enter your Site name (becomes the required
#title) and a one-line summary (the>blockquote). Optionally add a Site URL so off-site links get flagged. - Add sections (Docs, Guides, Blog) and a link row under each —
title, absolute
https://URL, and optional notes. Or hit Prefill from sitemap.xml to auto-bucket URLs by their first path segment. - Name any section “Optional” and it is emitted last automatically — that's the proposal's skippable section. Watch the live Output pane; it self-validates as you type.
- Copy, Download llms.txt, or Copy share link (state is packed into the URL fragment — nothing is sent anywhere).
- Validate tab: paste an existing file, or switch to
Fetch by URL, enter a domain, and we pull only its
/llms.txtfor you. Read the error/warning/info pills and the parsed-structure preview.
+ saves the current site or page. Use ☆ beside any saved site, page, or list to favorite it. Recent check history appears below.
Create a named list
Target filled from your local choices.
Site passport Local context for this saved site
Local data
Saved targets, named lists, and recent check summaries remain only in this browser.
Rate this tool
Where this is heading: serving Markdown to LLMs
Looking ahead — not something to do today. llms.txt and per-page Markdown are proposals no major AI crawler is documented to consume yet.
llms.txt is a directory — one file pointing at your key pages. The more interesting
idea, once AI clients adopt it, is content negotiation: same URL, two representations.
Serve HTML to browsers and a clean Markdown rendering to LLM clients,
and decide which at the edge.
A Cloudflare Worker picks the representation from the request — either
Accept: text/markdown or a known AI user-agent — and emits
Vary: Accept (or Vary: User-Agent) so shared caches don't hand the wrong
variant to the wrong client.
It's exactly the move behind this site's hybrid /robots.txt —
same bytes, only the Content-Type label negotiated — just extended to actual content,
and to a real body difference rather than only a header.
This tool does two jobs: it generates a well-formed llms.txt from a
simple form (or a sitemap you upload), and it validates one you paste or fetch from
a live domain. Both run entirely in your browser. For context on why this file is optional
housekeeping rather than a ranking move, see
how AI crawlers actually work and
the llms.txt explainer.
What the results mean
The validator groups findings into three severities, shown as pills:
- The file breaks the proposal's shape —
no
#title, a malformed list item that isn't a[title](url)link, a relative (non-absolute) URL, or an empty file. - Well-formed but not ideal — no
>summary, anhttp://link, a duplicate URL, a second#H1, or links that appear before any##section. - Advisory only — a summary placed
somewhere other than right after the title, an off-site link, a deep
###heading that isn't part of the structure, or a file large enough (past 20 KiB) to have stopped being a concise map.
A green result means the file is well-formed against the proposal. The result summary is deliberately blunt that this validates form only and cannot guarantee any AI system consumes the file.
How it works
The generate/parse/validate engine (src/lib/tools/llms-txt.ts) is pure TypeScript with
no DOM and no network calls, so everything you do in the Generate and
paste flows happens locally in your browser — your draft never leaves the page.
The parser reads line by line: it recognises the # title, a >
blockquote summary, ## section headings, and Markdown link list items, while skipping
the insides of fenced ``` code blocks so they aren't misread as directives. It then
runs file-level checks — required title, recommended summary, duplicate URLs, absolute-URL and
HTTPS rules, and size — and rolls everything into the error/warning/info tally.
The one server touch is Fetch by URL: browsers can't fetch another site's
/llms.txt because of CORS, so a small SSRF-guarded, cached proxy
(/api/llms-fetch) pulls only that exact path — nothing else on the domain — and hands
the body back for validation.
Features
- Form-based generator with add/remove sections and link rows, live output, and self-validation as you type.
- Prefill from sitemap.xml — upload a sitemap and it buckets URLs by first path segment into ready-to-edit sections.
- Automatic handling of the Optional section (always emitted last).
- Copy, download, and a share link that packs your draft into the URL fragment (compressed, never sent to a server).
- Validator with paste or live Fetch /llms.txt by domain, an error/warning/info tally, per-line findings, and a parsed-structure preview.
- Runs client-side; the only server call is the CORS-bypassing llms.txt fetch.
Limitations
It validates the form of the file against the community proposal — it cannot tell
you whether any AI crawler reads it, because none is documented to. It checks link syntax
(absolute, HTTPS, well-formed Markdown) but does not crawl the links to confirm they resolve or
return the content you claim. The sitemap prefill is a starting point, not a curation step — an
llms.txt is only useful if you trim it to your genuinely important pages. And this is
not a lever for AI visibility: what AI systems can access is governed by your
robots.txt and your on-page content.
Frequently asked questions
Do AI crawlers actually read llms.txt?
Not in any documented way. llms.txt is a community proposal from llmstxt.org, not an official standard, and no major AI crawler (OpenAI, Google, Anthropic, Perplexity) has published support for reading it. Treat it as low-effort, low-risk housekeeping — a tidy map of your best pages — not a ranking lever. What AI systems can actually reach is governed by your robots.txt and your on-page content.
What goes in an llms.txt file?
One required "# " H1 title (your site name), a recommended "> " blockquote one-line summary right after it, then "## " section headings (Docs, Guides, Blog) each containing Markdown link list items in the form "- [title](url): optional notes". A special "## Optional" section holds links a crawler may skip. Every link URL should be an absolute https:// address the LLM can fetch directly.
Where does the llms.txt file go on my site?
At the root of your domain, served at https://site.example/llms.txt — the same location convention as robots.txt. This validator can fetch that exact path for any domain (via a small server-side proxy, because browsers cannot fetch cross-origin) so you can check a live file without pasting it.
What does the validator check?
The form of the file against the proposal, not whether anything reads it. It flags a missing H1 title (error), missing summary (warning), malformed or relative link URLs, http:// links, duplicate URLs, links that appear before any section, deep "### " headings that are not part of the structure, off-site links, and files large enough to have stopped being a concise map. It cannot and does not guarantee any AI system consumes the file.
How big should llms.txt be?
Small. It is a directory of links, not a copy of your content. The validator raises an informational note once a file passes about 20 KiB, because at that size it has usually stopped being a concise map and started duplicating pages. If you want to serve full clean content to LLMs, that is per-page Markdown and content negotiation, not a bigger llms.txt.
Feature requests for Llms Txt
Upvote what you want most. New ideas can be submitted from the floating Feedback menu; requests appear here once approved, and the most-wanted rise to the top.
You won't be emailed about that request anymore.
Loading…
➕ Request a feature
New requests are reviewed before they appear here.
حول الأداة
بناء واحد سليم البنية llms.txt إشارة LLMs في الخاص بك مفتاح صفحات, أو لصق واحد أنت يحتوي و تحقّق الخاص به بنية — مجاني, و صادق إنه ليس واحد قياسي مع ذلك.
مجاني, من دون تسجيل. بناء واحد نظيف llms.txt ذلك يشير LLMs في الخاص بك مفتاح صفحات, أو لصق واحد أنت بالفعل يحتوي و تحقّق ذلك إنه سليم البنية.
الميزات
- Form-based مولّد مع أضف/إزالة أقسام و رابط صفوف, حي مخرجات, و self-validation باعتباره أنت اكتب.
- ملء مسبق من خريطة الموقع.XML — رفع واحد خريطة الموقع و إنه حاويات عناوين عنوان URL بواسطة الأول مسار شريحة إلى ready-to-edit أقسام.
- تلقائي معالجة من ال اختياري قسم (دائمًا صادر الأخير).
- نسخ, تنزيل, و واحد مشاركة رابط ذلك حزم الخاص بك draft إلى ال عنوان URL جزء (compressed, أبدًا مُرسَل إلى واحد خادم).
- مدقق مع لصق أو حي جلب /llms.txt بواسطة نطاق, واحد خطأ/تحذير/معلومات حصيلة, per-line نتائج, و واحد parsed-structure معاينة.
- تشغيل client-side; ال فقط خادم استدعاء هو ال CORS-bypassing llms.txt جلب.
كيفية العمل
ال أنشئ/حلّل/تحقّق محرك (src/lib/tools/llms-txt.ts) هو خالص TypeScript مع لا DOM و لا شبكة استدعاءات, لذلك كل شيء أنت يفعل في ال أنشئ و لصق تدفقات يحدث محليًا في الخاص بك متصفح — الخاص بك draft أبدًا يترك ال صفحة. ال محلل يقرأ سطر بواسطة سطر: إنه يتعرّف ال # عنوان, واحد > اقتباس كتلي ملخص, ## قسم عناوين, و Markdown رابط قائمة عناصر, بينما تخطٍّ fenced رمز يحظر لذلك هم aren't misread باعتباره توجيهات. إنه ثم تشغيل على مستوى الملف تحقّقات — مطلوب عنوان, موصى به ملخص, مكرر عناوين عنوان URL, مطلق-عنوان URL و HTTPS قواعد, و حجم — و يتدحرج كل شيء إلى ال خطأ/تحذير/معلومات حصيلة. ال واحد خادم لمس هو جلب بواسطة عنوان URL: متصفحات لا يمكنه جلب آخر الموقع /llms.txt لأن من CORS, لذلك واحد صغير SSRF-guarded, مخزّن مؤقتًا وكيل (/api/llms-fetch) يسحب فقط ذلك دقيق مسار — لا شيء وإلا على ال نطاق — و أيدٍ ال نص رجوع من أجل تحقّق.
القيود
- إنه validates ال form من ال ملف مقابل ال community اقتراح — إنه لا يمكن يخبر أنت ما إذا أي AI زاحف يقرأ إنه, لأن لا شيء هو موثق إلى. إنه تحقّقات رابط بنية (مطلق, HTTPS, سليم البنية Markdown) لكن يفعل ليس زحف ال روابط إلى تأكيد هم حلّ أو أعد ال محتوى أنت يدّعي. ال خريطة الموقع ملء مسبق هو واحد بدء نقطة, ليس واحد curation خطوة — واحد llms.txt هو فقط مفيد إذا أنت trim إنه إلى الخاص بك حقًا مهم صفحات. و هذا هو ليس واحد lever من أجل AI ظهور: ما AI أنظمة يمكن وصول هو governed بواسطة الخاص بك Robots.txt و الخاص بك on-page محتوى.
الأسئلة الشائعة
يفعل AI زواحف فعليًا اقرأ llms.txt?
ليس في أي موثق way. llms.txt هو واحد community اقتراح من llmstxt.org, ليس واحد رسمي قياسي, و لا رئيسي AI زاحف (OpenAI, محرك Google, Anthropic, Perplexity) يحتوي published دعم من أجل قراءة إنه. يعالج إنه باعتباره low-effort, منخفض المخاطر housekeeping — واحد tidy خريطة من الخاص بك الأفضل صفحات — ليس واحد ترتيب lever. ما AI أنظمة يمكن فعليًا reach هو governed بواسطة الخاص بك Robots.txt و الخاص بك on-page محتوى.
ما ينتقل في واحد llms.txt ملف?
واحد مطلوب "# " H1 عنوان (الخاص بك موقع اسم), واحد موصى به "> " اقتباس كتلي سطر واحد ملخص الصحيح بعد إنه, ثم "## " قسم عناوين (مستندات, أدلة, مدونة) كل يحتوي Markdown رابط قائمة عناصر في ال form "- [عنوان](url): اختياري ملاحظات". واحد special "## اختياري" قسم holds روابط واحد زاحف قد تخطَّ. كل رابط عنوان URL ينبغي يكون واحد مطلق https:// address ال LLM يمكن جلب مباشرة.
حيث يفعل ال llms.txt ملف go على my موقع?
في ال root من الخاص بك نطاق, مُقدّم في https://site.example/llms.txt — ال نفس موضع اصطلاح باعتباره Robots.txt. هذا مدقق يمكن جلب ذلك دقيق مسار من أجل أي نطاق (via واحد صغير server-side وكيل, لأن متصفحات لا يمكن جلب cross-origin) لذلك أنت يمكن تحقّق واحد حي ملف من دون pasting إنه.
ما يفعل ال مدقق تحقّق?
ال form من ال ملف مقابل ال اقتراح, ليس ما إذا أي شيء يقرأ إنه. إنه علامات واحد مفقود H1 عنوان (خطأ), مفقود ملخص (تحذير), مشوّه أو نسبي رابط عناوين عنوان URL, http:// روابط, مكرر عناوين عنوان URL, روابط ذلك يظهر قبل أي قسم, deep ### عناوين ذلك هي ليس جزء من ال بنية, خارج الموقع روابط, و ملفات كبير كافٍ إلى يحتوي stopped يكون واحد موجز خريطة. إنه لا يمكن و يفعل ليس يضمن أي AI نظام consumes ال ملف.
كيف كبير ينبغي llms.txt يكون?
صغير. إنه هو واحد دليل من روابط, ليس واحد نسخ من الخاص بك محتوى. ال مدقق raises واحد معلوماتي ملاحظة بعد واحد ملف عمليات اجتياز حول 20 KiB, لأن في ذلك حجم إنه يحتوي عادةً stopped يكون واحد موجز خريطة و started duplicating صفحات. إذا أنت تريد إلى يخدم كامل نظيف محتوى إلى LLMs, ذلك هو لكل صفحة Markdown و محتوى تفاوض, ليس واحد أكبر llms.txt.