What Is bootstrap-reverse.sh? Understanding the Reverse-Skill Linux Bootstrapper
The bootstrap-reverse.sh script is the primary Linux and macOS bootstrapper for the reverse‑skill repository, automating the installation of reverse‑engineering tools, libraries, and MCP servers.
This shell script serves as the Unix counterpart to bootstrap-reverse.ps1, providing a unified entry point for setting up a complete reverse‑engineering development environment. According to the zhaoxuya520/reverse‑skill source code, it handles everything from platform detection to service orchestration through a declarative capability system.
Core Purpose and Architecture
The script's fundamental role is to translate human‑readable capability names into fully configured tooling. Rather than manually installing IDA Pro scripts, Frida bindings, or MCP servers, users declare what they need and the bootstrapper handles the rest.
At skills/scripts/bootstrap-reverse.sh lines 13‑15, the script defines its invocation pattern:
bash skills/scripts/bootstrap-reverse.sh <capability…> [options]
Key architectural components include:
- Platform detection (lines 34‑39): Identifies
Darwinfor macOS orLinuxfor Linux, with fallback to unknown - Tool root management (lines 21‑28): Uses
REVERSE_SKILL_TOOLS_DIR(defaulting to$HOME/tools) as the canonical install location with path validation - Capability expansion (lines 83‑105): Automatically resolves dependencies—for example, requesting
idaproexpands to includeidalib-mcpdependencies
Installation Methods and Package Managers
The bootstrapper abstracts multiple installation channels through dedicated helper functions. As implemented in the reverse‑skill codebase, it can:
# Install from system package managers
apt install <package> # Debian/Ubuntu
brew install <formula> # macOS
# Install from language-specific tools
pipx install <tool>
npm install -g <package>
pnpm add -g <package>
go install <tool>@latest
# Install from GitHub releases with asset pattern matching
install_github_release <owner/repo> <asset_regex> <version>
The GitHub release installer (lines 70‑78 and 100‑108) downloads platform‑appropriate binaries, extracts them to REVERSE_SKILL_TOOLS_DIR, and sets executable permissions.
MCP Server Registration and Service Management
Two flags control advanced behavior for AI assistant integration:
| Flag | Purpose | Source Lines |
|---|---|---|
--mcp-host=claude |
Registers MCP servers for Claude Desktop | 79‑98 |
--mcp-host=codex |
Registers MCP servers for OpenAI Codex | 79‑98 |
--mcp-host=both |
Registers for both clients simultaneously | 79‑98 |
--start-services |
Launches background services and verifies HTTP endpoints | 158‑176, 186‑202 |
The write_mcp_server function (lines 118‑130) generates JSON configuration files in the appropriate host-specific directories, enabling direct tool invocation from AI assistants.
Service startup (lines 158‑176) handles long‑running tools like anything-analyzer or the IDA Pro MCP bridge, including health checks against configured HTTP endpoints before marking installation complete.
Command Examples for Common Workflows
List all supported capabilities before installation:
bash skills/scripts/bootstrap-reverse.sh --list
Install foundational Android reverse‑engineering tools:
bash skills/scripts/bootstrap-reverse.sh jadx apktool frida
Install IDA Pro with full MCP integration and service autostart:
bash skills/scripts/bootstrap-reverse.sh idapro \
--start-services \
--mcp-host=both
Skip the tool index refresh for faster scripting:
bash skills/scripts/bootstrap-reverse.sh ghidra --skip-refresh
Result Reporting and Tool Index
Upon completion, the script emits structured JSON status for each capability (lines 346‑376):
ready: Fully installed and operationalmanual-required: Requires user interaction (e.g., license activation)registration-required: MCP registration pendingfailed: Installation error with logged details
Unless --skip-refresh is specified, the bootstrapper invokes skills/scripts/refresh-tool-index.sh (lines 426‑440) to regenerate skills/tool-index.md, maintaining synchronized documentation of the environment state.
Related Files in the Reverse-Skill Ecosystem
| File | Responsibility |
|---|---|
skills/scripts/bootstrap-reverse.sh |
Main bootstrapper (this article's subject) |
skills/scripts/bootstrap-manifest.json |
Declarative definitions of all capabilities, versions, and dependencies |
skills/scripts/refresh-tool-index.sh |
Documentation synchronizer |
kali/scripts/bootstrap-reverse.sh |
Kali Linux wrapper that delegates to the main script |
skills/config/routing.json |
Determines automatic bootstrap invocation contexts |
Summary
bootstrap-reverse.shis the canonical Linux/macOS entry point for reverse‑skill environment setup- It detects platform, expands dependencies, and installs via multiple package managers or GitHub releases
- MCP registration enables Claude and Codex to invoke installed tools directly
- Service management handles background processes with health verification
- The JSON result format supports automation and CI/CD integration
Frequently Asked Questions
What is the difference between bootstrap-reverse.sh and bootstrap-reverse.ps1?
The .sh version targets Linux and macOS systems using Bash, while the .ps1 version serves Windows environments using PowerShell. Both consume the same bootstrap-manifest.json, ensuring capability parity across platforms.
Where does bootstrap-reverse.sh install tools by default?
Tools install to $HOME/tools unless overridden by the REVERSE_SKILL_TOOLS_DIR environment variable. The script validates this path against directory traversal attacks before use.
Can I use bootstrap-reverse.sh without registering MCP servers?
Yes. MCP registration is entirely optional. Omit the --mcp-host flag and the script performs only tool installation without touching Claude or Codex configuration files.
What happens if a service fails to start with --start-services?
The script logs the failure, marks the capability status as failed in the JSON output, and continues with remaining capabilities. Check the emitted status object or logs for specific endpoint verification failures.
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 →