modscode / Guide
What are Claude Code mods?
A mod is a Claude Code plugin made of JavaScript or TypeScript hooks that change how Claude Code looks and behaves. The primary source is Anthropic's official documentation. This page is a short summary of what to know before you install one.
What a mod can draw (terminal and desktop app)
| Pane | A panel that opens beside the transcript, for charts, lists and controls. |
|---|---|
| Band | One row above the prompt, for usage or state. There is only one. |
| Status line | A short line below the prompt. One per mod. |
| Toast | A short message that comes and goes. |
A mod can also act without drawing: deny or rewrite a tool call, add a slash command, or put text into every session. The code reference has real mods' code for each.
Where mods run
| The Code tab of the desktop app | Hooks run. What the mod draws appears, except terminal-only elements. |
|---|---|
claude in a terminal | Hooks run. What the mod draws appears. |
The VS Code extension, claude -p | Hooks run. Nothing is drawn. |
| A cloud session | Hooks run for a plugin that reaches the cloud session. Nothing is drawn. |
Source: the official docs on mods (checked 2026-10-06).
Vet a mod before you install it
Mods aren't sandboxed. A mod can reach your environment variables (API keys included), your files and other programs. Check three things first.
- Pin the version. A marketplace that points at the latest commit of an author's repository changes whenever the author pushes. Install a commit someone has read.
- See what it touches. Run
claude plugin validate .in the mod's folder to list the events it hooks and the APIs it calls. If it needs$.http(network),$.env(environment variables),$.process(programs) or$.fs(files), look for the reason. - Read it. One or two files of a few hundred lines can be read in full.
modscode shows what each listed mod's code reaches, but the check is yours: see how mods are chosen.
FAQ
What are Claude Code mods?
A mod is a Claude Code plugin made of JavaScript or TypeScript hooks that change how Claude Code looks and behaves. In the terminal and in the Code tab of the desktop app a mod can draw a pane beside the transcript, a band above the prompt, a status line and toasts, add slash commands, and deny or rewrite tool calls.
How do I learn to build a mod?
The code reference (/code/) has, for each pattern (pane, band, status line, toast, denying a tool call, rewriting the prompt, slash command, $.store, userConfig), the smallest form and real mods' code that does it. Run claude --plugin-dir . in your mod's folder to load it for one session without installing it.
How is a mod different from settings hooks (PreToolUse) or the statusLine setting?
Settings hooks and the statusLine setting run shell commands. A mod is JavaScript that runs inside Claude Code: it denies a tool call by returning { deny } from tool.call, shows a status line with $.ui.status, and can draw panes and buttons.
Which mods are listed?
Public mods on GitHub whose code is laid out so you can check it: every module read, all the code inside the mod, nothing minified, evaluated or encoded, and every call outside through $ in the open. The rules page has the details.
Is a listed mod safe?
modscode does not say so. Mods run unsandboxed with your permissions. Each page shows what the code reaches (network, programs, files, environment variables, keys in the source) for you to weigh; read the code and install the commit you read.
Do these mods work on Windows?
Claude Code in the terminal and the desktop app both run on Windows. A mod that starts a program Windows lacks (tail, date, open) is flagged on its page; that program will not run on Windows.
How is the design drawn without running the mod?
Its JSX is parsed with TypeScript's parser and the element tree Claude Code would get is rebuilt, with sample values where only the run time knows the text.
Can I use the code?
The smallest forms and starters are written by modscode; use them as you like. A mod's own code is shown under its licence, with the licence text, when the licence allows; otherwise it is linked. Keep the notice when you copy it.