Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Inventory hooks across the user, project, and project-local settings plus the ~/.claude/hooks scripts directory — read through the Agent Monitor Config Explorer API — and flag hooks that POST to the network or run arbitrary commands. Reads /api/cc-config/hooks and /api/cc-config/hook-scripts. Use when auditing hook safety.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | -8% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 2% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -16% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -1% | 0% |
| case-08 | ✗→✓ | ▲ Improved | -13% | 0% |
Catalogue every Claude Code hook the user has configured and assess its safety — read through the Agent Monitor dashboard at http://localhost:4820.
The user provides: $ARGUMENTS
This may be:
PreToolUse, PostToolUse, Stop, SubagentStop,SessionStart, SessionEnd, UserPromptSubmit, Notification, PreCompact) — restrict to that event.
~/.claude/hooks handler scripts dir.| Endpoint | Returns | |----------|---------| | GET /api/cc-config/hooks | { items:[{ scope:"user"\|"project"\|"project-local", file, exists, hooks:{ <Event>:[{ matcher, type, command, timeout }] } }] } | | GET /api/cc-config/hook-scripts | { dir, items:[{ name, file, size, mtime }] } — the handler scripts under ~/.claude/hooks/ |
From /hooks, flatten each source into (scope, file, Event, matcher, type, command, timeout). Group by scope (user, project, project-local). Show the event, matcher, hook type, and the raw command. Note which file each came from so the user can edit the right one.
From /hook-scripts, list each file in ~/.claude/hooks/ with name, size (KB), and mtime. Cross-reference: flag scripts referenced by a hook command but missing from disk, and scripts on disk that no configured hook calls (orphaned).
For every type: "command" entry escalate:
curl, wget, http,https, nc, or pipes output off-box. Print the destination if visible.
sh/bash, evaluates downloadedcontent, or runs an unpinned interpreter on attacker-influenceable input.
command hook with timeout: null; it can hang asession indefinitely.
matcher: "*" or empty on a destructive command.Scope | Event | Matcher | Type | Command | Timeout).Hook | Risk | Severity | Detail) with aone-line verdict first (SAFE / REVIEW NEEDED / RISKY HOOKS).
Explorer; edit them in the file named by the source, then reinstall with the dashboard's hook setup if needed.
http://localhost:4820, say so and tellthe user to start it with npm start from the repo root.
Other measured skills in the registry, with their headline benchmark lift.