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.jsonfile 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.ps1scans the Windows$PATHand known installation directories likeC:\Program Files. - Linux/macOS:
skills/scripts/refresh-tool-index.shinspects/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 baselineaptinstallation 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.jsoncontains no platform-specific code, relying entirely onskills/tool-index.jsonfor tool resolution. - Windows uses
bootstrap-reverse.ps1with winget/chocolatey, while Linux and macOS sharebootstrap-reverse.shusing 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-indexscripts generate platform-specific path mappings that abstract away installation directory differences. - MCP client registration is handled at bootstrap time via the
--mcp-hostflag, 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:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →