# Platform-Specific Bootstrap Capabilities in Reverse-Skill: Windows vs. Kali Linux Guide

> Explore Reverse-Skill's platform-specific bootstrap capabilities. Learn how separate JSON manifests and PowerShell engines tailor tool installation for Windows and Kali Linux.

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

---

**Reverse-Skill uses separate JSON manifests and PowerShell bootstrap engines to auto-install tools on Windows and Kali Linux, with OS-specific package managers, path conventions, and dependency handling.**

Platform-specific bootstrap capabilities are the foundation of [zhaoxuya520/reverse-skill](https://github.com/zhaoxuya520/reverse-skill)'s portable architecture. The project ships **dedicated manifests per operating system** so that security researchers can run identical reverse-engineering skills on Windows workstations or Kali Linux penetration-testing systems without manual environment setup.

## How Platform-Specific Bootstrap Manifests Work

Reverse-Skill's **bootstrap-manifest** system declares every tool the framework can provision. The engine reads the appropriate manifest based on OS detection, verifies existing installations, and executes targeted install routines.

### Windows Bootstrap Manifest

The Windows manifest at [`skills/scripts/bootstrap-manifest.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/scripts/bootstrap-manifest.json) targets **PowerShell desktop** environments with Windows-centric tooling:

- **Package managers**: `github-release-zip`, `pip-package`, `winget-package`
- **Path conventions**: `%USERPROFILE%` environment variable for install directories
- **Bootstrap dependencies**: `pipx` and `pnpm` installed first to enable subsequent package operations

Each capability entry includes `name`, `bootstrapKind`, `installDir`, `verifyCommand`, and optional `postInstallSteps` for service registration.

### Kali Linux Bootstrap Manifest

The Kali manifest at [`kali/scripts/bootstrap-manifest.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/kali/scripts/bootstrap-manifest.json) declares **Linux-native provisioning**:

- **Platform identifier**: `"platform": "kali-linux"` header
- **Package managers**: `apt-package`, `apt`, `go-install`, `npm-global`
- **Path conventions**: `$HOME` and standard FHS locations
- **Distribution awareness**: `kaliNewTools2026_1` list documents pre-installed tools to skip redundant installation

## Core Bootstrap Engine Architecture

The platform-specific bootstrap capabilities follow a five-stage pipeline implemented in `bootstrap-reverse.ps1`:

| Stage | Function |
|-------|----------|
| **Capability definition** | Parse manifest entries as provisionable tools |
| **OS detection** | Load Windows or Linux manifest based on host |
| **Dependency resolution** | Install `bootstrapDependencies` before dependent tools |
| **MCP registration** | Auto-register MCP servers (e.g., `idalib-mcp`, `ghidra-mcp`) with Claude configuration |
| **Safety validation** | Enforce SHA-256 hashes (`assetSha256`, `preferApiDigest`) and respect `canAutoInstall` flags |

Manual-only capabilities use `bootstrapKind: "manual"` with `manualInstallHint` guidance rather than automated installation.

## Running Platform-Specific Bootstrap Commands

### Windows: Native PowerShell Execution

```powershell

# Install JADX, Nmap, and IDA Pro MCP server with service startup

powershell -NoProfile -ExecutionPolicy Bypass `
  -File skills\scripts\bootstrap-reverse.ps1 `
  -Capability @('jadx','nmap','idapro') `
  -StartServices

```

The `-Capability` array maps to `name` fields in [`skills/scripts/bootstrap-manifest.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/scripts/bootstrap-manifest.json). `-StartServices` executes `postInstallSteps` and binds `servicePort` listeners for MCP servers.

### Kali Linux: PowerShell Core or Bash Wrapper

```bash

# Using PowerShell Core on Kali

pwsh -File skills/scripts/bootstrap-reverse.ps1 \
  -Capability jadx,nmap,ghidra-mcp \
  -StartServices

```

