Meridian handbook
Reference

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:

KeyHolds
contractThe template contract version the surface belongs to
siteThe site key
productionWhether engine.environment is production (development-only helpers such as dump are absent there)
globalsEvery global variable and function: name, doc
filtersEvery filter: name, doc
tagsEvery tag: name, doc
field_typesEvery field type with the properties and helpers its values have in a template: key, properties, helpers
typesYour 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)
routesThe site’s routes: id, type, the uri and index pattern per locale, the template, and the configuration file
componentsYour components with their props and where they are called
undocumentedHow 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:

AddressWhat 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>.jsonThe 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

QuestionCommand
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.