<Devsly/>
NotebookLM Watermark Remover
Remove the NotebookLM watermark from PDF slide exports — free, unlimited, and 100% in your browser.
View
NotebookLM Video Watermark Remover
Remove the NotebookLM watermark from every frame of your MP4 and auto-trim the end card — free and unlimited.
View
Gemini Watermark Remover
Remove the Gemini (Veo) sparkle watermark from every frame of your AI-generated MP4 — free and unlimited.
View
MCP https://devsly.io/mcp MCP Tools API Docs

Keyboard Shortcuts

Navigation

Quick Search
/ Ctrl + K
Toggle Dark Mode
/ Ctrl + D
Close Dialogs
Esc

Tool Actions

Execute / Process
/ Ctrl + Enter
Clear Input
/ Ctrl + Shift + C
Copy Output
/ Ctrl + Shift + X

Editor

Select All
/ Ctrl + A
Undo
/ Ctrl + Z
Redo
/ Ctrl + Shift + Z
Questions or ideas? Reach us on LinkedIn — we reply. Connect

LLMS Reader Network tools

Read any site's llms.txt and score it out of 100: 32 checks across discovery, structure, link quality, search-engine basics and depth, with a search-result preview, ranked fixes, a shareable PNG score card and a starter file when the site has none.

Read a site’s llms.txt

llms.txt is a plain-text file a site publishes at its root to tell AI assistants what it offers and where the machine-readable version of each page lives. Type a domain below — this tool fetches the file, turns its sections and link lists into something you can actually read, scores how well it serves an assistant, and picks up llms-full.txt when the site publishes one too. No file yet? You still get a score for what a crawler reads today, plus a starter file to copy.

  • A score out of 100 across 32 checks, with the fixes ranked by what each one is worth
  • The file parsed into sections and links, next to the colour-coded raw source
  • llms-full.txt detected and loaded on demand when the site publishes one
  • A starter file if there is nothing to read yet
Try:

What is llms.txt?

llms.txt is a proposal by Jeremy Howard (Answer.AI) for a single markdown file at /llms.txt that tells a language model what a site contains and where to find the clean version of each page. It exists because the thing an assistant needs and the thing a browser needs are no longer the same: a modern page ships navigation, cookie banners, analytics and framework noise around a few hundred words of actual content, and a model reading that HTML spends most of its context window on markup it will throw away. The file is a curated index, written for machines but perfectly readable by people.

It is not a standard, not enforced by anyone, and not a ranking signal. No search engine has committed to it. What it does have is adoption: a large share of developer-facing documentation sites now publish one, because it is cheap to generate and it measurably improves how assistants answer questions about their product.

llms.txt vs llms-full.txt vs robots.txt

FileAnswers the questionTypical sizeWho reads it
/robots.txt Which paths may a crawler request? A few lines Crawlers, at fetch time
/llms.txt What is here, and where is the clean copy? 2–100 KB Assistants, as an index to follow
/llms-full.txt Can I have all of it, right now? Often several MB Assistants with a large context window
/sitemap.xml Which URLs exist and when did they change? Varies Search engines

The distinction that matters in practice: llms.txt is an index and llms-full.txt is the whole corpus inlined. A site can publish either, both, or neither. This tool checks for both, and when the full file exists it loads on demand and is presented as a collapsible outline — opening a 6 MB text file in a browser tab is not a reading experience.

The format

The proposal asks for a small, fixed shape. Everything after the title is optional:

# Project name

> One-paragraph summary of what this project is.

Any free-form markdown can go here — context, conventions, warnings.

## Docs

