Repository navigation
claude-relocate and claude-settings-doctor: fifteen tools, hub 1.6.0 #8
nrzz
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Two more tools join the toolkit today, and the hub is at 1.6.0 with fifteen tools: claude-relocate moves Claude Code's config folder somewhere else without breaking anything, and claude-settings-doctor gives your settings comments and shows what Claude Code really merges.
claude-relocate v1.0.0
Claude Code keeps settings, sessions, the plugin cache and
.claude.jsonin~/.claude. If your C: drive is full, or you want the XDG layout (anthropics/claude-code#1455, 460 reactions), the move is by hand today: copy, setCLAUDE_CONFIG_DIRin every shell, find out what ignored it. The tool does the whole thing:plansorts the folder into kinds (settings, sessions, plugins, the plugin cache, state and caches,.claude.json) with sizes, says where each would go and whether there is room, and refuses up front when something is wrong (a destination inside the folder, no room, Claude Code still running).move --to <folder>ormove --xdgmoves everything with file times kept (a rename on the same drive, a checked copy across drives), writesCLAUDE_CONFIG_DIRinto your bash, zsh, fish and PowerShell profiles and the Windows user environment, leaves a junction or symbolic link at the old place with--link, and writes a manifest. Nothing moves without--yes;--dry-runshows the steps.verifychecks the variable in every profile, the folder, the links andclaude --version;statusshows where things are and what each new terminal will see;undoputs everything back from the manifest.What the real binary showed (Claude Code 2.1.295 and 2.1.299 on Windows, 2.1.301 on Linux and macOS in CI, all at zero tokens against a fake API): with
CLAUDE_CONFIG_DIRset,.claude.jsonis read from inside the folder; with the XDG variables set andCLAUDE_CONFIG_DIRunset, Claude Code still writes everything to~/.claudeand ignores asettings.jsonin$XDG_CONFIG_HOME/claude, which is whymove --xdgsets the variable rather than counting on Claude Code. After a move, a session written before it resumes with its whole history, hooks andenvfrom the movedsettings.jsonfire, and a plugin installed before the move still loads. 370 tests, CI green on Windows, macOS and Linux with Node 18 to 24 plus the real-binary jobs. Tokens: 0, there is no plugin. Not verified: the VS Code extension and the desktop app's bundled Claude Code with a moved folder (--linkis the way for anything that ignores the variable).claude-settings-doctor v1.0.0
Settings files take no comments (anthropics/claude-code#17968, 127 reactions), a comment or a trailing comma makes Claude Code ignore the whole file in silence, and five files merge into one object that no command shows.
initwritessettings.jsoncnext tosettings.jsonwith every key explained from the schema;buildwritessettings.jsonfrom it (comments and trailing commas gone, keys and order kept, a backup first);checkexits 1 when the two drifted, for CI or a pre-commit hook;absorbtakes what Claude Code itself wrote intosettings.json(an "Always allow" rule, a/configchange) back into the.jsoncwith the comments kept;watchrebuilds on every save;restoreputs a backup back.showlists the merged settings with the file each key came from and which file wins;lintfinds the comment or trailing comma, keys the schema does not know, wrong types, deprecated keys,envvalues that are not strings and hook entries of the wrong shape;explain <key>prints what the schema says and which file sets it now.settings-doctorhas one user-only skill,/settings-doctor:check: about 340 tokens per use, capped at about 1,000; 0 always-on in the request the model receives (checked against a fake API).What the real binary showed, same setup: in each of 18 files with a comment or a trailing comma (user, project and local), Claude Code ignored the whole file, and
claude -pprinted nothing about it; a wrong-typed value costs the whole file for most keys and only the field inhooksand the MCP lists;envvalues that are not strings arrive asString(value); the higher file wins each key, objects merge key by key, hook lists join. 96 broken settings in a table were put toclaude doctorand to the binary with amodeladded, and the lint says for each one what Claude Code did. 349 tests, 26 of them against the binary; CI green on all three systems, Node 18 to 24. The schema is SchemaStore's of 2026-10-16 and can lag a release, so the lint says so about unknown keys.Hub 1.6.0
--yes), settings doctor with two (show the merged settings, check the files).settings-doctorplugin:/plugin marketplace add nrzz/claude-code-toolkit, then/plugin install settings-doctor@claude-code-toolkit. All twelve plugins together add about 191 always-on tokens by Claude Code's own estimate, under the 200 the end-to-end test allows, and the request the model receives mentions none of the thirteen user-only skills.--yesthat change nothing; and it lints, merges, explains, inits, builds and checks settings in a home of its own, then runs the new plugin's skill from the installed copy. 122 of 122 checks on Windows, macOS and Linux with Claude Code 2.1.301.Both repositories have a good first issue (relocate #1: the drive's free space in
planandstatus; settings-doctor #1:show --only <key>). Ideas for the next tool are welcome here.All reactions