Template API
How to get the complete, generated template surface for your own project (every global, filter, tag, field type, your types and fields, routes and components) from engine-dmo template api, docs serve, describe and guide.
The template surface depends on two things: the engine version (its globals, filters, tags and field types) and your project (its types, fields, routes and components). So the complete reference is generated from both, by the binary you run, for the project you are in. The Templates section explains the language and each part; this page is how you get the exact list.
In the terminal
engine-dmo template api # the default site's surface, as text
engine-dmo template api --site wyndwold # another site
engine-dmo template api --json # all of it, as JSON site main, template contract 1
globals (76)
aiDisclosure aiDisclosure(entry): the disclosure sentence when the entry carries AI-assisted text, else empty
analytics analytics(): the cookieless client that records impressions and in-page interactions
ancestors ancestors(doc): a nesting document's published ancestors on the site, root first
...
filters (94)
...
tags (37)
...
types (8)
...
components (0) It needs no database and no secrets, so it runs in CI and in an agent’s sandbox.
The JSON document
template api --json prints one object for the site:
| Key | Holds |
|---|---|
contract | The template contract version the surface belongs to |
site | The site key |
production | Whether engine.environment is production (development-only helpers such as dump are absent there) |
globals | Every global variable and function: name, doc |
filters | Every filter: name, doc |
tags | Every tag: name, doc |
field_types | Every field type with the properties and helpers its values have in a template: key, properties, helpers |
types | Your content types (core types included) with their key, label, the template that renders an entry, the configuration file and line, and their fields (name, type, required, index and nested fields) |
routes | The site’s routes: id, type, the uri and index pattern per locale, the template, and the configuration file |
components | Your components with their props and where they are called |
undocumented | How many entries carry no documentation (zero for a release) |
In a browser
engine-dmo docs serve this project's template API is at http://127.0.0.1:6061/ It needs a project, and serves:
| Address | What it is |
|---|---|
http://127.0.0.1:6061/ | An index of the project’s sites, with counts of globals, filters, tags, types, routes and components |
http://127.0.0.1:6061/<site>/ | One page per site: every global, function, filter, tag, field type, document type with its fields, route, and component with its props and call sites |
http://127.0.0.1:6061/<site>.json | The same as template api --json |
The project is read again on every request, so a saved change shows on reload; a project that does not load shows its diagnostics there instead. --site limits it to one site and --listen changes the loopback address (it must be loopback). docs serve is refused when engine.environment is production.
One thing at a time
| Question | Command |
|---|---|
| Which fields does a type have, with their ids, types and parameters? | engine-dmo describe type <type> |
| What does each field type store and accept? | engine-dmo describe fieldtypes |
| Which route answers a path, and which template renders it? | engine-dmo describe route <path> |
| What does a template extend and include, and what does it render? | engine-dmo describe template <file> |
| What does the whole project declare? | engine-dmo describe project |
| What does a page actually render, with its errors and queries? | engine-dmo render <path> --json |
Each takes --json.
For an agent
engine-dmo guide writes working guidance for the project (its types, routes and the template contract, generated) for a person or a coding agent:
engine-dmo guide --out AGENTS.md
engine-dmo guide --skill --out .claude/skills/meridian/SKILL.md An agent without a browser reads this handbook as Markdown from https://docs.cherwell.studio/llms.txt, and the template API with template api --json. See For agents.
Editors
engine-dmo lsp is the template language server: check’s diagnostics as you type, completion, hover and go to definition, from the same generated surface. engine-dmo config schema --write .meridian/schema writes the JSON Schema of every configuration file for editor completion. See The development loop.
Seed files
Every key of config/search/synonyms.yaml, config/tags/vocabulary.yaml and config/tags/smartlists.yaml, the files commands import into the database, and of the seed/organisations and seed/people records.
Environment variables
Which environment variables the engine reads directly (very few), the conventional names a project's engine.yaml interpolates, the variables commands read secrets from, and the variables the engine sets for child processes.