Nineteen small, open-source tools that make Claude Code cheaper, safer and easier to share. Each one is a dependency-free Node command or plugin that adds few or no tokens to your sessions, and all nineteen are tested together, installed from GitHub, on Windows, macOS and Linux.
Website: nrzz.github.io/claude-code-toolkit
npx -y github:nrzz/claude-code-toolkitThat opens a setup page in your browser. The first time, the recommended tools (guardrails, notify and glow) are already switched on, so pressing Install is the whole setup. Each tool's Settings hold the few choices that need you: the glow theme (shown with its colors), the guardrails preset, where notify reaches you (desktop, phone, Slack, Discord or Teams), cost guard's budgets and, for the project you ran it in, the handover files, team sync's hub and a starter kit you can preview before it writes anything. Run it again any time to change a setting or switch a tool off; it shows what is installed and how it is set.
The page is served by the command itself on 127.0.0.1, with a one-time key in its link, and only runs each tool's own installer, which backs up settings.json first. It stops when you press Done. Where no browser can open (over SSH, in a container) it asks the same questions in the terminal, and for scripts there is no question at all:
npx -y github:nrzz/claude-code-toolkit install recommended --theme nord --daily 20usdstatus shows what is installed, uninstall all takes out what the tools added to your Claude Code settings (handover keeps your project notes and the effort defaults it set, and says so), and --help lists every option. Nothing here runs Claude, so setting up costs no tokens.
| You want to | Use | What it adds to a session |
|---|---|---|
| Stop paying to reload one giant chat | claude-code-handover | About 700 tokens when new (your rules, the handover file and the latest decisions; the handover stays under 120 lines), and 110 to 200 more on a prompt that matches an earlier session |
| Share sessions, notes and context with coworkers | claude-code-team-sync | 0 when nothing is new, at most about 375 tokens when a teammate shared something |
| Theme the whole interface and watch your context, limits and cost | claude-code-glow | 0 |
Stop rm -rf /, force pushes, secrets in commits and .env edits |
claude-code-guardrails | 0 for every allowed call, about 45 tokens for a denied one |
| Look away while Claude works, and get a ping when it needs you | claude-code-notify | 0 |
| Keep spending inside a daily or weekly budget | claude-cost-guard | 0 |
| See what your CLAUDE.md costs in every session, and slim it | claude-md-doctor | 0: it runs outside Claude |
Start a project with a lean, safe .claude/ for your stack |
claude-code-starter-kits | The CLAUDE.md it writes: 230 to 260 tokens |
| Find a past discussion, or share a session as a web page | claude-session-replay | 0: it runs outside Claude |
| Continue a Cursor or Antigravity chat in Claude Code, or hand a session to them | claude-chat-ferry | 0: it runs outside Claude |
| Delete, keep and restore your sessions before the 30-day cleanup removes them | claude-session-tidy | 0: it runs outside Claude; the optional skill costs about 1,400 tokens per use |
| See why a permission prompt appeared, drop dead rules and add the ones you keep approving by hand | claude-permission-doctor | 0: it runs outside Claude; the optional skill costs about 850 tokens per use |
| Run every hook with the JSON Claude Code sends, and see what each one does | claude-hook-bench | 0: it runs outside Claude; the optional skill costs about 500 to 900 tokens per use |
| Move Claude Code's config folder to another drive, or into the XDG folders, and keep every shell pointed at it | claude-relocate | 0: it runs outside Claude |
| Comment your settings, see what Claude Code merges and from which file, and find the mistakes it ignores in silence | claude-settings-doctor | 0: it runs outside Claude; the optional skill costs about 340 tokens per use |
| See what auto mode and its classifier decided, which refusals were the service rather than your settings, and lint the autoMode settings | claude-automode-doctor | 0: it runs outside Claude; the optional skill costs about 280 tokens per use |
| List every MCP server Claude Code would load and from which file, start each one the way Claude Code would, and see what its tools cost | claude-mcp-check | 0: it runs outside Claude; the optional skill costs about 490 tokens per use |
| Find out whether Claude Code's Bash sandbox can work on your machine, why a command ran inside it or outside it, and which sandbox settings never take effect | claude-sandbox-doctor | 0: it runs outside Claude; the optional skill costs about 440 tokens per use |
| On Windows: which shell the Bash tool gets and why, every claude on your machine and which one runs, and the setup problems behind common Windows issues | claude-windows-doctor | 0: it runs outside Claude; the optional skill costs about 540 tokens per use |
Every tool's README has a "What it costs in tokens" table with the details, and a "What was verified, and how" section that says what was checked and what was not.
Spendcap (cost guard) is in Anthropic's plugin directory since 14 October 2026, so it installs with nothing to add first: /plugin install spendcap@anthropic-plugin-directory, and /plugin, Discover, lists it. For all sixteen, add this marketplace. If you prefer Claude Code's own plugin system, in Claude Code:
/plugin marketplace add nrzz/claude-code-toolkit
/plugin install guardrails@claude-code-toolkit
Then install any of the others the same way, or browse them with /plugin:
| Plugin | Install |
|---|---|
| Glow: themes and status line | /plugin install glowline@claude-code-toolkit |
| Glow HUD (early access) | /plugin install glowbar@claude-code-toolkit |
| Guardrails | /plugin install guardrails@claude-code-toolkit |
| Notify | /plugin install nudge@claude-code-toolkit |
| Cost guard | /plugin install spendcap@claude-code-toolkit |
| CLAUDE.md doctor | /plugin install md-doctor@claude-code-toolkit |
| Session replay | /plugin install replayer@claude-code-toolkit |
| Chat ferry | /plugin install chat-ferry@claude-code-toolkit |
| Session tidy | /plugin install session-tidy@claude-code-toolkit |
| Permission doctor | /plugin install permission-doctor@claude-code-toolkit |
| Hook bench | /plugin install hook-bench@claude-code-toolkit |
| Settings doctor | /plugin install settings-doctor@claude-code-toolkit |
| Auto mode doctor | /plugin install automode-doctor@claude-code-toolkit |
| MCP check | /plugin install mcp-check@claude-code-toolkit |
| Sandbox doctor | /plugin install sandbox-doctor@claude-code-toolkit |
| Windows doctor | /plugin install windows-doctor@claude-code-toolkit |
Five plugins were renamed on 4 October 2026 so that each has a name of its own in Anthropic's plugin directory: glow is now glowline, glow-hud is glowbar, notify is nudge, cost-guard is spendcap and replay is replayer. If you installed one under its old name, uninstall it and install the new one; the tools, their commands and your settings are unchanged.
By Claude Code's own estimate (claude plugin details), all sixteen together add about 233 always-on tokens, and only because the estimate counts the descriptions of user-only skills, which Claude Code leaves out of the list it gives the model. So the end-to-end test checks the request itself: with all sixteen plugins installed it has Claude Code resume a session against a fake API on localhost, and no request that reaches the fake API may mention any user-only skill, while a skill the model may invoke is listed in it. The estimate stays as a tripwire: since 1.7.0 the end-to-end test keeps it under 250 always-on tokens, so that a skill the model can invoke cannot slip in unnoticed. The limit was 150 until the tenth plugin and 200 until the thirteenth: a new tool's user-only skill adds 9 to 17 to the estimate (session tidy's 15, permission doctor's 17, hook bench's 15, settings doctor's 11, auto mode doctor's about 12, MCP check's about 9, sandbox doctor's and windows doctor's together about 21; the nine before added 148), and cutting a description until it fits would only make it harder to read, to save text the model is never sent.
Each tool also runs straight from GitHub with npx, nothing to install first:
npx -y github:nrzz/claude-code-handover initnpx -y github:nrzz/claude-code-team-sync initnpx -y github:nrzz/claude-code-starter-kitsnpx -y github:nrzz/claude-md-doctornpx -y github:nrzz/claude-session-replay listnpx -y github:nrzz/claude-chat-ferry import cursor:latestnpx -y github:nrzz/claude-session-tidy listnpx -y github:nrzz/claude-permission-doctor lintnpx -y github:nrzz/claude-hook-bench runnpx -y github:nrzz/claude-relocate plannpx -y github:nrzz/claude-settings-doctor lintnpx -y github:nrzz/claude-automode-doctor reportnpx -y github:nrzz/claude-mcp-check shownpx -y github:nrzz/claude-sandbox-doctor checknpx -y github:nrzz/claude-windows-doctor checknpx -y github:nrzz/claude-code-glow installGuardrails, notify, cost guard and session tidy have the same init; handover's and team sync's run in the project folder. Every tool that changes your Claude Code settings has an uninstall that takes out what it added; team sync and the starter kits write files into the project, which you commit or delete like any other. Permission doctor installs nothing: it writes a settings file only when you ask it to (lint --fix, suggest --write), after a backup that restore puts back. Hook bench installs nothing either, and never writes a settings file: it runs your hooks and reports. Relocate changes nothing without --yes, and its undo puts the folder back where it was. Settings doctor writes a settings file only with init, build, absorb, watch and restore, after a backup that restore puts back. Auto mode doctor writes one only with suggest --write, and MCP check only with toggle, each after a backup that restore puts back; MCP check starts your MCP servers only when you run check or why. Sandbox doctor writes no settings file. Windows doctor changes only the Windows user environment, and only with fix --git-bash, which undo takes out again.
- No dependencies. Node 18 or newer and nothing from npm, so there is nothing to audit but the code itself.
- Token cost is a feature. A hook puts text in front of the model only when that is its job (a recalled line, a teammate's news, the reason a command was stopped), and the README says how much. Everything else talks to you, not to the model. Skills that Claude does not need to see are user-only.
- Your settings stay yours. Each tool backs up
settings.jsonbefore writing, changes only the keys it is there for, leaves a file that is not valid JSON alone, and itsuninstalltakes out what it added (handover keeps the effort defaults it set, and says so). - Tested. Over 7,300 automated tests across the nineteen repositories, each run on Windows, macOS and Linux with Node 20, 22 and 24, and on Linux with Node 18, plus the end-to-end run below.
e2e/run.mjs does what a new user would, on a clean machine:
- It makes a throwaway home folder and Claude Code config folder that already hold settings of their own (a theme, an env variable, a permission, a Stop hook).
- It installs every tool from GitHub with
npxand runs every hook exactly assettings.jsonlists it, with the JSON Claude Code sends: guardrails deniesrm -rf /and passesnpm testin silence, notify stays quiet after a 5-second turn and pings after a 60-second one, cost guard holds a prompt over a hard budget but lets/compactthrough, the starter kit's CLAUDE.md passes the doctor in CI mode, two teammates share a session through one git remote, a replay export escapes hostile text, session tidy keeps one old session and moves another to its trash and back byte for byte, permission doctor explains a prompt, finds a dead rule and proposes a rule from a transcript without changing a file, hook bench runs a settings file's hooks with the JSON Claude Code sends and calls the deny a deny, the invalid output an error and the typo a hook that never fires, relocate moves a config folder with its sessions to another folder and puts it back byte for byte, settings doctor finds the trailing comma that makes Claude Code ignore a whole file, an unknown key and a wrong type, and buildssettings.jsonfrom a commentedsettings.jsonc, auto mode doctor tells a classifier refusal from a refusal with no verdict in a transcript and finds anautoModelist that drops the built-in rules, MCP check starts a stdio server the way Claude Code would, lists and sizes its tools, and finds a.mcp.jsonserver pending approval and a${VAR}set nowhere, sandbox doctor finds anallowedDomainsentry with a scheme and tells a command that anexcludedCommandsentry takes out of the sandbox from one that stays in it, windows doctor reports the shell Claude Code would give the model on Windows and says there is nothing to check on Linux and macOS, and handover's self-test passes and itsinitsets up a project, changes nothing on a second run and uninstalls cleanly. - In a second home folder it runs the one-command setup as a user would:
install recommended,cost-guardwith options, a guardrails hook it installed denyingrm -rf /,statusreading the choices back, then the setup page started for real and driven through its own API (the one-time key refused when missing, Apply changing a theme and removing a tool, Done stopping it), anduninstall all. - With a Claude Code CLI available, it validates this marketplace, installs all sixteen plugins from GitHub with
claude plugin install, runs the guardrails, notify, cost guard and session tidy plugins' own hooks and the permission doctor, hook bench, settings doctor, auto mode doctor, MCP check, sandbox doctor and windows doctor plugins' skill commands from the installed copies, checks the token estimate and that Claude Code sends the model none of their user-only skills, and runs the HUD's engine tests inside that Claude Code. - It uninstalls everything and checks that
settings.jsonis exactly what the user had, in both home folders.
node e2e/run.mjs--local uses sibling checkouts instead of GitHub, --only setup,glow runs a few, and E2E_CLAUDE=<path to claude> points at the CLI for step 4. CI runs it on every push and every week on Windows, macOS and Linux, so a change in Claude Code that breaks a tool shows up here.
Every tool welcomes issues and pull requests: each repository has a CONTRIBUTING.md and issue templates, and there are issues labelled good first issue and help wanted to start with. For the marketplace, the website or the end-to-end test, see CONTRIBUTING.md. Questions and ideas for new tools go to Discussions.
If a tool here saves you tokens, a star on this repository helps other people find it. New tools and releases are announced in Discussions, and following @nrzz on GitHub shows them in your feed.
MIT
