no-bash

Installation
SKILL.md

Use Dedicated Tools, Not Bash

Self-Check

Before every Bash call, ask: "Am I reading or searching file contents? Am I running a git command?" If reading/searching files — use fff first, the built-in tool second. If running git commands — route to gh / ! git (exception: git mv stays in Bash). Period.

Why

The reason is not permission clicks: Claude Code runs grep/cat/head/tail/find/wc as native read-only commands with no prompt. Prefer the dedicated tools for three concrete reasons:

  • Grep/Read return clean, paginated, line-numbered results instead of raw terminal dumps the model then re-parses.
  • Built-in tool approvals cache. Unique Bash content, especially cat > file heredocs, never caches, so a human re-reviews it on every run (the heaviest pattern in claude-code#19649).
  • The hook fires where the system prompt fails. The model ignores its own "don't use Bash for this" instruction ~40% of sessions, more after context compaction and in subagents. Anthropic closed that as not-planned (claude-code#39979), so enforcement has to live in a hook.

The hooks plugin (hooks@ronin-skills, optional install) ships the hook (plugins/hooks/hooks/no-bash.mjs) that hard-blocks the wrong Bash calls. This skill is the educational mapping and lives in agent; the hook is the enforcement and lives in hooks. Without the hooks plugin installed, this skill still guides; it just isn't enforced. Full rationale and sources: plugins/hooks/hooks/no-bash.md.

Tool Preference Order

For file search / read

Installs
3
GitHub Stars
1
First Seen
Jul 11, 2026
no-bash — fubits1/ronin-skills