Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/froggeric/claude-smart-approvalWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/plugins/froggeric/claude-smart-approval/claude-smart-approval)<a href="https://agentmods.dev/plugins/froggeric/claude-smart-approval/claude-smart-approval"><img src="https://agentmods.dev/badge/plugins/froggeric/claude-smart-approval/claude-smart-approval.svg" alt="Measured on agentmods" height="20"></a>Grade A, and why
smart-approval scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
{
"name": "smart-approval",
"description": "AI permission tier for Claude Code Bash commands: deny-list gate plus smart AI evaluation for unknown commands. Requires Claude Code >= 2.0.45, shfmt, jq (brew install shfmt jq).",
"version": "2.1.0",
"author": {
"name": "Frédéric Guigand"
},
"repository": "https://github.com/froggeric/claude-smart-approval",
"license": "MIT",
"keywords": ["hooks", "bash", "permissions", "compound-commands", "auto-approve", "smart-approval"]
}
What it installs
The manifest is a name and a version. 1 hook travel with it, and installing the plugin installs all of them. Each is measured on its own page, and each can be installed alone.
What ships with it
1 file beside plugin.json in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 7d ago First seen · 12 lines scan A d78cd05e9bbc
smart-approval is a plugin published in the GitHub repository froggeric/claude-smart-approval (4 stars, last pushed 18d ago), licensed MIT. Its token cost is not measured: this kind of file is read by the harness, not the model. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other plugins, from other repositories
audio-hooks
Audio notifications + AI-controlled config for Claude Code, Cursor IDE, and Codex CLI events. 39 hook events + 44 matcher variants, each with its own sound. Desktop toasts, TTS, webhooks, status line + per-subagent rows, rate-limit alerts. Auto-bridges to Cursor IDE 3.2.16+; native install via 'audio-hooks install…
devenv-doctor
Environment doctor for Claude Code — checks git/Node.js/VS Code/Docker/claude-mem health and suggests exact fix commands per OS.
cprof
Select which Claude account a session uses, by default profile, per-repo pin, or directory rule.
claude-timestamp
Stamps every message with the local time and how long the turn took, names the tool behind a slow turn, and reports where a session's time actually went. Claude receives the send time of each prompt, so it can reason about when things happened.
daily-working
End-to-end pipeline: pull a task from Redmine by ID, implement it with the Claude CLI, verify the result in a real browser via the claude-in-chrome extension, and keep the Redmine ticket in sync throughout.
su
Generic plan-orchestration pipeline for Claude Code — walks any structured plan file to completion via scout/executer/verifier subagents with state persistence and per-Part review checkpoints.