From bopen-tools
Discovers and installs automation hooks for Claude Code and Opencode, including security hooks, git reminders, and linting triggers.
How this skill is triggered — by the user, by Claude, or both
Slash command
/bopen-tools:hook-managerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Help users discover, install, and diagnose automation hooks from the bopen-tools collection.
Help users discover, install, and diagnose automation hooks from the bopen-tools collection.
| Hook | Event | Description | Recommendation |
|---|---|---|---|
protect-env-files | PreToolUse | Blocks edits to .env files (security) | Recommended |
uncommitted-reminder | Stop | Shows uncommitted changes when agent stops | Optional |
auto-git-add | PostToolUse | Auto-stages files after edits | Optional |
time-dir-context | UserPromptSubmit | Adds timestamp/dir/branch to prompts | Optional |
lint-on-save | PostToolUse | Runs lint:fix after file edits | Optional |
lint-on-start | SessionStart | Runs linting on session start | Optional |
auto-test-on-save | PostToolUse | Runs tests after file edits | Optional |
protect-shadcn-components | PreToolUse | Protects shadcn UI components | Optional |
Hooks live in the plugin cache. The exact version path segment varies; use a glob to locate them:
# Claude Code
ls ~/.claude/plugins/cache/bopen-tools/user/.claude/hooks/
# Opencode
ls ~/.opencode/plugins/cache/bopen-tools/user/.claude/hooks/
To install a hook, copy its JSON file to the correct hooks directory and inform the user to restart their agent.
Claude Code:
mkdir -p ~/.claude/hooks
cp ~/.claude/plugins/cache/bopen-tools/user/.claude/hooks/<hook-name>.json ~/.claude/hooks/
Opencode:
mkdir -p ~/.opencode/hooks
cp ~/.opencode/plugins/cache/bopen-tools/user/.claude/hooks/<hook-name>.json ~/.opencode/hooks/
After copying, tell the user: restart Claude Code (or Opencode) for the hook to take effect.
# Claude Code
ls ~/.claude/hooks/
# Opencode
ls ~/.opencode/hooks/
When a user asks what hooks to install without specifying a use case:
protect-env-files first — it is a security safeguard with no downsides.auto-git-add, uncommitted-reminderbun lint:fix: lint-on-save, lint-on-startprotect-shadcn-componentstime-dir-contextBlocks Write/Edit on .env* files. No performance cost. Recommended universally.
Runs on Stop event; exits with code 2 if uncommitted changes exist, feeding the message back to the agent.
Runs git add -A after Write/Edit/MultiEdit. Stages only; never commits. 5s timeout.
Injects Context: <timestamp> | <cwd> | Branch: <branch> into every UserPromptSubmit.
Runs bun lint:fix. Requires lint:fix in package.json and bun + jq on PATH.
Runs tests after file edits. Can be slow on large suites — confirm user wants this before installing.
Blocks edits to shadcn/ui component files. Only relevant when project uses shadcn/ui.
See the hook catalog above for all available hooks and their configurations.
npx claudepluginhub b-open-io/claude-plugins --plugin bopen-toolsAdds, lists, removes, updates, and validates hooks for coding agents (Claude Code, Codex CLI, OpenCode). Use when automating agent behavior with shell commands or plugins.
Configures Claude Code hooks for lifecycle events like PreToolUse, SessionStart, and automation use cases such as formatting enforcement and permission control.
Manages Claude Code repository hooks for adding, configuring, troubleshooting, enabling/disabling, and enforcing rules. Delegates to docs-management for official documentation.