# Claude Mod Manager > Claude Mod Manager (cmod) finds, installs, and creates mods for Claude and Claude Code. A mod is a Claude Code plugin that changes how Claude Code works: it can rewrite prompts, add panes and buttons to the UI, replace built-in screens, and allow or block what Claude runs. Free and open source under MIT. To build a mod, install cmod with `npm i -g @cmodjs/cli`, run `cmod new `, read `node_modules/@cmodjs/core/docs/index.md` in the new folder, build the mod, run `cmod check` until it passes, then run `cmod link`. Each page below is Markdown, and it matches the latest release. ## Docs - [Overview](https://claudemodmanager.com/docs/index.md): These are the docs of the @cmodjs/core version installed beside them. Read them before you write mod code. They match this version, and memory of another version does not. - [Define a mod](https://claudemodmanager.com/docs/mod.md): defineMod describes a mod: its name, its state, the methods it offers other mods, and the setup function that attaches everything to Claude Code. registerMod registers the definition with Claude Code. - [State](https://claudemodmanager.com/docs/state.md): mod.state holds the mod's values. Claude Mod Manager (cmod) saves them, redraws the mod's panes and slot renders when one changes, and lets a person change the starting values without touching the mod's code. - [Hooks](https://claudemodmanager.com/docs/hooks.md): mod.on runs a function when Claude Code raises an event, such as a prompt or a tool call. The function reads the event's input and may answer to change what Claude Code does next. - [UI](https://claudemodmanager.com/docs/ui.md): A mod draws in four places: its own panes, the rows Claude Code draws (slots), the blocks of Claude's replies (markdown slots), and short messages: toasts, progress lines, and questions. All of it lives on mod.ui. - [Jobs](https://claudemodmanager.com/docs/jobs.md): A job is a ready-made feature of a mod: a slash command, a tool, permission rules, a check, a prompt, a status line, or a background program. Add each in setup with mod.use. - [Call another mod](https://claudemodmanager.com/docs/dependencies.md): A mod offers methods to other mods in api. Another mod lists it as a dependency and calls those methods through mod.dependencies, typed from the provider's own types file. - [Install steps](https://claudemodmanager.com/docs/install-steps.md): A mod that changes the machine, such as by adding a shell alias or downloading a program, names its install and uninstall steps in its package.json. The cmod program of Claude Mod Manager (cmod) runs them with the person's consent, and runs the uninstall step after the person removes the mod. The library never runs them. - [Testing](https://claudemodmanager.com/docs/testing.md): testMod runs a mod against a fake Claude Code in bun test, so a test drives the mod the way a person and Claude do and reads what they would see. It needs no running Claude Code. - [cmod commands](https://claudemodmanager.com/docs/commands.md): The cmod command of Claude Mod Manager (cmod) builds, checks, and publishes mods, and installs them. npm i -g @cmodjs/cli puts it on PATH. cmod --help prints a command's arguments, and cmod --version prints the version. ## Optional - [Mods](https://claudemodmanager.com/mods): every mod listed on the site - [Full docs](https://claudemodmanager.com/llms-full.txt): every docs page in one file - [Source](https://github.com/heyJordanParker/cmod): the cmod repository on GitHub