# Utility Scripts Provided with Claude-Red: Installation, Manifest Generation, and Legacy Conversion

> Explore Claude-Red utility scripts: install.sh for easy setup, build_manifest.py for JSON manifests, and convert_skills.py for legacy format conversion. Streamline your Claude-Red deployment.

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

---

**Claude-Red provides three self-contained utility scripts—[`install.sh`](https://github.com/SnailSploit/Claude-Red/blob/main/install.sh), [`tools/build_manifest.py`](https://github.com/SnailSploit/Claude-Red/blob/main/tools/build_manifest.py), and [`convert_skills.py`](https://github.com/SnailSploit/Claude-Red/blob/main/convert_skills.py)—that automate skill deployment, generate machine-readable JSON manifests, and convert legacy Markdown formats to the current Claude-compatible standard.**

The [SnailSploit/Claude-Red](https://github.com/SnailSploit/Claude-Red) repository includes a dedicated toolchain to streamline the management of its extensive skill collection. These **utility scripts provided with Claude-Red** are written in Bash and Python 3, require no external credentials or network access, and enable offline installation, indexing, and format migration.

## The Three Core Utility Scripts

Claude-Red ships with command-line utilities located in the repository root. Each tool serves a distinct purpose in the skill lifecycle:

- **[`install.sh`](https://github.com/SnailSploit/Claude-Red/blob/main/install.sh)** – A Bash script that copies the `Skills/` directory (or specific categories) into your local Claude skills folder, handling dry-run previews and rsync fallback.
- **[`tools/build_manifest.py`](https://github.com/SnailSploit/Claude-Red/blob/main/tools/build_manifest.py)** – A Python 3 utility that walks the `Skills/` tree, parses [`SKILL.md`](https://github.com/SnailSploit/Claude-Red/blob/main/SKILL.md) front-matter, and produces a compact JSON manifest.
- **[`convert_skills.py`](https://github.com/SnailSploit/Claude-Red/blob/main/convert_skills.py)** – A Python 3 converter that parses legacy Markdown skill files, extracts metadata, and writes reformatted [`SKILL.md`](https://github.com/SnailSploit/Claude-Red/blob/main/SKILL.md) files with proper YAML front-matter and optional ZIP packaging.

## install.sh: Automated Skill Installation

Located at the repository root, [`install.sh`](https://github.com/SnailSploit/Claude-Red/blob/main/install.sh) handles discovery, filtering, and deployment of skill categories to your local environment.

### Discovery and Target Handling

The script scans the `Skills/` directory to identify sub-folders (categories) and counts [`SKILL.md`](https://github.com/SnailSploit/Claude-Red/blob/main/SKILL.md) files. By default, it targets `~/.claude/skills/claude-red`, but accepts a custom destination via `--target <path>`. You can restrict the operation to a single category using `--category <name>`.

### Safety Modes and Copy Methods

[`install.sh`](https://github.com/SnailSploit/Claude-Red/blob/main/install.sh) provides multiple safety and verbosity options:

- **`--dry-run`** – Prints the files that would be copied without making changes.
- **`--list`** – Shows available categories without installing anything.
- **Interactive prompts** – Enabled by default for confirmation before copying.

For file operations, the script prefers `rsync` for progress output, falling back to `cp -r` if `rsync` is not installed.

## tools/build_manifest.py: JSON Manifest Generation

The [`tools/build_manifest.py`](https://github.com/SnailSploit/Claude-Red/blob/main/tools/build_manifest.py) script creates a machine-readable index of the entire skill library by parsing metadata from each skill definition.

### Tree Traversal and Front-Matter Parsing

The utility iterates over every category folder under `Skills/`, locates each [`SKILL.md`](https://github.com/SnailSploit/Claude-Red/blob/main/SKILL.md) file, and extracts the YAML front-matter fields such as `name`, `description`, and other metadata. This parsing builds a comprehensive view of the repository structure without executing any skill code.

### Manifest Structure and Output

The generated [`claude-skills.json`](https://github.com/SnailSploit/Claude-Red/blob/main/claude-skills.json) file contains three primary sections:

- **Repository metadata** – Top-level information about the Claude-Red collection.
- **Categories dictionary** – A mapping of category names to lists of skill names.
- **Flat skill entries** – An array of objects detailing the file path, description, and metadata for each skill.

This JSON file enables downstream tooling to programmatically discover and filter available skills.

## convert_skills.py: Legacy Format Migration

For users migrating from earlier Claude-Red versions, [`convert_skills.py`](https://github.com/SnailSploit/Claude-Red/blob/main/convert_skills.py) transforms outdated Markdown structures into the current [`SKILL.md`](https://github.com/SnailSploit/Claude-Red/blob/main/SKILL.md) specification.

### Stateful Parsing and Normalization

The script recursively discovers legacy [`SKILL.md`](https://github.com/SnailSploit/Claude-Red/blob/main/SKILL.md) or [`skill.md`](https://github.com/SnailSploit/Claude-Red/blob/main/skill.md) files under a source directory and applies stateful parsing to recognize specific sections:

- `## Metadata`

- `## Description`

- `## Trigger Phrases`

- `## Instructions for Claude`

It extracts this content into a structured `meta` dictionary, derives URL-safe slugs from folder names for the `name` field, and assembles proper YAML front-matter blocks containing `name`, `description`, `trigger_phrases`, `folder`, and `source` keys.

### ZIP Packaging for Claude Console

After writing the reformatted [`SKILL.md`](https://github.com/SnailSploit/Claude-Red/blob/main/SKILL.md) to a new `skills-converted/` directory hierarchy, the script optionally bundles each skill folder into a `.zip` archive ready for direct upload to the Claude Console.

## Practical Usage Examples

Run these commands from the repository root to utilize the utility scripts:

```bash

# Install all skills to the default Claude location (interactive)

./install.sh

# Install only the "web" category to a custom directory

./install.sh --target /opt/claude/skills --category web

# Preview what would be copied for the "wireless" category

./install.sh --category wireless --dry-run

# Generate the JSON manifest for downstream tooling

python3 tools/build_manifest.py

# Convert legacy skills and create ZIP archives for upload

python3 convert_skills.py

```

## Summary

The **utility scripts provided with Claude-Red** form a complete deployment and migration toolchain:

- **[`install.sh`](https://github.com/SnailSploit/Claude-Red/blob/main/install.sh)** deploys skills from the `Skills/` directory to `~/.claude/skills/claude-red` with support for category filtering, dry-run verification, and rsync efficiency.
- **[`tools/build_manifest.py`](https://github.com/SnailSploit/Claude-Red/blob/main/tools/build_manifest.py)** generates [`claude-skills.json`](https://github.com/SnailSploit/Claude-Red/blob/main/claude-skills.json) by parsing YAML front-matter across the entire skill tree, creating both categorical mappings and flat indexes.
- **[`convert_skills.py`](https://github.com/SnailSploit/Claude-Red/blob/main/convert_skills.py)** migrates legacy Markdown formats to modern [`SKILL.md`](https://github.com/SnailSploit/Claude-Red/blob/main/SKILL.md) files with standardized YAML headers and packages them into ZIP files for the Claude Console.

Each script operates without external services or secret credentials, making them safe for offline environments.

## Frequently Asked Questions

### Where are the Claude-Red utility scripts located in the repository?

[`install.sh`](https://github.com/SnailSploit/Claude-Red/blob/main/install.sh) and [`convert_skills.py`](https://github.com/SnailSploit/Claude-Red/blob/main/convert_skills.py) reside in the repository root, while [`build_manifest.py`](https://github.com/SnailSploit/Claude-Red/blob/main/build_manifest.py) is located under [`tools/build_manifest.py`](https://github.com/SnailSploit/Claude-Red/blob/main/tools/build_manifest.py). All three are self-contained and executable from the command line.

### Does [`install.sh`](https://github.com/SnailSploit/Claude-Red/blob/main/install.sh) support previewing changes before copying files?

Yes. Run `./install.sh --dry-run` to see exactly which files would be copied to your target directory without making any changes. This works with or without the `--category` flag to filter specific skill sets.

### What specific metadata does [`build_manifest.py`](https://github.com/SnailSploit/Claude-Red/blob/main/build_manifest.py) extract from skill files?

The script parses the YAML front-matter of each [`SKILL.md`](https://github.com/SnailSploit/Claude-Red/blob/main/SKILL.md) file to extract the `name`, `description`, and additional metadata fields, then structures them into a JSON manifest containing both a hierarchical category view and a flat list of all skills.

### How does [`convert_skills.py`](https://github.com/SnailSploit/Claude-Red/blob/main/convert_skills.py) handle legacy skill names?

The converter normalizes skill names by deriving them from the source folder names, sanitizing them into URL-safe slugs. It then writes these normalized names into the YAML front-matter of the newly generated [`SKILL.md`](https://github.com/SnailSploit/Claude-Red/blob/main/SKILL.md) files within the `skills-converted/` output directory.