How to Pipe an Entire Category of Skills to Claude Code: 3 Methods Explained
To pipe an entire category of skills to Claude Code, concatenate all SKILL.md files in a category directory and stream them via stdin using cat Skills/<category>/**/SKILL.md | claude --system-file -.
The SnailSploit/Claude-Red repository organizes offensive security techniques into categorized skill files. Each technique lives as a SKILL.md file inside subdirectories under the Skills/ folder (e.g., Skills/web/offensive-sqli/SKILL.md). When you need Claude Code to access every technique within a specific domain—such as web, wireless, or cloud—you can either persistently install the category or stream it directly on demand.
Method 1: Permanent Category Installation with install.sh
The repository includes an install.sh script that copies entire categories into Claude Code's skills directory. This approach preserves the directory layout and makes the skills available for every future session.
Installing a Specific Category
The installer accepts a --category argument that limits the operation to a single top-level folder under Skills/【install.sh†L31-L40】. By default, it targets ~/.claude/skills/claude-red/.
# Install only the "web" category
./install.sh --category web
The script resolves the source directory as Skills/web, creates the target directory structure, and copies all SKILL.md files using rsync if available【install.sh†L97-L102】.
To install to a custom location, specify --target:
./install.sh --category wireless --target ~/.claude/skills/custom
Previewing Changes with --dry-run
Before modifying your filesystem, verify which files would be copied:
./install.sh --category cloud --dry-run
This executes a trial run that lists all files without writing them, ensuring you understand the scope of the installation.
Method 2: Stream a Category Directly via Stdin
For one-off sessions or CI pipelines, you can pipe an entire category directly to Claude Code without persisting files to disk. Claude’s CLI accepts system prompts via stdin when you pass --system-file -.
# Pipe every web skill into Claude Code
cat Skills/web/**/SKILL.md | claude --system-file -
Why Piping Works
The glob pattern Skills/web/**/SKILL.md expands to all markdown files in the category subtree. The --system-file - flag instructs the Claude CLI to read the system prompt from stdin (-), receiving the combined markdown as a single context【README†L48-L55】. This allows Claude to reference the complete methodology for any query within that domain.
Combining with Dry-Run Verification
To verify exactly which files would be included in the stream before execution:
find Skills/web -name SKILL.md -print
This lists the absolute paths of all skills that cat would concatenate, helping you confirm the scope of the context you are about to provide.
Method 3: Sparse Checkout for Minimal Footprint
If you only need one category and want to avoid cloning the entire repository, perform a sparse Git checkout that fetches only the desired folder【README†L44-L46】:
git clone --filter=blob:none --sparse https://github.com/SnailSploit/claude-red
cd claude-red && git sparse-checkout set Skills/web
cat Skills/web/**/SKILL.md | claude --system-file -
This method downloads only the Skills/web tree, then pipes it using the same stdin approach as Method 2. It is ideal for limited-bandwidth environments or when you need isolated, reproducible deployments.
Summary
- Persistent installation using
./install.sh --category <name>copies the entire category to~/.claude/skills/for permanent availability across sessions. - On-demand piping via
cat Skills/<category>/**/SKILL.md | claude --system-file -streams the complete category context without writing files to disk. - Sparse checkout enables you to fetch only a specific category from the repository, minimizing storage and network overhead before piping.
- The repository structure requires each skill to reside in
Skills/<category>/<technique>/SKILL.md, making glob patterns and category filters reliable.
Frequently Asked Questions
What file format does Claude-Red use for skills?
Each offensive security technique is stored as a single SKILL.md file inside its own subdirectory under Skills/<category>/. These markdown files contain the methodology and instructions that Claude Code uses to assist with specific security tasks.
Can I install multiple categories at once?
Yes. Running ./install.sh without the --category flag installs the entire repository. Alternatively, you can run the install script multiple times with different --category arguments to build a custom skill set across several domains.
Does piping skills require write permissions to the Claude skills directory?
No. The piping method streams content directly through stdin via --system-file -, so it never writes to ~/.claude/skills/ or any other directory. This makes it suitable for temporary environments or restricted user accounts.
How do I generate a machine-readable manifest of available skills?
The repository includes tools/build_manifest.py, which generates claude-skills.json. This manifest is useful for programmatic discovery and automation, though it is not required for piping or installation workflows.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →