opencues list answers the question of what is actually loaded right now: every defined cue and blank across your search paths, each with the file it came from and the hosts it's compatible with.
What it shows
The command walks the same search paths the runtime uses (env override, then project-level .cues/, then user-level ~/.cues/) and prints every entry with its source location. That last part matters when the same name exists at two layers: the listing shows you which copy won. Because it reads the same discovery logic the runtime uses, what it prints is what the hosts will actually load, not a cached inventory. Each entry's host compatibility is included, so you can see at a glance what will work in Chrome versus Claude Code.
Filters and companions
opencues list --cues/opencues list --blanks: filter by kind.opencues show <name>: the companion command; dumps the full resolved, post-merge config for one entry plus the file it came from.listfor the inventory,showfor the detail.- Output goes to stdout pipe-friendly, so
opencues list --blanks | grep -c domainstyle one-liners work.
When to reach for it
Three situations, all common:
- "Is my new cue actually registered?" After dropping a CUE.md folder,
listconfirms discovery in one command. - "Which layer is this coming from?" When a project-level config shadows a user-level one and behaviour surprises you.
- "Why doesn't this fire in Chrome?" The per-entry host compat column answers it without opening any file.
- "Is this name taken?" A quick skim before scaffolding a new cue avoids shadowing an existing one.
Related: Project-level cues · opencues validate · Scoping cues per site and host · GitHub repo