# How to Set Up the reverse-skill Tool Chain on Windows Using PowerShell Bootstrap Scripts

> Easily set up the reverse-skill tool chain on Windows with PowerShell bootstrap scripts. Automate installations and configurations for a smooth development experience.

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

---

**The reverse-skill repository provides PowerShell bootstrap scripts in `skills/scripts/bootstrap-reverse.ps1` that automate dependency resolution, tool installation via winget/git/npm/pip, MCP server registration, and optional service startup on Windows.**

The **reverse-skill** toolchain from `zhaoxuya520/reverse-skill` delivers a self-contained environment for reverse engineering and security analysis on Windows. Instead of manual configuration, you use PowerShell bootstrap scripts to resolve capabilities, install missing dependencies, and register MCP servers for Claude or Codex. This guide explains how to set up the reverse-skill tool chain on Windows using PowerShell bootstrap scripts with the exact commands and parameters used by the orchestrator.

## Prerequisites and Initial Setup

Before running the bootstrap script, ensure your environment meets the baseline requirements. The script declares `#requires -Version 5`, so **PowerShell 5 or later** is mandatory. For capabilities that install Visual Studio Build Tools, you must run the shell **as Administrator**; the script checks elevation via the `Test-ReverseIsElevated` function.

Open a PowerShell window and navigate to the repository root. If you have not cloned the repository yet, download the `skills/scripts/` directory to your local machine.

## Running the Bootstrap Script

The primary entry point is **`skills/scripts/bootstrap-reverse.ps1`**. This orchestrator handles the entire installation flow, from parsing arguments to starting services.

### Core Parameters

The script accepts several parameters that control the installation scope:

- **`-Capability`**: An array of capability names defined in the bootstrap manifest (e.g., `adb`, `jadx`, `anything-analyzer`). The `Expand-CapabilityDependencies` function automatically expands these into a topologically sorted list.
- **`-StartServices`**: Launches long-running services (e.g., Anything-Analyzer) immediately after installation.
- **`-McpHostTarget`**: Specifies which MCP host to configure. Accepts `Claude`, `Codex`, or `Both`.
- **`-SkipRefresh`**: Omits the final execution of `refresh-tool-index.ps1` if you do not need an updated tool index.

### Basic Installation Command

To install a set of capabilities with full MCP registration and service startup, run:

```powershell
powershell -NoProfile -ExecutionPolicy Bypass `
    -File skills/scripts/bootstrap-reverse.ps1 `
    -Capability @('anything-analyzer','adb','javac') `
    -StartServices `
    -McpHostTarget Both

```

This command triggers the `Ensure-Capability` workflow, which resolves each item in the dependency graph and installs prerequisites before the requested tools.

## What Happens During Installation (Behind the Scenes)

Understanding the internal flow helps debug failures or customize the toolchain.

### Dependency Resolution and Expansion

When you pass the `-Capability` array, the script invokes `Expand-CapabilityDependencies` to build a directed acyclic graph (DAG) of requirements. It top-sorts the graph so that base runtimes (Node, Python, Java) install before dependent tools.

### Runtime and Tool Installation Methods

