Validate and generate llms.txt — the Markdown map that tells AI models what your site is.
llms.txt is a proposed standard: a Markdown file at /llms.txt that gives LLMs and AI search engines a clean, curated map of your site — title, summary, and grouped links — so an assistant can understand your content without parsing nav, ads, and JavaScript. It's to AI what sitemap.xml is to crawlers and robots.txt is to bots.
This kit does the two things you actually need: check that yours is valid, and scaffold one from your existing sitemap.
No API keys. No dependencies — just Python.
git clone https://github.com/seoprocheck/llms-txt-kit.git
cd llms-txt-kitRequires Python 3.8+. Standard library only — nothing to
pip install.
python3 llms_txt.py validate https://example.com/llms.txt
python3 llms_txt.py validate ./llms.txt --jsonllms.txt validation ./llms.txt
============================================================
title : Example Co
summary : yes
sections : 2 (Docs, Optional)
links : 3
------------------------------------------------------------
✓ clean
------------------------------------------------------------
VALID · 0 error(s), 0 warning(s)
It checks the rules that actually matter: a single H1 title, an optional > summary, well-formed ## Section groups, valid - [name](url): notes link items, absolute URLs, and duplicate detection — with clear error / warning / info levels and a non-zero exit code on failure (handy in CI).
python3 llms_txt.py generate example.com --limit 40 > llms.txtDiscovers your sitemap (via robots.txt or /sitemap.xml), follows sitemap-index nesting the way Yoast / RankMath / most WordPress sites are structured, fetches page titles, groups URLs into sections by path, and emits a valid llms.txt scaffold. Review, trim, and publish it at /llms.txt.
Generated output is a starting point — it passes this kit's own validator, but a good
llms.txtis curated, not dumped. Edit it.
AI assistants increasingly look for llms.txt to decide what a site is and which pages to trust. It's early, the tooling is nearly nonexistent, and getting the format wrong means the file is silently ignored. This makes it a two-command job to get right.
MIT © SEO Pro Check · built by @seoprocheck.