# How to Use the Reverse-Skill Command-Line Interface (CLI): A Complete Powershell Routing Guide

> Master the reverse-skill CLI in PowerShell. This guide shows how to route task hints to security skill modules and access SKILL.md documentation effortlessly. Enhance your security workflow today.

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

---

**The reverse-skill CLI is a lightweight PowerShell wrapper that routes task hints to specialized security skill modules via `master-route.ps1`, automatically dispatching to the appropriate [`SKILL.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/SKILL.md) documentation and helper scripts.**

The **reverse-skill** repository provides a markdown-driven command-line interface for security practitioners working across reverse-engineering, penetration testing, and attack-chain workflows. This guide walks through the complete reverse-skill CLI setup, routing mechanism, and daily usage patterns based on the actual implementation in `zhaoxuya520/reverse-skill`.

## Core CLI Architecture

The reverse-skill CLI follows a **three-stage routing pattern** that keeps the interface minimal while supporting extensible skill modules.

### Primary Components

| Component | Purpose | Source Location |
|-----------|---------|---------------|
| **`master-route.ps1`** | Entry point that parses hints and dispatches to skill modules | `skills/scripts/master-route.ps1` |
| **[`routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/routing.md)** | Human-readable routing table mapping hints to skill directories | [`skills/routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing.md) |
| **[`SKILL.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/SKILL.md) files** | Detailed workflow documentation for each security domain | Various `*/SKILL.md` paths |
| **`bootstrap-reverse.ps1`** | First-run environment initialization | `skills/scripts/bootstrap-reverse.ps1` |
| **Utility scripts** | Task-specific helpers (APK rebuilding, radare2 reconnaissance, etc.) | `skills/**/scripts/*.sh` |

### How the Router Works

When you invoke `master-route.ps1 -Hint "<task>"`, the reverse-skill CLI executes this flow:

1. **Parse Hint** — Extracts the hint string from the `-Hint` parameter.
2. **Lookup Routing Table** — Scans [`skills/routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing.md) for a matching row.
3. **Dispatch** — Changes to the identified skill folder and opens its [`SKILL.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/SKILL.md) or executes associated scripts.

Because the system is **purely markdown-driven**, adding new capabilities requires only a new [`routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/routing.md) entry and corresponding [`SKILL.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/SKILL.md) folder — no code changes to the router itself.

## Initial Setup: Bootstrap the Reverse-Skill CLI

Before using the CLI, initialize your environment with the bootstrap script.

```powershell

# Run once: creates .env placeholders and generates tool-index.md

.\skills\scripts\bootstrap-reverse.ps1

```

The bootstrap script establishes the foundation that `master-route.ps1` depends on for subsequent operations.

After adding new tools to your system, refresh the tool index:

```powershell

# Optional: rescans repository for executable tools

.\skills\scripts\refresh-tool-index.sh

```

## Daily Usage: Routing Tasks with master-route.ps1

The `master-route.ps1` script is the primary reverse-skill CLI interface. Pass a **hint** that matches an entry in [`skills/routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing.md).

### Common CLI Invocations

```powershell

# Android APK reverse-engineering

.\skills\scripts\master-route.ps1 -Hint "apk reverse"

# Windows thick-client analysis

.\skills\scripts\master-route.ps1 -Hint "thick client"

# Web application penetration testing

.\skills\scripts\master-route.ps1 -Hint "web pentest"

# IoT firmware analysis

.\skills\scripts\master-route.ps1 -Hint "iot firmware"

```

The hint string must exist in [`skills/routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing.md). The router performs **fuzzy matching** against human-readable phrases rather than requiring exact directory names.

## Direct Script Execution for Fine-Grained Control

For tasks requiring specific parameters, call utility scripts directly instead of routing through `master-route.ps1`.

```powershell

# Rebuild, re-sign, and install an Android APK

.\skills\apk-reverse\scripts\rebuild-sign-install.sh C:\path\to\target.apk

# Run automated radare2 reconnaissance

.\skills\apk-reverse\scripts\r2-recon.sh C:\path\to\target.apk

```

Direct script calls bypass the routing table and are useful when:
- You need precise control over script arguments
- The task is repetitive and you've memorized the path
- You're integrating reverse-skill into automation pipelines

## Extending the CLI: Adding New Skill Modules

The reverse-skill CLI architecture enables **zero-code extensions**:

1. Create a new directory: `skills/<new-skill>/`
2. Add [`SKILL.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/SKILL.md) with complete workflow documentation
3. Place helper scripts in `skills/<new-skill>/scripts/`
4. Add a routing entry to [`skills/routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing.md):

```markdown
| "new skill hint" | new-skill/ | Brief description |

```

The next `master-route.ps1` invocation will automatically recognize the new capability.

## Key Files Reference

| File | Role |
|------|------|
| `skills/scripts/master-route.ps1` | Main CLI dispatcher with `-Hint` parameter handling |
| `skills/scripts/bootstrap-reverse.ps1` | Environment setup and initial tool indexing |
| [`skills/scripts/refresh-tool-index.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/scripts/refresh-tool-index.sh) | Updates [`tool-index.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/tool-index.md) with newly discovered tools |
| [`skills/routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing.md) | Central routing table mapping hints to module paths |
| [`skills/apk-reverse/SKILL.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/apk-reverse/SKILL.md) | Android reverse-engineering workflow documentation |
| [`skills/thick-client/SKILL.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/thick-client/SKILL.md) | Desktop application analysis procedures |
| [`docs/ARCHITECTURE.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/docs/ARCHITECTURE.md) | High-level system design documentation |

## Summary

- **Install once** with `bootstrap-reverse.ps1` to prepare the reverse-skill CLI environment.
- **Route tasks** via `master-route.ps1 -Hint "<phrase>"` for guided access to [`SKILL.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/SKILL.md) documentation.
- **Bypass routing** with direct script calls when you need specific parameter control.
- **Extend naturally** by adding markdown entries to [`routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/routing.md) — no router modifications required.
- **Maintain currency** by running [`refresh-tool-index.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/refresh-tool-index.sh) after tool installations.

## Frequently Asked Questions

### How do I know what hints are available in the reverse-skill CLI?

Open [`skills/routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing.md) in any text editor. This file contains a markdown table mapping all supported hint phrases to their corresponding skill directories. The hints are designed to be human-readable descriptions like "apk reverse" or "windows pwn" rather than cryptic command flags.

### Can I use the reverse-skill CLI on Linux or macOS?

The core router `master-route.ps1` requires PowerShell, which is available cross-platform through PowerShell Core. However, many utility scripts in `skills/**/scripts/` are written as `.sh` files for POSIX compatibility. Run `bootstrap-reverse.ps1` with `pwsh` on Linux/macOS to verify full functionality.

### What happens if my hint doesn't match anything in routing.md?

`master-route.ps1` will fail gracefully with a message indicating no match was found. The script performs case-insensitive substring matching, so partial hints often succeed. If your hint fails, consult [`skills/routing.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/routing.md) for the exact phrasing used in the routing table.

### Is there a way to list all available tools without opening individual SKILL.md files?

Yes. After running `bootstrap-reverse.ps1`, examine [`skill/tool-index.md`](https://github.com/zhaoxuya520/reverse-skill/blob/main/skill/tool-index.md) which contains an auto-generated inventory of all discovered executables. Run [`refresh-tool-index.sh`](https://github.com/zhaoxuya520/reverse-skill/blob/main/refresh-tool-index.sh) anytime to update this index when you install new tools.