- [Quickstart](https://example.com/quickstart.md): Get running in five minutes
- [API reference](https://example.com/api.md): Every endpoint, with examples

## Optional

- [Changelog](https://example.com/changelog.md): Release history

Three rules carry most of the weight. There is exactly one # H1 with the project name. The > blockquote directly under it is the summary a model reads first. Every ## section holds a bulleted list of markdown links, each optionally followed by a colon and a short description — and a section literally named Optional marks links that may be skipped when context is tight. This tool checks each of those and reports what it found.

How the GEO score works

GEO — generative engine optimization — is the same instinct as SEO pointed at assistants instead of search results. The score on this page is our own heuristic, not a standard: llms.txt has no scoring body, no certification and no official rubric, and anyone who tells you their number is authoritative is selling something. What it is, honestly, is a checklist with weights attached, built from the proposal itself and from what actually helps a model answer questions about a site. Use it to find the gaps, not to compare yourself with a competitor to the decimal point.

34 checks in 5 groups, weighted to add up to exactly 100 points. Every one of them runs on what a handful of requests already returned — the file itself, your homepage and your robots.txt. There is no crawl, and no request per link: a file with 629 links would take minutes.

GroupPointsChecksWhat it asks
Content & links 52 11 Descriptions on your links and long enough to add something, meaningful titles, clean .md copies, absolute URLs, an Optional section, no duplicates, and a workable number of links for the shape of file you are publishing.
Structure 20 7 One H1 title, a blockquote summary of a usable length, sections a reader would look for, links spread across them rather than piled into one, and markdown without HTML in it.
Discovery & access 11 5 Is the file at the standard path, served as plain text, and is there a robots.txt that does not block the assistants you just wrote the file for?
Search-engine basics 8 6 Title and meta description length, canonical URL, declared language, social card image, and whether the title repeats your brand instead of describing the product.
Depth & upkeep 9 5 Is there an llms-full.txt, is it linked from the index, is the index a sensible size, and can a client even tell when it last changed?

The weights are the argument, so they are written down in one place rather than scattered through the code: content is half the score, because what your links say is the thing an assistant actually reads. The thresholds are deliberately strict, because a checklist everyone passes tells you nothing — full marks for descriptions means every link, and full marks for clean markdown copies means all of them. Scoring in the eighties here is a good file; the nineties means you have done work most sites have not.

Two rules about what a zero means, and they are not the same rule. A check we could not measure is dropped from the total, not scored zero — if a bot filter blocks our request to your homepage, the search-engine checks are marked “not scored” and the page tells you the total shrank, because punishing a site for a failed measurement would be dishonest. A check you simply did not earn scores zero and stays in the denominator. And an empty set earns nothing: a file with no links does not get full marks for “all of its titles being meaningful”.

The line between those two is whether the thing blocking the measurement has a reason of its own. Protecting your homepage with a bot filter is a legitimate security choice, so those checks are dropped and the rest of your score is scaled up — which is the same as assuming you would have scored your own average on them. Not sending a Last-Modified header is simply an omission that buys you nothing, so it scores zero and stays in the total. The honest caveat: scaling gives a small advantage to a site that would have scored below its own average on the part we could not reach. That is the standard way to handle missing data, and the alternative — scoring a blocked site zero — would be a worse lie.

One caveat worth knowing: the “clean markdown copies” check detects .md and .txt by file extension. A site that serves markdown at extensionless URLs through content negotiation is doing the right thing and will still score low there. That is a limit of the check, not a fault in the site.

How this reader works

  1. You type a domain. The tool requests https://<domain>/llms.txt first.
  2. If that misses, it tries the www variant, then docs. and developers. — documentation subdomains publish these far more often than the marketing root does. Every address it tried is listed in the result, so nothing is guessed silently.
  3. The response is checked before it is trusted. A parked domain or a single-page app will happily answer HTTP 200 with an HTML error page; that is reported as a miss rather than rendered as if it were a real file.
  4. The markdown is parsed into a title, summary, sections and link lists, and rendered as cards with a live filter. The raw source is shown separately with syntax colouring and line numbers.
  5. All fetching happens server-side through our SSRF-guarded HTTP layer: private and internal addresses are rejected, redirects are re-validated at every hop, and the response size is capped.

Where these rules come from

The structural checks follow the proposal itself: an H1 is the only required element, the blockquote summary is optional, the body takes any markdown except headings, and only an H2 starts a link list. The proposal also asks for markdown copies of pages, declared with <link rel="alternate" type="text/markdown"> — which is why this tool looks for that tag rather than only guessing .md URLs.

The quality thresholds come from practice rather than the spec, and we say so where it matters. The 10–40 link range is the range community guides converge on, with effectiveness dropping past roughly fifty because the model has to scan the whole file and every entry gets diluted. The warning about generated files is the same observation from the other side: dumping a sitemap into markdown produces bulk without curation, and curation is the entire value of the format. Worth knowing: llms-full.txt appears nowhere in the proposal — it is a widely-copied community convention, which is why it sits in the smallest scoring group here rather than the structural ones.

Frequently asked questions

Why does a site I know has documentation show no llms.txt?

Most likely it simply does not publish one — adoption is voluntary and still uneven outside developer tooling. The other common cause is location: the file belongs at the root of the host that serves the docs, so a company might have nothing at example.com/llms.txt while docs.example.com/llms.txt is complete. This tool tries those variants for you and shows the result of each attempt.

The result says “the site refused the request”. What does that mean?

The site answered with 403 or 429 — a bot filter blocked the fetch rather than the file being absent. Sites behind aggressive WAF rules do this to any request without a browser fingerprint, which is a slightly awkward position for a file whose entire purpose is to be read by machines. Opening the URL in your own browser usually works.

Is the content safe to display?

It is treated as hostile input, because it is: any site can put anything in a text file. The file is parsed on our server into a structured tree, never into HTML. The browser then builds each element as a text node, so markup in the source cannot become markup on this page, and every link is filtered to http, https and mailto before it is attached — a javascript: target in a markdown link is dropped on both sides.

Why is llms-full.txt not loaded automatically?

Because of what it usually weighs. These files routinely run to several megabytes of prose; fetching one on every lookup would make the tool slow for everyone and useful to almost no one. Its presence is detected with a lightweight request, and the document itself is fetched only when you ask for it. Very large files are shown as an outline with each section expanded on demand.

Can I read a file that is not at the standard path?

Yes. Paste the full URL — anything ending in .txt or .md is fetched exactly as given, with no path guessing. That is the way to inspect a file at a non-standard location, or to read an individual .md page that an llms.txt links to.

Is a high GEO score going to get me cited by ChatGPT?

Nobody can promise that, and we will not. Assistants pick sources through retrieval systems that are opaque, change constantly and weigh things far outside your control — brand, links, freshness, the wording of the question. What a good llms.txt genuinely does is remove a specific obstacle: when a model does reach your site, it finds a curated map and clean text instead of guessing from HTML. That is worth doing on its own merits. Treat the score as a measure of how well you have prepared, not of what you will receive.

Should I publish an llms.txt for my own site?

If you have documentation, a reference, or any substantial body of content you want assistants to get right, it is a couple of hours of work with a durable payoff, and it costs nothing if the proposal never catches on. If you run a small marketing site, the honest answer is that it will change very little. Write it by hand rather than dumping your sitemap into it: the value is in the curation and the one-line descriptions, which is exactly the part a generator cannot do for you.