Mods change how Claude Code itself works: a live panel, a new command, a different model for each request. Each of these three started as one sentence typed into Claude Code. Claude wrote the mod, installed it and loaded it live. Here are the sentences, the full code and how to run it.
claude --versioncheckclaude updateif olderFree. Recorded for real on 12 Oct 2026 with Claude Code 2.1.296. Mods are early access: the API can change between releases.
On your phone? Mods run in Claude Code on a computer. Open federicodonatone.com/mods there, or .
A mod is a small TypeScript file inside a Claude Code plugin. It hooks into what Claude Code does (your prompt, every request to the model, every tool call, what the screen draws) and changes it or adds to it.
Each mod below was built live in a fresh Claude Code 2.1.296 session from the sentence in the orange box. Paste the same sentence and Claude builds yours. Or run mine: the full code is right here, and all of it is in the download.
Locked. The sentence I gave Claude Code for each mod, and the full code, open with your email.
Open it with your emailIn Terminal, on a Mac or Linux. Every claude command in steps 2 to 4 was run on 12 Oct 2026 with Claude Code 2.1.296, on the exact files in the download.
Locked. The zip and the one command to install all three open with your email.
Open it with your email“A mod reaches the file system, processes, and the network through the mods API, with the same permissions as the user running Claude Code.”
Claude Code docs, Mods APIMods run outside any sandbox. Install them only from sources you trust, and read the code first. Here is what each of these three registers and calls, as claude plugin validate reports it:
Check any mod before it loads. Run claude plugin validate on its folder: it lists every hook the mod registers and every call it makes, without running it. That's how the table above was made.
What happened in each of the three recordings, step by step, so you know what to expect.
Start with “Build me a mod that”, then what it should do and where it shows up: a pane next to the chat, a line above the prompt, a new slash command. One mod, one job.
Claude Code ships a skill for writing mods, with the full API for your exact version. In all three recordings Claude loaded it first, looked up the parts of the API it needed, then wrote the files into the session's own mods folder. Then it checked its work: claude plugin validate, a type check and tests it wrote itself (2, 4 and 6 tests, all passing).
The first time, Claude Code asks “Enable hot reloading for this session?” and reminds you that mods run with your permissions. Choose Enable for this session. When Claude's turn ends you see “loaded from this session's mods folder” and the mod is live. It took 2m 34s, 2m 49s and 5m 53s.
Something looks off? Say so in the same session. Claude edits the files and the mod reloads. In the router recording, “My screen is narrow and the status line cuts off the model name, make it shorter” changed the status line and reloaded the mod in 22 seconds. A mod made this way lives in the session's mods folder, under ~/.claude/dev-mods/. To use it in another session, copy its folder out and load it with --plugin-dir, as in step 2 above.