Every LumenJS project automatically serves a /llms.txt endpoint following the llmstxt.org convention. AI tools can read this file to understand your app's structure and content. Zero config required.
When a request hits /llms.txt, LumenJS automatically:
/blog/:slug) by discovering all entrieslumenjs dev and lumenjs serve (production) modes. No configuration or setup needed.
# My Blog > Built with LumenJS ## Pages ### / count: 3 ### /blog/:slug - Dynamic route ### /dashboard - Server-rendered page with loader data, with live data ## API Routes - GET /api/posts - POST /api/posts - GET /api/stats ## Features - SQLite Database - Internationalization (en, fr) - Tailwind CSS
For dynamic routes like /blog/:slug, LumenJS tries to expand them by finding the parent index page (e.g. /blog or /) and calling its loader to discover all entries. It then calls the dynamic page's loader for each entry to render the full content.
If the database is empty, the parent loader returns no array, or any loader fails, the route is simply listed as - Dynamic route without a count or expanded entries.
When data is available, the output looks like:
### /blog/:slug Dynamic route - 2 entries: #### /blog/hello-world title: Hello World date: 2025-01-15 #### /blog/getting-started title: Getting Started date: 2025-01-20
To serve your own hand-crafted llms.txt, simply place a file at public/llms.txt in your project:
my-project/ public/ llms.txt ← this takes priority over auto-generation
public/llms.txt file exists, LumenJS serves it as-is and skips auto-generation entirely.
The generated file contains these sections (each omitted if empty):
db config present), Internationalization (if i18n configured), Tailwind CSS, NuralyUI ComponentsLoader data is flattened into readable key-value text. Objects are dot-separated, arrays are skipped (they appear as expanded dynamic entries instead), and long values are truncated at 300 characters.
// Loader returns: { title: 'Hello', meta: { author: 'Alice' }, tags: ['a', 'b'] } // Rendered as: title: Hello meta.author: Alice