# How to Pipe an Entire Category of Skills to Claude Code: 3 Methods Explained

> Learn to pipe an entire category of skills to Claude Code efficiently. Discover 3 powerful methods using cat and Claude Red to streamline your workflow and enhance AI capabilities.

- Repository: [SnailSploit | Kai Aizen/Claude-Red](https://github.com/SnailSploit/Claude-Red)
- Tags: how-to-guide
- Published: 2026-09-14

---

**To pipe an entire category of skills to Claude Code, concatenate all [`SKILL.md`](https://github.com/SnailSploit/Claude-Red/blob/main/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`](https://github.com/SnailSploit/Claude-Red/blob/main/SKILL.md) file inside subdirectories under the `Skills/` folder (e.g., [`Skills/web/offensive-sqli/SKILL.md`](https://github.com/SnailSploit/Claude-Red/blob/main/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`](https://github.com/SnailSploit/Claude-Red/blob/main/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/`.

```bash

# 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`](https://github.com/SnailSploit/Claude-Red/blob/main/SKILL.md) files using `rsync` if available【install.sh†L97-L102】.

To install to a custom location, specify `--target`:

```bash
./install.sh --category wireless --target ~/.claude/skills/custom

```

### Previewing Changes with --dry-run

Before modifying your filesystem, verify which files would be copied:

```bash
./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 -`.

```bash

# 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:

```bash
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】:

```bash
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`](https://github.com/SnailSploit/Claude-Red/blob/main/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`](https://github.com/SnailSploit/Claude-Red/blob/main/./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`](https://github.com/SnailSploit/Claude-Red/blob/main/tools/build_manifest.py), which generates [`claude-skills.json`](https://github.com/SnailSploit/Claude-Red/blob/main/claude-skills.json). This manifest is useful for programmatic discovery and automation, though it is not required for piping or installation workflows.