1. Check your version
Mods that draw above the prompt need Claude Code 2.1.269 or later. Some need newer; each listing says so.
claude --version
If you have both an npm install and the native install, make sure the one on your PATH is the new one. claude update upgrades the native install.
2. Turn function hooks on
Add the environment variable to ~/.claude/settings.json (create the file if it does not exist, or merge the env key into what is already there):
{
"env": {
"CLAUDE_CODE_ENABLE_FUNCTION_HOOKS": "1"
}
}
For a single session instead, prefix the command:
CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1 claude
For a single Windows PowerShell session:
$env:CLAUDE_CODE_ENABLE_FUNCTION_HOOKS = "1"
claude
The settings-file method above works across operating systems. Restart Claude Code after changing it.
3. Install a mod
Open a listing and follow its repository instructions. Many mods publish a marketplace; others use a local plugin directory or are built-in examples. The commands below are a pattern, with placeholders to replace — not commands to paste unchanged:
claude plugin marketplace add owner/repo
claude plugin install mod-name@repo
Then start claude and run the mod’s slash command (each listing names it). To try a mod without installing, clone it and load it for one session:
claude --plugin-dir ./the-mod
4. Where things go wrong
- The slash command is unknown. The plugin may be disabled, missing or unable to load. Check the variable is set under
envin~/.claude/settings.json, and that the plugin shows in/plugins. - An above-prompt game does not draw. Check its terminal requirements. For example, cc-arcade requires an interactive terminal and does not draw in
claude -p, the desktop app or mobile. - Keys go to the prompt instead of the mod. Click the mod’s surface first. Esc hands the keyboard back to the prompt.
- Nothing happens when you click. Your terminal does not report the mouse. Windows Terminal, iTerm2, kitty, WezTerm, Ghostty and Alacritty do.
- A surface is replaced by one line naming the plugin. The mod threw or ran over its budget. Restart it; if it repeats, run Claude with
--debug-fileand search the log for the plugin’s name. - Panes do not dock. Panes need
/tui fullscreenand roughly 110 columns.
5. Building your own
Run /plugin-types inside a session with hooks on to generate the type declarations for your build, read Anthropic’s published built-in mods at anthropics/claude-code/mods, and start from hello-mod. claude plugin validate . tells you which events your module hooks and which $ calls it makes. When it works, submit it.
Start with one mod
Browse games, dashboards or the full catalog. For a concrete walkthrough, see playing Tetris in Claude Code. Check the function-hooks announcement and each repository for changes to this early-access API.