Administrator 

Installation 

Install the extension with Composer:

composer require web-vision/ai-llms-txt
Copied!

Then set up the extension, so that the TYPO3 caches are flushed:

vendor/bin/typo3 extension:setup
Copied!

The extension is also available in the TYPO3 Extension Repository (TER) under the key ai_llms_txt. Classic mode installations are not covered by the automated tests.

Setup 

The extension works without further configuration: it registers its page types automatically and is enabled for every site.

  1. Import the route enhancer into each site configuration to get the /llms.txt and .md URLs, see Route configuration.
  2. Optionally adjust the title, summary and other values in the site configuration, see Site settings.
  3. To keep a site out of it entirely, disable llmsTxtEnabled for that site.

Available URLs 

URL Output
https://example.com/llms.txt llms.txt (with route enhancer)
https://example.com/.well-known/llms.txt llms.txt (with route enhancer)
https://example.com/about.md Markdown version of /about (with route enhancer)
https://example.com/?type=1699 llms.txt (always available)
https://example.com/about?type=1701 Markdown version of /about (always available)

Testing the installation 

  1. Open https://example.com/llms.txt. It starts with the site title as a # heading, followed by the summary and the list of pages.
  2. Append .md to the URL of any regular page, for example https://example.com/about.md. The page content is shown as plain Markdown.

Exporting pages as Markdown files 

The command ai-llms:download-markdown saves the Markdown version of pages as .md files, for example to feed them into an AI knowledge base:

# Export all sites to var/markdown-export/
vendor/bin/typo3 ai-llms:download-markdown

# Export one site, with YAML frontmatter, and preview first
vendor/bin/typo3 ai-llms:download-markdown main --include-metadata --dry-run
Copied!
Argument / option Description
siteIdentifier Site to export. Without it, all sites are exported.
-o, --output-dir Target directory, relative to the project root. Default: var/markdown-export.
-l, --limit Maximum number of pages to export. Default: 0 (no limit).
-f, --format File naming: slug (default), uid or title.
-m, --include-metadata Prepend YAML frontmatter with uid, title, description, URL, site and export time.
--flat Write all files into one directory instead of one per site.
--overwrite Overwrite existing files.
--dry-run List what would be exported without writing files.

The command fetches each page's .md URL over HTTP, so the site must be reachable from the server under its configured base URL, and the route enhancer must be imported.

Troubleshooting 

/llms.txt returns "page not found"
The route enhancer is not imported into the site configuration, see Route configuration. /?type=1699 works without any routing and helps to tell a routing problem apart from other causes.
/.well-known/llms.txt is not reachable
Some web server configurations block paths starting with a dot. Allow /.well-known/ to be passed to TYPO3, or use /llms.txt.
A page's .md URL returns "page not found"
This is intended when the extension is disabled for the site, or when the page has Index this page switched off (no_index).
A page is missing from llms.txt
Check the conditions in What is listed in llms.txt. If caching is enabled and the page was changed outside the backend, for example by its start time passing, it appears once the cache entry expires.
llms.txt contains an "error: Failed to generate content" line
Generation failed. The cause is logged through the TYPO3 logging framework (by default in var/log/), not shown in the response.

Performance 

llms.txt is generated with batched database queries per tree level rather than one query per page. On large sites, keep llmsTxtMaxDepth low and set llmsTxtCacheLifetime so the file is not rebuilt on every request.

The Markdown version of a page renders the full page through TYPO3 and converts it, so it takes about as long as rendering the HTML page.