$.turn.step, $.tool.call, $.ui.render…) to add a pane, a status line, a slash command, or to change a request before it is sent. Anthropic’s reference is anthropics/claude-code/mods and the mods documentation.
.claude/skills/stack-viewer/, which Claude Code loads as stack-viewer@skills-dir. Then run /stack in Claude Code.
Requirements
The
$ API can change between Claude Code releases. Every mod in the catalog is type-checked against the current API in CI, and its README states the minimum version it was tested on.
Options
Options are declared in the mod’s.claude-plugin/plugin.json (userConfig) and read from your user or managed settings, never from project settings:
~/.claude/settings.json
<name>@skills-dir when it is auto-loaded from .claude/skills/, plain <name> when you load it with --plugin-dir.
A mod that seems silent
Check these before suspecting the mod’s code:- Untrusted project. See the warning above.
- Wrong place to look.
$.ui.logwrites a dim transcript line; inclaude -pthere is no transcript, so look in~/.claude/debug/<session-id>.txt. A mod that rewrites the model or effort changes each request, not the header or status line. - Options under the wrong key. The debug log says
no pluginConfigs["<name>@skills-dir"].optionswhen it finds none. - Function hooks off on Claude Code below 2.1.287.
claude --debug shows hooks module <name>@skills-dir loaded … events: … when the mod is running.
Browse all mods at aitmpl.com/mods. To write one, see Building a mod.