How reverse-skill Implements Multi-Platform Support for Windows, Linux, and macOS

reverse-skill achieves cross-platform compatibility through a platform-agnostic routing core in skills/config/routing.json paired with OS-specific bootstrap scripts that abstract away package manager differences while maintaining uniform capability naming.

The zhaoxuya520/reverse-skill repository provides a unified reverse engineering assistant that runs seamlessly across Windows, Linux, and macOS. Its multi-platform support relies on a clean architectural separation between the decision engine and the installation layer, ensuring consistent skill routing regardless of the underlying operating system.

The Three-Layer Architecture

The project isolates OS-specific logic into dedicated bootstrap and documentation layers while keeping the routing logic completely neutral. This design ensures that skills/config/routing.json serves as the single source of truth for skill definitions across all platforms.

The architecture consists of three distinct layers:

  • Unified routing layer: The routing.json file contains all skill definitions and logical flows without any OS-specific code.
  • Bootstrap layer: Platform-specific scripts handle tool installation using native package managers.
  • Documentation layer: Setup guides provide exact commands for each operating system.

Platform-Agnostic Routing Core

According to the source code in zhaoxuya520/reverse-skill, the routing engine reads skills/config/routing.json to determine skill execution paths. This file contains no platform-specific logic; instead, it relies on skills/tool-index.json (generated at runtime) to locate tools. Whether a binary resides in C:\Program Files\IDA on Windows or /opt/homebrew/bin on macOS, the router handles it identically.

Platform-Specific Bootstrap Scripts

The repository ships separate bootstrap scripts for Windows versus Linux and macOS, exposing identical capability names to ensure the router remains platform-agnostic.

Windows PowerShell Bootstrap

For Windows environments, skills/scripts/bootstrap-reverse.ps1 handles installation using native Windows package managers such as winget and chocolatey. The script installs Java, Python, Node.js, and reverse engineering tools like IDA Pro and Burp Suite. It also processes the --mcp-host parameter to register MCP (Multi-Client-Protocol) capabilities when specified.

Example Windows installation:


# Install tools on Windows using winget/chocolatey:

powershell -NoProfile -ExecutionPolicy Bypass -File skills/scripts/bootstrap-reverse.ps1 `
    -Capabilities "jadx","apktool","frida" -McpHost "codex"

Linux and macOS Bash Bootstrap

Linux and macOS share skills/scripts/bootstrap-reverse.sh, though they use different package managers under the hood. On Linux, the script uses apt (or distro-specific managers) to fetch tools like radare2 and Ghidra. On macOS, it uses Homebrew to install the same capability set, falling back to GitHub releases when formulas are missing.

Example Linux installation:


# Run the Linux bootstrap:

bash skills/scripts/bootstrap-reverse.sh \
    jadx apktool frida

# Refresh the tool index:

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

Example macOS installation with MCP registration:


# Install on macOS with Homebrew and register Claude MCP:

/bin/bash skills/scripts/bootstrap-reverse.sh \
    jadx apktool frida --mcp-host=claude

# Verify tool discovery:

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

Tool Discovery and Indexing

After installation, platform-specific discovery scripts scan the filesystem to build skills/tool-index.json, which maps capability names to actual binary paths.

  • Windows: skills/scripts/refresh-tool-index.ps1 scans the Windows $PATH and known installation directories like C:\Program Files.
  • Linux/macOS: skills/scripts/refresh-tool-index.sh inspects /usr/bin, ~/tools, /opt/homebrew/bin (Apple Silicon), and /usr/local/bin (Intel Macs).

The router consumes this generated index at runtime, enabling it to invoke the correct tool regardless of where it was installed on the host system.

MCP Client Registration

The bootstrap scripts support optional MCP host registration via the --mcp-host flag, keeping the core router client-neutral. Valid options include claude, codex, or both. When specified, the bootstrap writes client-specific configuration files; when omitted, the installation remains client-agnostic and safe for any environment.

Platform-Specific Documentation

Detailed setup instructions reside in dedicated documentation files:

  • docs/platforms/linux.md: Contains baseline apt installation commands, a tool-installation matrix, recommended directory layouts, and MCP registration steps.
  • docs/platforms/macos.md: Documents Homebrew bootstrap procedures, comparable tool matrices, and layout conventions.
  • Windows guidance: Embedded directly within the PowerShell scripts and Windows-specific skill modules like skills/windows-ad/SKILL.md.

Summary

  • reverse-skill implements multi-platform support through a strict separation between platform-agnostic routing logic and OS-specific bootstrap procedures.
  • The routing engine in skills/config/routing.json contains no platform-specific code, relying entirely on skills/tool-index.json for tool resolution.
  • Windows uses bootstrap-reverse.ps1 with winget/chocolatey, while Linux and macOS share bootstrap-reverse.sh using apt and Homebrew respectively.
  • Uniform capability names (e.g., jadx, frida, radare2) across all bootstrap scripts ensure the router works identically on every platform.
  • The refresh-tool-index scripts generate platform-specific path mappings that abstract away installation directory differences.
  • MCP client registration is handled at bootstrap time via the --mcp-host flag, maintaining core neutrality.

Frequently Asked Questions

Does reverse-skill use the same installation script for Linux and macOS?

Yes. Both operating systems use skills/scripts/bootstrap-reverse.sh, but the script detects the platform and uses the appropriate package manager—apt for Linux distributions and Homebrew for macOS. The script also handles platform-specific path differences when installing tools, though it exposes identical capability names to the routing layer.

How does the routing engine handle different installation paths across platforms?

The routing engine reads skills/tool-index.json, which is generated by the platform-specific refresh-tool-index scripts. On Windows, refresh-tool-index.ps1 scans the $PATH and known directories like C:\Program Files, while the Bash version on Linux and macOS checks /usr/bin, ~/tools, and Homebrew prefixes. This lets the router reference tools by capability name rather than absolute path.

Can I use reverse-skill without registering an MCP host?

Yes. The --mcp-host parameter is optional in both bootstrap-reverse.ps1 and bootstrap-reverse.sh. When omitted, the bootstrap installs all requested tools without writing client-specific MCP configuration files, making the setup suitable for any client environment including Claude Code, Codex CLI, or Cursor.

Where are the platform-specific setup instructions documented?

Linux setup details are in docs/platforms/linux.md, macOS instructions are in docs/platforms/macos.md, and Windows guidance is embedded within the PowerShell bootstrap script and the Windows-specific skill modules. All documents provide exact commands for their respective package managers and directory layouts.

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 →