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:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →