llms.txt
Every Jamdesk site generates llms.txt and llms-full.txt automatically. AI tools use these files to understand your documentation.
AI tools like ChatGPT, Claude, or Copilot give accurate answers about your product only with structured access to your docs. Their training data isn't enough.
Every Jamdesk site generates llms.txt and llms-full.txt following the llmstxt.org spec. AI tools read these files instead of crawling individual pages.
Google now audits llms.txt as part of Lighthouse's agentic browsing checks. Sites that publish a valid llms.txt are easier for AI agents to discover. Google also uses it more and more when ranking content for AI-powered answers. Jamdesk publishes it for free.
Check your score. The free AI Score tool grades how agent-ready any docs site is. A valid llms.txt is one of the first things it checks. The AI Score Chrome extension grades sites as you browse.
What Jamdesk Generates
| File | Content |
|---|---|
llms.txt | Page titles, descriptions, and URLs (a structured table of contents) |
llms-full.txt | Complete documentation content in a single file |
Jamdesk generates the files at build time. It serves them from the same CDN as your docs.
Verify Your Files
Check that your files exist after your first build:
If your docs are at the root of your domain (e.g., docs.acme.com or acme.jamdesk.app):
curl https://docs.acme.com/llms.txt
curl https://docs.acme.com/llms-full.txtFile Format
The llms.txt file lists every page with its title, description, and URL, grouped into sections that mirror your navigation:
# Your Project Documentation
> Documentation for Your Project
## Get Started
- [Getting Started](https://your-project.jamdesk.app/getting-started): Set up your first project in 5 minutes
- [Configuration](https://your-project.jamdesk.app/configuration): Configure your project settings
## API Reference
- [Authentication](https://your-project.jamdesk.app/authentication): How to authenticate API requests
The llms-full.txt file contains the complete Markdown content of every page, concatenated with page boundaries marked by headings.
Structure
llms.txt follows the llmstxt.org proposal: an H1 title,
a blockquote summary, and your navigation tabs and groups as ## sections of
Markdown links.
Multilingual Sites
Sites with more than one language get a separate set of files per language. An AI tool can fetch only the language it needs. For a site in English (the default) and French:
| URL | Content |
|---|---|
/llms.txt | English index, with links to every other language's index at the end |
/en/llms.txt | Same file as /llms.txt |
/fr/llms.txt | French index, linking back to the other languages |
/llms-full.txt | Full content of every language, one after another |
/en/llms-full.txt | Full content of the English pages only |
/fr/llms-full.txt | Full content of the French pages only |
The root llms-full.txt keeps every language. Tools that already read it
see no change. Point an agent at a language's own file when it only needs that
language:
curl https://jamdesk.com/docs/fr/llms-full.txt
A language gets its own files once it has at least one page. Single-language sites keep only the root files.
Login-protected sites
On a site behind password protection or JWT authentication, llms.txt and llms-full.txt send visitors to the login page, and .md URLs return 401. A project API key opens all three for tools that can't sign in. Create one in Project Settings > API Keys and send it as Authorization: Bearer <key>:
curl https://docs.example.com/llms.txt \
-H "Authorization: Bearer jd_live_..."
curl https://docs.example.com/using/scope.md \
-H "Authorization: Bearer jd_live_..."
With a key, .md URLs return the pages that appear in search. Group-restricted pages, hidden pages and pages with search: false return 404. A key that isn't valid for the site gets a 401 JSON error with invalid_api_key. Without a key, nothing changes.
The key never opens HTML pages or the AI chat. Those still need a login. Requests with a key share a limit of 120 per minute per key with the MCP server. Over the limit, you get a 429 with Retry-After: 60.
Agent directive on every page
Every page carries an invisible, screen-reader-silent note that points AI
agents at llms.txt. Every Markdown export starts with a blockquote linking
the index. Agents that land on your HTML find the Markdown path
without crawling.
How It's Built
- Generated at build time alongside your HTML
- Served from CDN with the same cache policy as your docs
- Updates automatically on every build
- No configuration needed. Every page is included by default
Turning Off llms.txt
Jamdesk publishes llms.txt and llms-full.txt by default. Set seo.ai.llmsTxt to false in docs.json to stop generating them, for example to keep AI tools from ingesting your content:
{
"seo": {
"ai": {
"llmsTxt": false
}
}
}Jamdesk skips the files on your next build, including every per-language copy. The live /llms.txt and /llms-full.txt URLs return 404.
AI ingestion and search indexing are separate controls. seo.ai.llmsTxt controls only the llms.txt/llms-full.txt files that AI tools read. It does not change how search engines index your site. robots metadata and per-page noindex control indexing. A page can be indexed by Google while excluded from AI ingestion, or the reverse.
AI Crawlers
Jamdesk's default robots.txt allows all major AI crawlers (Claude, ChatGPT, Copilot, Gemini).
sitemap.xml lists URLs for search engines to crawl and index. It has no content, only links and metadata like last-modified dates.
llms.txt is for AI models. It has page titles, descriptions, and (in llms-full.txt) the page content. AI tools read the full file in one HTTP request instead of many.
