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

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 -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. 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: A human-readable markdown table listing tool paths, versions, and which SKILL files reference them.
  • 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 -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 -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 -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:

$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 and 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 and 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 and tool-index.json. Alternatively, ensure you did not use the -SkipRefresh switch during the initial bootstrap.

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 →