Skip to content
Back to skills

Config Audit

ASecurity

Run a full audit of the user's Claude Code configuration via the Agent Monitor Config Explorer API: counts per surface (user vs project), 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.

  • 1,044 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 2, 2026
ai-agentsshellapi

Works with

  • claude code
  • cli
  • api
  • mcp

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 2, 2026

npx -y skills add hoangsonww/Claude-Code-Agent-Monitor --skill config-audit --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Config Audit?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Config Audit
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/hoangsonww-config-audit/badge)](https://www.skillsdirectory.com/skills/hoangsonww-config-audit)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: config-audit
description: >
  Run a full audit of the user's Claude Code configuration via the Agent
  Monitor Config Explorer API: counts per surface (user vs project),
  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.
---

# 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`.

## Input

The user provides: **$ARGUMENTS**

This may be:
- empty or "full" — audit every surface (default).
- "skills" / "agents" / "commands" / "hooks" / "settings" — scope the audit to
  one surface only.
- a project path passed as `?cwd=` — to audit a project other than the
  dashboard server's own working directory.

## Data Sources

| 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 }] }` |

## Report Sections

### 1. Surface inventory (user vs project)
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.

### 2. Duplicate & overlapping skills + agents
Fetch `/skills` and `/agents`. Detect:
- **Name collisions across scope** — same `name` at both user and project
  scope (project shadows user). List both `file` paths.
- **Near-duplicates** — entries whose `frontmatter.description` / `preview`
  describe the same job. Group them and recommend keeping one.

### 3. Hooks that run shell commands
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.

### 4. Read-only vs mutable surfaces
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.

## Output

- A one-line verdict first: CLEAN / SPRAWL DETECTED / RISKY HOOKS.
- Section 1 as a Markdown table (`Surface | User | Project | Total`).
- Section 2 as grouped lists with `file` paths.
- Section 3 as a table (`Scope | Event | Matcher | Command | Risk`).
- Sizes in KB; any cost in USD to 4 decimals; use ▲/▼ for scope deltas.
- Cite only fields the API returned — never fabricate counts or commands.
- If the dashboard is unreachable at `http://localhost:4820`, say so and tell
  the user to start it with `npm start` from the repo root.

Files in this skill

  • SKILL.md3.9 KB
  • agents/openai.yaml266 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.