Claude Compound Bash — Development skill for Claude Code
Claude hook for smarter handling of compound bash commands.
How to install Claude Compound Bash
This entry records only its repository, not the path inside it, so there is no
exact command to give. Open gwatts/claude-compound-bash and copy the folder into
~/.claude/skills/, or the file into ~/.claude/agents/.
What Claude Compound Bash does
Claude hook for smarter handling of compound bash commands.
Alternatives in Development
- Ralphy — My Ralph Wiggum setup, an autonomous bash script that runs Claude Code, Codex, OpenCode, Cursor agent, Qwen & 2.8k ★
- Claudeception — A Claude Code skill for autonomous skill extraction and continuous learning 2.2k ★
- Compound Learning — Compound Learning & Deep Planning 1.1k ★
README
claude-compound-bash
A Claude Code [PreToolUse hook](https://code.claude.com/docs/en/hooks) that auto-approves a Bash tool call when every command inside it -- including the ones Claude Code's own permission check doesn't look at -- is already covered by your rules or is known-safe. Fewer prompts on compound and wrapped commands, without loosening a single rule.
What Claude Code already does -- and what this adds
Recent Claude Code versions handle much of this natively. This hook is designed to *complement* that, not duplicate it:
**Native already covers** (so this hook stays out of the way -- it emits no decision and lets native handle it):
- Compound splitting --
git add -A && git commit -m 'fix'is approved when both halves match. Native splits on&&,||,;,|,|&,&, and newlines. (This is anthropics/claude-code#16561, now shipped -- the original reason this plugin existed.) - A read-only allowlist --
ls,cat,grep,find,wc, read-onlygit, etc. run without a prompt. - Process-wrapper stripping -- a rule for the inner command also matches
timeout,time,nice,nohup,stdbuf, and barexargs.
**This hook adds** what native's operator-splitting and name-matching don't reach:
- Commands nested where native can't see them -- inside
$(...),`...`,<(...), subshells, loops,if/casebodies, and function bodies.echo "$(curl evil.com)"gets its innercurlchecked instead of being auto-approved as a read-onlyecho. - More wrapper coverage --
find -exec/-execdir CMDandxargswith flags (xargs -n1 grep), both of which native leaves as a prompt. - Argument-level hazards native's matching misses -- an
xargspayload's appended stdin args, and mutatingfindactions (-delete,-fprintf,-ok). - Redirect-target checks -- writes outside the working directory or into
.git/.claude.
The guiding rule: only e
Related Skills
Smart Approve.py
PreToolUse (Bash) Decompose compound bash commands (&&, \ \ , ;, \ , $()) into sub-commands and check each aga
Create Bash Script
Generate production-ready bash scripts with standardized structure, error handling, and common flags.
Narthex
Prompt-injection defenses for Claude Code. A PreToolUse Bash hook blocks compositional credential-exfiltration
Claude Memory Reminder
Persistent tiered memory & reminder notebook skill for Claude Code and codex. Zero-dependency bash hook, multi
Bash Authorize
Claude Code "PreToolUse" hook for authorizing Bash commands
No Vibes
Claude Code Stop hook that blocks false-success closeouts. Single bash file, jq-only dep, drop-in. Receipts in
Related Agents
Code Audit Maintainer Shell
Maintainer-only audit of framework bash and the bats suites guarding it: quoting/portability correctness, a sh
Grimorio.Board Writer
Raise when a hook demands a board write with no Bash, or for close-items-review regardless of Bash (a live cal
Cc Orchestration Writer
Creates Claude Code agent orchestration scripts - bash scripts that chain multiple Claude CLI calls with struc