Tool-Index.md Format and Manual Update Guide for Reverse-Skill

tool-index.md is a machine-generated file that catalogs installed security and reverse-engineering tools, and you update it by running platform-specific refresh scripts rather than editing it by hand.

The tool-index.md file serves as the central registry for the zhaoxuya520/reverse-skill repository, mapping which tools are available, where they're located, and whether they're properly registered with the Model Context Protocol (MCP). Understanding its format and update mechanism is essential for maintaining an accurate development environment.

How Tool-Index.md Is Generated (Not Stored)

tool-index.md does not exist in the source tree when you clone the repository. It is excluded from version control via .gitignore because it contains absolute paths and machine-specific data.

The file is produced by bootstrap scripts that inspect your host system, discover installed tools, and emit both a human-readable markdown file and a machine-readable JSON counterpart.

The template defining the layout lives at skills/tool-index.md.template. This template provides:

  • First-run instructions for Windows and Unix systems
  • Table schemas for both platforms
  • A capability status section with standardized symbols

Tool-Index.md Format Structure

A generated tool-index.md contains three major sections derived from the template:

First Run Instructions

Platform-specific commands to generate the initial index, covering PowerShell for Windows and Bash for Linux/macOS/Kali.

Generated Tables

Two table formats depending on your operating system:

Platform Columns
Windows 8 columns: 工具 | 归属 skill | 作用 | 可用 | 路径 | 版本 | 来源 | 脚本引用
Linux/macOS 7 columns: Tool | Skill | Purpose | Available | Path | Version | Install hint

Current Capabilities Snapshot

A compact status table using these symbols:

  • = Yes (ready/available/registered)
  • = No (missing/not ready)
  • = Unknown (replaced after successful refresh)

The template excerpt (lines 26–38) illustrates this structure:

Windows (PowerShell) 生成 8 列表格:
| 工具 | 归属 skill | 作用 | 可用 | 路径 | 版本 | 来源 | 脚本引用 |
Linux/macOS (Bash) 生成 7 列表格:
| Tool | Skill | Purpose | Available | Path | Version | Install hint |
...
| 能力 | 工具可用 | Ready | MCP 已注册 | 服务在线 | 可自动安装 | 安装方式 |
|------|:---:|:---:|:---:|:---:|:---:|--------|

How to Manually Update Tool-Index.md

To refresh the index after installing, removing, or updating tools, execute the appropriate script for your platform.

Windows Update Process

Run the PowerShell script located at skills/scripts/refresh-tool-index.ps1:

powershell -NoProfile -ExecutionPolicy Bypass -File "skills/scripts/refresh-tool-index.ps1"

Linux/macOS/Kali Update Process

Execute the Bash script at [skills/scripts/refresh-tool-index.sh](https://github.com/zhaoxuya520/reverse-skill/blob/main/skills/scripts/refresh-tool-index.sh):

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

What the Scripts Do

  1. Scan for known tools (e.g., jadx, apktool, frida, ida, ghidra-mcp, nmap)
  2. Detect availability, executable path, version, and MCP registration status
  3. Write results to tool-index.md (human-readable) and tool-index.json (machine-readable) in the repository root

Verify and Commit

Open the newly created tool-index.md to confirm tables show or instead of placeholder dashes. By default, the file remains ignored by Git. Temporarily remove it from .gitignore only if you need to version-control a snapshot for CI documentation.

Sample Generated Output

A populated tool-index.md contains actual system data:

| Tool      | Skill          | Purpose            | Available | Path                     | Version | Install hint |
|-----------|----------------|--------------------|----------:|--------------------------|---------|--------------|
| jadx     | reverse-engine | decompile APK      | ✓        | C:\Program Files\jadx\   | 1.4.7   | github-release-zip |
| frida     | mobile-reverse | instrumentation    | ✓        | /usr/local/bin/frida     | 16.0.0 | pip-package |
| nmap      | pentest-tools  | network scanner    | ✗        | —                        | —       | apt-package |

Key Files in the Tool-Index System

Path Purpose
skills/tool-index.md.template Markdown layout template with instructions and table schemas
skills/scripts/refresh-tool-index.ps1 Windows PowerShell discovery and generation script
skills/scripts/refresh-tool-index.sh Linux/macOS/Bash discovery and generation script
tool-index.md (generated) Human-readable tool registry at repository root
tool-index.json (generated) Machine-readable tool data for programmatic access

Summary

  • tool-index.md is generated, not static — it reflects your actual environment and is excluded from Git by default
  • Format varies by platform — 8 columns for Windows, 7 columns for Linux/macOS, both with a capabilities snapshot section
  • Update via scripts only — run refresh-tool-index.ps1 on Windows or refresh-tool-index.sh on Unix systems
  • Always re-run after tool changes — the scripts overwrite the files completely, ensuring synchronization with your system state

Frequently Asked Questions

What happens if I edit tool-index.md by hand?

Manual edits will be lost on the next script execution. The refresh scripts overwrite tool-index.md completely based on live system detection. Modify the template at skills/tool-index.md.template if you need persistent changes to the output format.

Can I track tool-index.md in version control?

Only if you have a specific need, such as CI documentation or shared environment snapshots. The file is .gitignored by default because absolute paths vary across machines. Remove the entry temporarily to commit a snapshot, then restore the ignore rule.

Why are there two generated files (md and json)?

The tool-index.md file provides human-readable documentation for developers, while tool-index.json enables programmatic access for routing engines and automation scripts that parse tool availability without regex parsing markdown tables.

What tools does the discovery script detect?

According to the implementation in skills/scripts/refresh-tool-index.ps1 and its Bash counterpart, the script checks for common reverse-engineering and security tools including jadx, apktool, frida, ida, ghidra-mcp, nmap, and others configured in the detection logic.

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 →