# Claude Code Mods
Claude Mods are [[Claude Code Plugins|plugins]] built on **function hooks**: TypeScript functions that hook into [[Claude Code]] itself, in the style of Express or Koa middleware. Where [[Claude Code Hooks|classic hooks]] run a shell command at a lifecycle event, a function hook runs inside the process, gets a typed `
object describing what it may do, and can call `next()` to continue the chain. It can change behaviour, block behaviour, add context, and, since Claude Code's UI is React, **render UI**.
Announced by [[Boris Cherny]] on 2026-09-14: "Claude Mods are landing now. Someone already built a Tetris-in-Claude mod 🤯"
## Where it stands (September 2026)
- The proposal was posted for community feedback on 2026-09-03 as GitHub issue #91870, "Mods: make Claude 10x more extensible", with a technical architecture PDF and short demo videos
- The 2026-09-09 community update committed to shipping "on the scale of weeks", named the product **Claude Mods**, and kept *function hook* as the engineering term for the primitive underneath. A mod is a plugin that uses function hooks; nothing else changes
- Source listings for the first three built-in mods are public under `mods/` in the claude-code repo. Anthropic intends to migrate more existing features into mod form over time
- Test it today with `CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1 claude` (v2.1.267+). Semantics are mostly settled; the interface is still moving
## What a function hook can do
From the demo series:
1. **A hook as a function**: TypeScript with full type definitions and LSP support instead of a shell script
2. **A hook that says no**: restrict behaviour for safety and control, as with classic hooks
3. **Plugins can draw**: hook onto components, modify their props, or wrap their rendered nodes
4. **Admin control as a hook**: an admin can remove affordances from `
so every plugin further down the chain loses that side effect. Order is nesting
Safety comes from **side-effect tracking over the parameterized `
object**: a hook can only do what its `
exposes, and a hook above you can shrink what your `
exposes. Composition follows registration order with a `next` continuation. The author's own summary: "an effect-parameterized endomorphic continuation model for plugins." The `
sigil is a jQuery homage and, per the author, "isn't negotiable".
## First community mod: cc-arcade
The Tetris demo is [cc-arcade](https://github.com/sezaakgun/cc-arcade): Tetris and seven other games rendered above the prompt, playable while Claude works, zero tokens. It's a good map of the API surface:
- `ui.render` on the `AbovePrompt` surface, one `Client` module per game board
- `turn.complete` pauses the game when Claude finishes
- `tool.call` feeds a virtual pet
- `$.store` keeps scores
The author's friction list is worth reading before you build anything: an `h` local-variable rule in surface modules, `Client` module paths must be string literals, and the render band is about half the terminal, redrawing roughly ten times a second. All undocumented at the time of writing.
## Why it matters
This is the point where Claude Code stops being configurable and becomes programmable. Everything the AI assistant in this vault does through shell hooks and `settings.json` (blocking commands, injecting context, enforcing conventions) becomes a typed function with access to the UI. The admin-control model also matters for teams: a fine-grained, programmatic way to decide what plugins may do.
Two things I'd watch:
- **Supply chain.** A mod runs inside the process with whatever `
grants it. Treat third-party mods like you'd treat a browser extension with access to your terminal
- **Stability.** The first week had breaking changes daily. Build on it for fun now, for work once the docs exist
## References
- Announcement: https://x.com/bcherny/status/2099551291601248485
- GitHub issue #91870 (proposal, community updates, demo videos): https://github.com/anthropics/claude-code/issues/91870
- Built-in mod sources: https://github.com/anthropics/claude-code/tree/main/mods
- cc-arcade: https://github.com/sezaakgun/cc-arcade
## Related
- [[Claude Code]]
- [[Claude Code Plugins]]
- [[Claude Code Hooks]]
- [[Claude Code Skills]]
- [[Claude Code Configuration]]
- [[Boris Cherny]]