# How to Set Up the Tool Index on Windows, Linux, and macOS in reverse-skill

> Learn how to set up the tool index on Windows, Linux, and macOS. Generate a local catalog of installed reverse-engineering utilities with our step-by-step guide.

- Repository: [ZhaoXu/reverse-skill](https://github.com/zhaoxuya520/reverse-skill)
- Tags: how-to-guide
- Published: 2026-08-06

---

**Run the platform-specific refresh script to generate [`skills/tool-index.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/tool-index.md), a machine-local catalog that records which reverse-engineering utilities are installed.**

The `zhaoxuya520/reverse-skill` repository ships without a tool index, requiring you to initialize it immediately after cloning. This generated file acts as a routing layer that detects existing installations of IDA Pro, Ghidra, Burp Suite, and other utilities without requiring re-installation.

## What Is the Tool Index?

The **tool index** ([`skills/tool-index.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/tool-index.md)) is a Markdown catalogue populated by platform-specific scripts located in `skills/scripts/`. It stores boolean availability flags (✓ for installed, ✗ for missing) that the routing logic uses to determine which capabilities are available on your machine. The repository provides a template at `skills/tool-index.md.template` that the refresh scripts copy and populate during first-run setup.

## Prerequisites

Before generating the index, ensure you have:

- **Windows**: PowerShell 5.1 or later (no administrative elevation required)
- **Linux/macOS**: Bash 4.0+ with standard POSIX utilities
- **Kali Linux**: Bash environment (uses a specialized script path)

Navigate to the repository root in your terminal:

```bash
cd /path/to/reverse-skill

```

## Platform-Specific Setup Instructions

### Windows (PowerShell)

On Windows, the refresh script scans `C:\Program Files`, `C:\Program Files (x86)`, and other common locations for tool executables.

Execute the PowerShell script from the repository root:

```powershell
powershell -File skills/scripts/refresh-tool-index.ps1

```

For execution policy bypass in restricted environments, use:

```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File skills/scripts/refresh-tool-index.ps1

```

### Linux and macOS (Bash)

The generic Unix script checks `/usr/local/bin`, `/opt`, and Homebrew prefixes on macOS.

Run the Bash implementation:

```bash
bash skills/scripts/refresh-tool-index.sh

```

Pipe the output to `less` for paginated review:

```bash
bash skills/scripts/refresh-tool-index.sh | less

```

### Kali Linux (Specialized Script)

Kali distributions include a dedicated script that accounts for penetration-testing tool paths and Kali-specific package locations.

Execute the Kali-specific variant:

```bash
bash kali/scripts/refresh-tool-index.sh

```

## What the Scripts Detect

Each refresh script performs **discovery** by scanning known installation directories and registry locations (Windows) or binary paths (Unix) for:

- **IDA Pro** and IDA Free
- **Ghidra** (including versioned directories)
- **Burp Suite** Community and Professional editions
- **JEB Decompiler**
- **Binary Ninja**
- **GDB**, **LLDB**, and **Radare2**

The scripts populate [`skills/tool-index.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/tool-index.md) with a status table where each tool receives a **✓** (detected) or **✗** (not found) marker.

## Verifying Your Configuration

After execution, confirm the index was generated correctly by inspecting the status markers:

```bash
cat skills/tool-index.md | grep -E '✓|✗'

```

You should see output similar to:

```

- Tool: Ghidra                     ✓
- Tool: IDA Pro                    ✗
- Tool: Burp Suite                 ✓

```

If the file is missing, the scripts automatically create it from `skills/tool-index.md.template` before populating entries.

## Maintaining the Index

Whenever you manually install a new reverse-engineering utility, **re-run the same refresh command** for your platform to update [`skills/tool-index.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/tool-index.md). The scripts are idempotent—running them multiple times overwrites the previous index with current system state, ensuring the routing logic always reflects your actual installed toolset.

## Summary

- The **tool index** ([`skills/tool-index.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/tool-index.md)) is required for `reverse-skill` routing but excluded from version control
- **Windows** users run `skills/scripts/refresh-tool-index.ps1` via PowerShell
- **Linux/macOS** users run [`skills/scripts/refresh-tool-index.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/scripts/refresh-tool-index.sh) via Bash
- **Kali Linux** uses the specialized script at [`kali/scripts/refresh-tool-index.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/kali/scripts/refresh-tool-index.sh)
- Re-execute your platform's script after installing new tools to keep the catalog synchronized

## Frequently Asked Questions

### Why doesn't the repository include tool-index.md by default?

The file is machine-specific by design. Because installation paths differ between systems (e.g., `C:\Program Files\IDA Pro` vs `/opt/idapro`), maintaining a universal index is impossible. The `skills/tool-index.md.template` provides the structure, while the refresh scripts populate it with your local paths according to the source code in `zhaoxuya520/reverse-skill`.

### Can I run the refresh script without installing new tools?

Yes. The scripts are read-only discovery tools that scan for existing installations. They do not download, install, or modify any software—they only update the Markdown catalog at [`skills/tool-index.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/tool-index.md) with detection results.

### What if a tool is installed but marked with ✗?

Verify the tool is in your system `PATH` or installed in a standard location listed in the script source. For custom installation paths, you may need to manually edit [`skills/tool-index.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/tool-index.md) after generation, or re-install the tool to a directory the script scans, such as `/usr/local/bin` on Linux/macOS or `C:\Program Files` on Windows.

### How often should I refresh the tool index?

Refresh immediately after cloning the repository, then again whenever you install, uninstall, or upgrade reverse-engineering utilities. The routing logic references this file to determine capability availability, so stale data may cause task routing to fail for newly installed tools.