Claude Code hook

Dippy

Less permission fatigue, more momentum. Dippy knows what’s safe to run and keeps Claude on track when plans change.

245 stars 22 forksHooks Source

Install

Install
brew install dippy

Found in the project README. Check it for setup steps after installing.

From source
git clone https://github.com/ldayton/Dippy.git

From the README

🐤 Dippy
Because ls shouldn't need approval

Stop the permission fatigue. Claude Code asks for approval on every ls, git status, and cat - destroying your flow state. You check Slack, come back, and your assistant's just sitting there waiting.

Dippy is a shell command hook that auto-approves safe commands while still prompting for anything destructive. When it blocks, your custom deny messages can steer Claude back on track—no wasted turns. Get up to 40% faster development without disabling permissions entirely.

Built on Parable, our own hand-written bash parser—no external dependencies, just pure Python. 14,000+ tests between the two.

*Example: rejecting unsafe operation in a chain*

*Example: rejecting a command with advice, so Claude can keep going*

✅ What gets approved

- Complex pipelines: ps aux | grep python | awk '{print $2}' | head -10
- Chained reads: git status && git log --oneline -5 && git diff --stat
- Cloud inspection: aws ec2 describe-instances --filters "Name=tag:Environment,Values=prod"
- Container debugging: docker logs --tail 100 api-server 2>&1 | grep ERROR
- Safe redirects: grep -r "TODO" src/ 2>/dev/null, ls &>/dev/null
- Command substitution: ls $(pwd), git diff foo-$(date).txt

🚫 What gets blocked

- Subshell injection: git $(echo rm) foo.txt, echo $(rm -rf /)
- Subtle file writes: curl https://example.com > script.sh, tee output.log
- Hidden mutations: git stash drop, npm unpublish, brew unlink
- Cloud danger: aws s3 rm s3://bucket --recursive, kubectl delete pod
- Destructive chains: rm -rf node_modules && npm install (blocks the whole thing)

Installation

Homebrew (recommended)

Manual

Configure

Add to ~/.claude/settings.json (or use /hooks interactively):

If you installed manually, use the full path instead:…
Read the full README on GitHub

How hooks work

  • Hooks are shell commands Claude Code runs at fixed points: before or after a tool call, when you submit a prompt, when Claude stops, on notifications and at session start.
  • They are set in the hooks section of ~/.claude/settings.json (or .claude/settings.json for a project), or come bundled in a plugin.
  • A hook can block a tool call, add context, or run a formatter or test. Read the scripts before you install them: they run on your machine with your permissions.
Claude Code docs

Details

Repository
ldayton/Dippy
Type
Hooks
Language
Python
License
MIT
Last updated
12 June 2026
Topics
bashclaude-codeclihookpermissionspython

FAQ

What is Dippy?

Less permission fatigue, more momentum. Dippy knows what’s safe to run and keeps Claude on track when plans change. It is a hook for Claude Code, from ldayton/Dippy on GitHub.

How do I install Dippy?

Run brew install dippy, then follow the setup in the README.

Is Dippy popular?

ldayton/Dippy has 245 GitHub stars and 22 forks, and is included in 1 curated Claude Code list. It was last updated on 12 June 2026.

More hooks

Browse the most popular Claude Code mods, all hooks, or the skills and MCP server directories.