CUES.md is the master config for the cues surface: project metadata, words to never cue, and declarations of LLM-backed cue sources. Despite the similar name, it is a completely different file from OPENCUES.md.
What's inside
The frontmatter carries project metadata (name, domain, version, a spec: pin) plus two surface-scoped lists: ignore: (words the runtime never suggests alternatives for, like TODO and FIXME) and disable: (cue source ids to skip at this layer, without touching the library they live in). The body has three sections: ## Tips for static word tips, ## Ignore, and ## Prompt with one ### <source-name> heading per LLM-backed cue source. The shipped defaults (domain cues like legal and medical, per-host tip groups) are declared through exactly this format.
Where it lives
User-level (~/.cues/CUES.md) or project-level (<project>/.cues/CUES.md), and the two merge: project wins on name conflicts. That's the mechanism behind team config: a CUES.md committed to a repo applies to everyone who runs a host from inside it. Individual cue sources live in their own folders (cues/<name>/CUE.md); the master file is the surface-wide dial.
Not to be confused with OPENCUES.md
The two names look alike and the distinction has confused people before (a planned merge of the two files was abandoned), so it's worth being blunt:
- CUES.md: cue content and cue sources. User or project level; projects can override.
- OPENCUES.md: runtime system settings (voice mode, feature toggles, LLM provider). User-level only; one value applies across every integration, and its schema is owned by the runtime, not by you.
Edits hot-reload within a couple of seconds; no restart.
Related: What is OPENCUES.md? · Write your own cue · Project-level cues · What is a CUE.md file? · GitHub repo