The bootstrap script selects installation strategies based on the `bootstrapKind` field in [`bootstrap-manifest.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/bootstrap-manifest.json). The `Ensure-Capability` function dispatches to specific installers:

- **`winget-package`**: Calls `Ensure-WingetPackage` to execute `winget install` (e.g., `Google.PlatformTools` for ADB).
- **`github-release-zip`**: Uses `Ensure-GitHubZipInstall` to download the latest release asset, verify its SHA-256 hash, and extract it.
- **`git-clone`**: Performs a shallow clone via `Ensure-GitCloneInstall`.
- **`npm-global`**: Invokes `Ensure-NodeRuntime` to guarantee Node.js is present, then runs `npm install -g`.
- **`pip-package`**: Executes `python -m pip install` through `Ensure-PipPackageInstall`.
- **`go-install`**: Uses `go install` or falls back to a Docker image via `Ensure-Go`.
- **`local-http-mcp`**: Configures an HTTP endpoint for services like Anything-Analyzer using `Ensure-AnythingAnalyzerMcpConfig`.

Runtime functions such as `Ensure-NodeRuntime`, `Ensure-PythonRuntime`, and `Ensure-JavaRuntime` query `winget` to pull the latest language runtimes when missing.

### MCP Server Registration

For each capability, the script builds a server definition via `Get-McpCommandServerDefinition`. It then writes the configuration to the host-specific files:

- **`Set-ClaudeMcpConfig`**: Updates Claude Desktop's MCP settings.
- **`Set-CodexMcpServer`**: Updates Codex CLI configuration.

When `-McpHostTarget Both` is specified, both functions execute, enabling the tool chain in multiple AI environments.

### Optional Service Startup

If you specify `-StartServices`, the script invokes `Start-AnythingAnalyzerService` or `Start-IdaProService` for capabilities marked as `local-http-mcp`. The script waits for the service port (e.g., 23816 for Anything-Analyzer) to become reachable before exiting.

## Refreshing the Tool Index

By default, `bootstrap-reverse.ps1` concludes by invoking **`skills/scripts/refresh-tool-index.ps1`**. This script calls `Get-ReverseToolReport` to scan installed tools and generates two artifacts:

- **[`tool-index.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/tool-index.md)**: A human-readable markdown table listing tool paths, versions, and which SKILL files reference them.
- **[`tool-index.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/tool-index.json)**: A machine-readable payload consumed by the routing engine.

To skip this step during bootstrap, add the `-SkipRefresh` switch. To regenerate the index later, run:

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

```

## Practical Examples

These examples demonstrate common setup scenarios using the exact functions and parameters from the source code.

### Installing a Single Capability (ADB)

To install only the Android Debug Bridge without additional services:

```powershell
powershell -NoProfile -ExecutionPolicy Bypass `
    -File skills/scripts/bootstrap-reverse.ps1 `
    -Capability adb

```

The `Ensure-WingetPackage` function installs `Google.PlatformTools` via winget and updates the system `PATH` environment variable.

### Setting Up Anything Analyzer with Services

For the Anything Analyzer UI with full MCP integration:

```powershell
powershell -NoProfile -ExecutionPolicy Bypass `
    -File skills/scripts/bootstrap-reverse.ps1 `
    -Capability anything-analyzer `
    -StartServices `
    -McpHostTarget Both

```

This expands to install **Node 22**, **pnpm**, **Git**, and the `anything-analyzer` repository. It generates a bearer token, registers the MCP server in both Claude and Codex configs, and executes `pnpm dev` until port 23816 responds.

### Full Reverse Engineering Toolchain

To provision a complete environment for mobile and binary analysis:

```powershell
$caps = @(
    'jadx','apktool','frida','r2','python','node','adb',
    'anything-analyzer','idapro'
)

powershell -NoProfile -ExecutionPolicy Bypass `
    -File skills/scripts/bootstrap-reverse.ps1 `
    -Capability $caps `
    -StartServices `
    -McpHostTarget Both

```

The `Expand-CapabilityDependencies` function resolves the full dependency tree, ensuring Java is present before JADX and Node before Frida. All tools are installed, MCP endpoints are configured, and long-running services are launched.

## Key Files and Architecture

The bootstrap system relies on a modular library structure under `skills/scripts/`:

| File | Purpose |
|------|---------|
| **`bootstrap-reverse.ps1`** | Core orchestrator. Parses arguments, expands dependencies, installs capabilities, registers MCP servers, and starts services. |
| **`refresh-tool-index.ps1`** | Generates [`tool-index.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/tool-index.md) and [`tool-index.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/tool-index.json) by querying the tool catalog via `Get-ReverseToolReport`. |
| **`lib/ToolDiscovery.ps1`** | Helper library that discovers installed tools, resolves their paths, and builds the tool report. |
| **`lib/WorkRoot.ps1`** | Utilities for locating the repository root and temporary directories. |
| **`master-route.ps1`** | Entry point for the primary routing chain; invokes the bootstrap script when a request matches a reverse-skill capability. |

## Summary

- The **reverse-skill** toolchain uses `skills/scripts/bootstrap-reverse.ps1` to automate Windows setup.
- **PowerShell 5+** is required; administrator elevation is needed for Visual Studio Build Tools.
- The `-Capability` parameter accepts an array of tool names, automatically expanded via `Expand-CapabilityDependencies`.
- Installation methods include **winget**, **GitHub releases**, **git clone**, **npm**, **pip**, and **go install**, dispatched by `Ensure-Capability`.
- **MCP registration** is handled by `Set-ClaudeMcpConfig` and `Set-CodexMcpServer`, configurable via `-McpHostTarget`.
- The **`refresh-tool-index.ps1`** script maintains the [`tool-index.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/tool-index.md) and [`tool-index.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/tool-index.json) files used for routing and documentation.

## Frequently Asked Questions

### What PowerShell version is required for reverse-skill?

The bootstrap script declares `#requires -Version 5`, so you need **PowerShell 5 or later**. Run `powershell -Version` to verify your installation before executing `bootstrap-reverse.ps1`.

### How do I install specific tools like JADX or Frida using the bootstrap script?

Pass the capability names to the `-Capability` parameter as an array. For example: `-Capability @('jadx','frida')`. The `Expand-CapabilityDependencies` function resolves the dependency graph and invokes the appropriate installer (e.g., `Ensure-GitHubZipInstall` for GitHub releases or `Ensure-PipPackageInstall` for Python packages).

### Can I configure both Claude and Codex MCP hosts simultaneously?

Yes. Set the `-McpHostTarget` parameter to `Both`. The script will execute both `Set-ClaudeMcpConfig` and `Set-CodexMcpServer`, writing the MCP server definitions to each host's respective configuration file.

### What should I do if the tool index is outdated after installation?

Run `skills/scripts/refresh-tool-index.ps1` manually. This script calls `Get-ReverseToolReport` to scan the current environment and regenerates [`tool-index.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/tool-index.md) and [`tool-index.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/tool-index.json). Alternatively, ensure you did not use the `-SkipRefresh` switch during the initial bootstrap.