# Tool Installation Methods Supported by reverse-skill: Platform Support and Package Managers

> Discover reverse-skill installation methods supporting apt, apk, Homebrew, Go, npm, and pipx on Linux, macOS, and Windows. Streamline your tool setup.

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

---

**The reverse-skill framework provides a catalog of installation hints covering apt, apk, Homebrew, Go modules, npm, and pipx across Linux, macOS, and Windows, implemented in the [`skills/scripts/refresh-tool-index.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/scripts/refresh-tool-index.sh) script.**

Understanding the tool installation methods supported by reverse-skill is essential for automating security tool deployment across heterogeneous environments. Rather than bundling binaries directly, the repository maintains a dynamic hint system that maps specific tools to their appropriate package managers and installation commands. This architecture allows reverse-skill to recommend platform-specific installation strategies without executing privileged operations on the host system.

## Overview of the Installation Hint System

The reverse-skill repository implements a **detect-only hint generation system** that identifies how tools *could* be installed rather than performing the installations directly. According to the source code in [`skills/scripts/refresh-tool-index.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/scripts/refresh-tool-index.sh), the `install_hint` function (lines 56-84) generates platform-specific strings indicating the correct package manager or installation procedure for each supported tool.

This approach separates detection logic from execution, ensuring the framework remains non-intrusive while providing actionable guidance through the `skills/tool-index.md.template` file populated at runtime.

## Supported Installation Methods by Platform

The installation hints cover three primary operating systems and multiple distribution channels.

### Linux Package Managers

On Linux systems, reverse-skill recognizes several distribution-specific and language-agnostic installation methods:

- **apt** (Debian/Ubuntu): System packages such as `sudo apt install openjdk-17-jdk`
- **apk** (Alpine): Lightweight installations like `sudo apk add binwalk`
- **Go toolchain**: Language-specific binaries via `go install github.com/google/osv-scanner/cmd/osv-scanner@latest`
- **Node.js/npm**: Global packages using `npm install -g @cyclonedx/cdxgen`
- **Python/pipx**: Isolated tool installations such as `pipx install frida-tools`
- **Git-based builds**: Direct cloning with build steps like `git clone` followed by `pnpm install && pnpm dev`
- **Manual installers**: Java ARchives (JAR) and standalone binaries requiring manual execution

### macOS and Homebrew

macOS support leverages Homebrew as the primary system package manager while maintaining parity with Linux language toolchains:

- **Homebrew formulae**: Command-line tools via `brew install openjdk`
- **Homebrew Cask**: GUI applications using `brew install --cask burp-suite`
- **Go, Node, and Python**: Identical `go install`, `npm install -g`, and `pipx` commands as Linux
- **Corepack workflows**: Repository cloning with `corepack enable` and `pnpm install`

### Windows PowerShell Support

For Windows environments, reverse-skill provides PowerShell-compatible hints through the `skills/scripts/refresh-tool-index.ps1` counterpart:

- **Language-specific binaries**: `go install`, `npm install -g`, and `pipx` commands function identically across platforms
- **Git-based installation**: Cloning repositories followed by Windows-appropriate build steps
- **Manual vendor installers**: Licensed software requiring vendor-specific installation procedures

## Core Implementation Details

The installation logic resides primarily in [`skills/scripts/refresh-tool-index.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/scripts/refresh-tool-index.sh). The **`install_hint`** function evaluates the target platform and tool identifier, returning a formatted string combining the package manager name and installation command.

Installation feasibility is determined by the **`can_auto_install`** flag logic (lines 300-340), which assesses whether a given tool supports unattended installation or requires manual intervention. This flag distinguishes between fully automated package manager installations and those requiring user interaction, such as commercial tools with license agreements.

## Querying Installation Hints

You can programmatically retrieve installation hints using both Bash and PowerShell environments.

Retrieve a hint for Frida on Linux using Bash:

```bash
source ./skills/scripts/refresh-tool-index.sh
install_hint "linux:frida"

# Output: pipx: pipx install frida-tools

```

Query the installation method for Nuclei on macOS:

```bash
source ./skills/scripts/refresh-tool-index.sh
install_hint "macos:nuclei"

# Output: brew install nuclei

```

For Windows environments, use the PowerShell equivalent:

```powershell

# Example: Query the installation hint for a tool on Windows

$hint = (Invoke-Expression "./skills/scripts/refresh-tool-index.ps1") | Where-Object { $_ -match '^windows:nmap' }
Write-Host $hint

```

## Summary

- reverse-skill supports **detection-only hints** rather than direct tool installation, implemented in [`skills/scripts/refresh-tool-index.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/scripts/refresh-tool-index.sh).
- The framework covers **Linux** (apt, apk, go install, npm, pipx), **macOS** (brew, brew cask), and **Windows** (PowerShell equivalents).
- The `install_hint` function generates platform-specific strings at lines 56-84 of the main script.
- The `can_auto_install` flag (lines 300-340) distinguishes between automated and manual installation requirements.
- Windows support is provided through the mirrored `skills/scripts/refresh-tool-index.ps1` implementation.

## Frequently Asked Questions

### Does reverse-skill automatically install tools on my system?

No. According to the source code in [`skills/scripts/refresh-tool-index.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/scripts/refresh-tool-index.sh), the framework operates as a **detect-only** system. The `install_hint` function generates recommendations describing how a tool could be installed, but the script never executes privileged installation commands or modifies the host system directly.

### What platforms does reverse-skill support for tool installation hints?

The repository supports **Linux** (Debian/Ubuntu via apt, Alpine via apk), **macOS** (via Homebrew and Homebrew Cask), and **Windows** (via PowerShell scripts). Each platform shares common language-specific installation methods—such as `go install`, `npm install -g`, and `pipx`—while using platform-specific system package managers for native binaries.

### Where are the installation hint definitions located in the source code?

Installation hints are defined in the **`install_hint`** function within [`skills/scripts/refresh-tool-index.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/scripts/refresh-tool-index.sh) (lines 56-84), with a PowerShell mirror in `skills/scripts/refresh-tool-index.ps1`. The runtime template `skills/tool-index.md.template` consumes these hints to generate user-facing documentation, while the `can_auto_install` evaluation logic appears at lines 300-340 of the main shell script.

### Can I add custom installation methods to reverse-skill?

Yes. You can extend the `install_hint` function in [`skills/scripts/refresh-tool-index.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/scripts/refresh-tool-index.sh) to recognize additional package managers or proprietary installation procedures. For Windows-specific customizations, modify the corresponding logic in `skills/scripts/refresh-tool-index.ps1` to ensure cross-platform consistency in hint generation.