hoangsonww/config-audit
> Run a full audit of the user's Claude Code configuration via the Agent duplicate or overlapping skills and subagents, hooks that run shell commands, and which surfaces are read-only vs mutable. Reads /api/cc-config/overview, /skills, /agents, /commands, /hooks, and /settings. Use when reviewing your Claude Code setup for sprawl, duplication, or risk.
npx skills add https://github.com/hoangsonww/Claude-Code-Agent-Monitor --skill config-audit
Produce a complete, data-backed audit of how the user's ~/.claude
configuration has grown, what overlaps, and what is risky — all read through
the Agent Monitor dashboard at http://localhost:4820.
The user provides: $ARGUMENTS
This may be:
one surface only.
?cwd= — to audit a project other than thedashboard server's own working directory.
| Endpoint | Returns |
|----------|---------|
| GET /api/cc-config/overview | roots + counts for every surface, split {user,project} where applicable (skills, agents, commands, outputStyles, plugins, mcpServers, hooks, memory, settingsFiles) |
| GET /api/cc-config/skills | { items:[{ scope, name, file, size, mtime, frontmatter, preview }] } |
| GET /api/cc-config/agents | { items:[{ scope, name, file, size, mtime, frontmatter, preview }] } |
| GET /api/cc-config/commands | { items:[{ scope, name, file, size, mtime, frontmatter, preview }] } |
| GET /api/cc-config/hooks | { items:[{ scope, file, exists, hooks:{ <Event>:[{matcher,type,command,timeout}] } }] } |
| GET /api/cc-config/settings | { items:[{ scope, file, exists, data(redacted), raw_size }] } |
From /overview counts, print a table: one row per surface with user,
project, and total columns. Cover skills, agents, commands, output-styles,
plugins (with enabled/disabled), marketplaces, MCP servers, hooks
(user/project/project-local), memory, and settings files. Echo the resolved
roots so the user knows which claudeHome/project was inspected.
Fetch /skills and /agents. Detect:
name at both user and projectscope (project shadows user). List both file paths.
frontmatter.description / previewdescribe the same job. Group them and recommend keeping one.
Flatten /hooks to (scope, file, Event, matcher, type, command, timeout).
Flag every type: "command" entry. Within those, escalate ones that contain
network egress (curl, wget, http, nc) or run unbounded with no
timeout. Print the raw command so the user can review it.
State which surfaces the Config Explorer can mutate (skills, agents, commands,
output-styles, user/project CLAUDE.md, and per-project auto-memory files via
PUT/DELETE /api/cc-config/file) versus those that are read-only by design
(plugins, MCP servers, settings.json and its in-file hooks — written
concurrently by the running CLI). Direct cleanup suggestions only at mutable
surfaces; for read-only ones, name the source file to edit by hand.
Surface | User | Project | Total).file paths.Scope | Event | Matcher | Command | Risk).http://localhost:4820, say so and tellthe user to start it with npm start from the repo root.
Take hoangsonww/config-audit from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.