The Linux manifest resolves:
- `jadx` → GitHub release fetch
- `nmap` → `apt-package` installation
- `ghidra-mcp` → Kali repository or GitHub fallback, then port 8765 service start

### Selective Installation Without Services

```powershell

# Windows: verify Frida toolchain only

powershell -File skills\scripts\bootstrap-reverse.ps1 -Capability frida,frida-ps

```

```bash

# Kali: install SecLists and ProxyCat, no MCP startup

pwsh -File skills/scripts/bootstrap-reverse.ps1 -Capability seclists,proxycat

```

## Key Source Files for Platform-Specific Bootstrap

Understanding these paths is essential for customizing platform-specific bootstrap capabilities:

- **[`skills/scripts/bootstrap-manifest.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/scripts/bootstrap-manifest.json)** — Windows capability definitions with `winget-package` and `github-release-zip` installers
- **[`kali/scripts/bootstrap-manifest.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/kali/scripts/bootstrap-manifest.json)** — Kali-specific definitions with `apt-package`, `go-install`, and `kaliNewTools2026_1` pre-installed tool tracking
- **`skills/scripts/bootstrap-reverse.ps1`** — Core cross-platform engine that parses manifests and dispatches install routines
- **[`kali/scripts/bootstrap-reverse.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/kali/scripts/bootstrap-reverse.sh)** — Lightweight Bash wrapper that invokes the PowerShell engine on Linux hosts

## Summary

- **Separate manifests** isolate Windows and Kali Linux tooling without code duplication
- **Bootstrap dependencies** (`pipx`, `pnpm`) guarantee package manager availability before dependent installs
- **MCP auto-registration** bridges installed tools to AI agents via Claude configuration
- **Safety controls** (SHA-256 verification, `canAutoInstall` gating) prevent unvetted automatic installations
- **Unified engine** in `bootstrap-reverse.ps1` executes OS-appropriate routines from a single entry point

## Frequently Asked Questions

### How does Reverse-Skill detect which platform-specific bootstrap manifest to use?

The `bootstrap-reverse.ps1` script performs runtime OS detection and loads [`skills/scripts/bootstrap-manifest.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/scripts/bootstrap-manifest.json) by default on Windows. On Linux systems, the [`kali/scripts/bootstrap-reverse.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/kali/scripts/bootstrap-reverse.sh) wrapper explicitly points the engine to [`kali/scripts/bootstrap-manifest.json`](https://github.com/zhaoxuya520/reverse-skill/blob/main/kali/scripts/bootstrap-manifest.json). This detection happens before any capability resolution or installation begins.

### What happens if a capability requires manual installation?

Capabilities with `bootstrapKind: "manual"` skip automated provisioning. The bootstrap engine logs the `manualInstallHint` string to guide the user through vendor-specific licensing or download steps. The skill can still reference the capability by name once manually installed, as `verifyCommand` confirms presence without requiring `bootstrapKind` execution.

### Can I add custom tools to the platform-specific bootstrap manifests?

Yes. Append entries to either manifest following the established schema: `name`, `bootstrapKind`, `verifyCommand`, and kind-specific fields (`installDir`, `assetUrl`, `aptPackageName`, etc.). The `bootstrap-reverse.ps1` engine dynamically parses manifest additions without code changes. Ensure Windows entries use `%USERPROFILE%` paths and Kali entries use `$HOME` or absolute system paths.

### Why does Kali Linux use PowerShell for bootstrapping instead of pure Bash?

The `bootstrap-reverse.ps1` engine provides **cross-platform capability logic** that would otherwise require maintaining two divergent codebases. The [`kali/scripts/bootstrap-reverse.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/kali/scripts/bootstrap-reverse.sh) wrapper installs PowerShell Core (`pwsh`) if absent, then delegates to the unified engine. This approach guarantees identical dependency resolution, hash verification, and MCP registration behavior across both operating systems.