# 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]]