# What Platforms Are Supported by reverse-skill Scripts and Tool Management?

> Discover the platforms supported by reverse-skill tool management including macOS Linux and Windows. Automate installations and manage tools efficiently.

- Repository: [ZhaoXu/reverse-skill](https://github.com/zhaoxuya520/reverse-skill)
- Tags: api-reference
- Published: 2026-08-23

---

**TLDR:** The reverse-skill framework supports **macOS**, **generic Linux** (Ubuntu/Debian), **Kali Linux**, and **Windows** through native bootstrap scripts that automate tool installation, runtime management, and MCP server registration across all four operating system families.

The **reverse-skill** repository by zhaoxuya520 is a cross-platform routing and bootstrap framework designed for security-oriented workflows. It provides a unified interface for installing reverse-engineering tools and managing dependencies, regardless of whether you are working on a MacBook, Ubuntu workstation, Kali Linux VM, or Windows host. Understanding which platforms are supported and how the tool management layer adapts to each environment is essential for deploying reverse-skill effectively.

## Supported Platforms Breakdown

### macOS

On **macOS**, reverse-skill uses [`skills/scripts/bootstrap-reverse.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/scripts/bootstrap-reverse.sh) to detect the Darwin kernel via `uname -s`. The script leverages **Homebrew** for package management and `pipx` for Python-based tools. Users can optionally register MCP servers using the `--mcp-host` flag. Detailed setup instructions and tool matrices are documented in [`docs/platforms/macos.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/docs/platforms/macos.md).

### Linux (Generic)

For **generic Linux** distributions, the same Bash bootstrap script detects the Linux kernel and assumes an APT-based system (Ubuntu/Debian family). The framework installs missing runtimes—**Python 3**, **Node**, and **Java**—via `apt`, and falls back to GitHub releases for tools not available in standard repositories. Platform-specific guidance lives in [`docs/platforms/linux.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/docs/platforms/linux.md).

### Kali Linux

**Kali Linux** is treated as a specialized Linux variant. While it uses the same [`bootstrap-reverse.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/bootstrap-reverse.sh) entry point, the script checks `/etc/os-release` for `ID_LIKE=debian` and the presence of "kali" in the ID string (function `platform_doc()` at lines 67-73). Kali profiles include extra offensive-security packages such as Metasploit and NetExec, documented in [`kali/README-kali.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/kali/README-kali.md).

### Windows

**Windows** support is provided through `skills/scripts/bootstrap-reverse.ps1`, a PowerShell counterpart to the Bash script. It relies on Windows package managers like **Chocolatey** or **winget** and respects PowerShell execution policies. The PowerShell scripts mirror the same capability names and tool installation logic found in the Bash version, ensuring consistency across operating systems.

## How Platform Detection Works

The Bash bootstrap script determines the host platform using a simple `case` statement that inspects the kernel name:

```bash
UNAME_S="$(uname -s 2>/dev/null || echo unknown)"
case "$UNAME_S" in
  Darwin) PLATFORM="macos" ;;
  Linux)  PLATFORM="linux" ;;
  *)      PLATFORM="unknown" ;;
esac

```

This logic appears at lines 34-39 in [`skills/scripts/bootstrap-reverse.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/scripts/bootstrap-reverse.sh). When the platform is Linux, the script further checks for Kali-specific markers to route users to the appropriate documentation and tool preset.

## Cross-Platform Tool Management Workflow

Regardless of the underlying operating system, reverse-skill follows a consistent four-stage workflow to manage tools and runtimes:

1. **Detect platform** — Choose the appropriate package manager (Homebrew for macOS, APT for Linux, Chocolatey/winget for Windows).
2. **Ensure runtimes** — Verify or install **Python 3**, **Node**, and **Java** using helper functions `ensure_python_runtime`, `ensure_node_runtime`, and `ensure_java_runtime` (lines 63-90).
3. **Install capabilities** — Download and configure individual tools (`jadx`, `frida`, `radare2`, etc.) via `install_brew`, `install_brew_cask`, or `install_apt` (lines 27-37).
4. **Refresh tool index** — Run [`skills/scripts/refresh-tool-index.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/scripts/refresh-tool-index.sh) to discover installed binaries and register available MCP servers.

## Practical Platform Examples

### List Available Capabilities on Any Platform

**macOS/Linux/Kali:**

```bash
bash skills/scripts/bootstrap-reverse.sh --list

```

**Windows:**

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

```

### Install Common Tools on macOS

```bash
bash skills/scripts/bootstrap-reverse.sh \
  java node frida r2 \
  --mcp-host=none

```

### Install Tools on Ubuntu Linux

```bash
bash skills/scripts/bootstrap-reverse.sh \
  java node frida r2 \
  --mcp-host=none

```

### Install GitHub-Release Tools on Kali

```bash
bash skills/scripts/bootstrap-reverse.sh jadx \
  --mcp-host=none

```

### Register an MCP Server

```bash
bash skills/scripts/bootstrap-reverse.sh jshookmcp \
  --mcp-host=claude

```

### Refresh the Local Tool Index

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

```

## Summary

- **reverse-skill** officially supports **macOS**, **Linux** (Ubuntu/Debian), **Kali Linux**, and **Windows**.
- Platform detection occurs in [`skills/scripts/bootstrap-reverse.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/scripts/bootstrap-reverse.sh) using `uname -s` and `/etc/os-release` parsing.
- **macOS** uses Homebrew; **Linux** uses APT with GitHub fallbacks; **Windows** uses PowerShell with Chocolatey/winget.
- Runtime dependencies (Python 3, Node, Java) are automatically ensured via `ensure_*_runtime` helper functions.
- The [`refresh-tool-index.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/refresh-tool-index.sh) script synchronizes the local environment with the framework's capability registry on all platforms.

## Frequently Asked Questions

### Which package managers does reverse-skill use on different platforms?

On **macOS**, the framework uses **Homebrew** and `pipx` for tool installation. On **Linux** (including Kali), it uses **APT** for distribution packages and falls back to GitHub releases for tools unavailable in the repository. On **Windows**, it relies on **Chocolatey** or **winget** through the PowerShell bootstrap script.

### How does the bootstrap script distinguish between generic Linux and Kali Linux?

After detecting `Linux` via `uname -s`, the script inspects `/etc/os-release` for `ID_LIKE=debian` and checks if "kali" appears in the ID field. This logic is contained in the `platform_doc()` function (lines 67-73 of [`bootstrap-reverse.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/bootstrap-reverse.sh)) and routes Kali users to [`kali/README-kali.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/kali/README-kali.md) for specialized offensive-security tool configurations.

### Can I use reverse-skill on Windows without disabling the execution policy entirely?

Yes. While the example command uses `-ExecutionPolicy Bypass`, you can also scope the policy to the process or sign the scripts for your environment. The PowerShell scripts in `skills/scripts/bootstrap-reverse.ps1` are designed to work with standard Windows security settings as long as the execution policy permits script signing or remote signed execution.

### What happens if a required runtime like Python or Java is missing?

The bootstrap script automatically invokes helper functions—`ensure_python_runtime`, `ensure_node_runtime`, and `ensure_java_runtime`—to install missing runtimes using the platform's native package manager (Homebrew on macOS, APT on Linux). On Windows, the PowerShell script performs equivalent checks using available Windows package managers.