How to install Claude Code mods

Enable Claude Mods in Claude Code, install a mod from its repository, and fix the common problems.

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 env in ~/.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-file and search the log for the plugin’s name.
  • Panes do not dock. Panes need /tui fullscreen and 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.

Frequently asked questions

Which version of Claude Code do I need?

This guide uses 2.1.269+ as an early-access baseline for above-prompt mods. A mod may require a newer version; check its repository before installing.

Why is the slash command missing?

Check that the plugin is installed and enabled, confirm the function-hooks flag is set, and restart the session. Follow the repository troubleshooting notes if it still does not load.

Do I paste owner/repo literally?

No. Those are placeholders. Use the real marketplace and plugin identifiers supplied by the mod author or its catalog listing.

Updated 2026-09-16 · Claude Mods editorial team