ldayton

Dippy — Git skill for Claude Code

Git community intermediate

by Lily Dayton - Auto-approve safe bash commands using AST-based parsing, while prompting for destructive operations.

How to install Dippy

This entry records only its repository, not the path inside it, so there is no exact command to give. Open ldayton/Dippy and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Dippy does

  • 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"

Alternatives in Git

  • TDD Guard — by Nizar Selander - A hooks-driven system that monitors file operations in real-time and blocks changes that v 1.9k ★
  • Claude Code Safety Net — A Claude Code plugin that acts as a safety net, catching destructive git and filesystem commands before they e 1.2k ★
  • Destructive Command Guard — The Destructive Command Guard (dcg) is for blocking dangerous git and shell commands from being executed by ag 869 ★

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](https://github.com/ldayton/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)

brew tap ldayton/dippy
brew install dippy

Manual

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

Configure

...