Every page of these docs is published twice: once as the HTML you are reading, and once as plain Markdown for anything that would rather not parse a single-page app. Alongside them sits an index and a set of bulk files, following the llms.txt standard.
All of it is generated by the documentation build, so nothing drifts from the site.
Start with /llms.txt. It fits in any context window and links to everything else.
| File | Contents | Approx. tokens |
|---|---|---|
/llms.txt
|
Index, with a description per component | 3K |
/llms-components.txt
|
Every component page in full | 230K |
/llms-theming.txt
|
Theming, design tokens, configuration | 31K |
/llms-migrations.txt
|
Migration guides | 28K |
/llms-full.txt
|
Everything | 302K |
llms-full.txt exceeds most context windows and is rarely the right choice. Reach for the
narrowest file that covers the task: an agent building a form never needs the migration
prose.
Any page URL plus .md returns that page as Markdown:
/docs/components/buttons/button → the HTML page
/docs/components/buttons/button.md → the same content, as Markdown
The mirror is the full page, not a summary. Component pages carry the generated API table:
every argument, its type, its default, and a Deprecated marker with the migration
instruction where one applies. The <Signature /> tag is expanded into a real Markdown
table before export, so nothing arrives as an unresolved component tag.
Fetch the .md. Fetching the HTML and stripping tags is slower and loses the API table.
Every page, grouped by section, each linking to its .md mirror:
## Buttons
- [Button](/docs/components/buttons/button.md): The base pressable action, with colors, variants, and sizes.
- [Chip](/docs/components/buttons/chip.md): A compact label for statuses, filters, and removable tags.
Component entries carry a one-line description, so an agent can usually pick the right component without fetching anything. Guide pages are listed without one.
The file opens with a preamble covering the conventions most often got wrong, and marks
deprecated sections so Forms (Legacy) is not mistaken for current Forms.
Point it at the index and let it follow the links, fetching .md pages on demand:
Use Frontile documentation from https://frontile.dev/llms.txt
Put that line in your project's CLAUDE.md to apply it to every session. The
Frontile skill
does this and more, without the manual step.
Add the URL to your project context with @Docs:
@Docs https://frontile.dev/llms.txt
Note: Type the
@by hand. Pasting it stops Cursor from recognising it as a context reference. See Cursor's @Docs guide.
Add a line to .windsurfrules so it applies to every conversation:
#docs https://frontile.dev/llms.txt
Paste a .md URL and ask about that component:
https://frontile.dev/docs/components/forms/select.md
How do I make this filter as the user types?
For a whole topic, llms-components.txt fits in a 200K-token context. llms-full.txt
generally does not.
These are static text files over HTTPS with no authentication, so curl, fetch, or a
scheduled job all work:
curl https://frontile.dev/docs/components/buttons/button.md
/component-inventory.json
lists every current component with
its path and one-line description, the same data behind the
components overview
. Useful when something needs the catalogue
as structured data rather than prose. Legacy packages are excluded from it.
These files are built per version, so each documentation origin serves its own. Only versions built after the export existed have them:
| Origin | Agent surface |
|---|---|
next.frontile.dev |
Yes |
frontile.dev |
From 0.18 onward |
v0.16.frontile.dev |
No |
Note: An origin without these files answers with the site's HTML shell and HTTP 200, not a 404. Check the body rather than the status code: Markdown that starts with
<!DOCTYPE html>is a failed fetch.
For anything version-sensitive, such as an argument's exact type or whether it is deprecated,
read node_modules/frontile/declarations/**/*.d.ts in the consuming app instead. That is
exact for the installed version by construction.
If an agent generates wrong Frontile code and the cause is something these files say, or fail to say, that is a documentation bug worth reporting. Open an issue.