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
- Scan for known tools (e.g.,
jadx,apktool,frida,ida,ghidra-mcp,nmap) - Detect availability, executable path, version, and MCP registration status
- Write results to
tool-index.md(human-readable) andtool-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.mdis 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.ps1on Windows orrefresh-tool-index.shon 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:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →