Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
aradotso avatar

Ai2pentesttool Installer

  • 1 installs
  • 10 repo stars
  • Updated August 4, 2026
  • aradotso/security-skills

AI2PentestTool Installer is a Python CLI that uses an AI agent to automate installing 200+ penetration testing tools across macOS, Linux, and Windows.

About

AI2PentestTool Installer is a Python CLI that automates installing penetration testing tools. It uses an AI agent to generate install plans with retry and error recovery, and falls back to built-in configs offline. Security testers use it to batch-install tools like nmap, sqlmap, and gobuster across macOS, Linux, and Windows. It also exposes a Python API to install tools programmatically.

  • AI-driven installer for 200+ penetration testing tools with retry and error recovery
  • Cross-platform (macOS, Linux, Windows) with offline fallback configs
  • Batch-installs a 15-tool core set (nmap, sqlmap, gobuster, nikto, and more)

Ai2pentesttool Installer by the numbers

  • 1 all-time installs (skills.sh)
  • Ranked #1,834 of 2,203 Security skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
At a glance

ai2pentesttool-installer capabilities & compatibility

Free and open source; OpenAI API key optional for AI install plans, otherwise runs offline with built-in configs.

Capabilities
security audit
Works with
github · openai
Use cases
security audit · devops
Platforms
macOS · Linux · Windows
Pricing
Bring your own API key
From the docs

What ai2pentesttool-installer says it does

AI2PentestTool is an intelligent penetration testing tool installer that uses AI agents to automate the installation of 200+ security tools.
SKILL.md
It features intelligent retry mechanisms, error recovery, cross-platform support (macOS, Linux, Windows), and works offline with built-in configurations when AI services are unavailable.
SKILL.md
Install all default tools (15 core tools)
SKILL.md
npx skills add https://github.com/aradotso/security-skills --skill ai2pentesttool-installer

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1
repo stars10
Last updatedAugust 4, 2026
Repositoryaradotso/security-skills

What it does

Batch-install and manage a suite of penetration testing tools across platforms with AI-generated install plans.

Who is it for?

Penetration testers who want to bootstrap or manage a security-tool suite across operating systems.

Skip if: Static code security auditing or generating attack payloads; it only installs tools.

When should I use this skill?

You need to install or set up penetration testing tools like nmap, sqlmap, or gobuster.

What you get

A batch-installed, verified set of penetration testing tools with AI-driven retry on failures.

  • Installed pentest tools
  • Installation summary report

By the numbers

  • 200+ security tools
  • 15 core tools installed by default

Files

SKILL.mdMarkdownGitHub ↗

AI2PentestTool Installer

Skill by ara.so — Security Skills collection.

AI2PentestTool is an intelligent penetration testing tool installer that uses AI agents to automate the installation of 200+ security tools. It features intelligent retry mechanisms, error recovery, cross-platform support (macOS, Linux, Windows), and works offline with built-in configurations when AI services are unavailable.

Installation

# Clone the repository
git clone https://github.com/penligent/AI2PentestTool.git
cd AI2PentestTool

# Install Python dependencies
pip install -r requirements.txt

# Optional: Set OpenAI API key for AI-powered installation plans
export OPENAI_API_KEY="your-api-key-here"

Core Components

The project consists of four main modules:

  • ai_agent.py - AI agent with retry mechanisms for OpenAI integration
  • config.py - Tool definitions and configuration management
  • tool_installer.py - Installation logic and error handling
  • main.py - Command-line interface

Key Commands

View Available Tools

# Show all 15+ core penetration testing tools
python main.py show-tools

# Check which tools are already installed
python main.py list

Install Single Tool

# Install a specific tool (e.g., nmap)
python main.py install nmap

# Install with sudo if needed (Linux)
sudo python main.py install sqlmap

Batch Installation

# Install all default tools (15 core tools)
python main.py install-default

# Install tools from a custom list file
echo -e "nmap\nsqlmap\ngobuster\nnikto" > my_tools.txt
python main.py install-file my_tools.txt

Supported Tools (15 Core Tools)

Network Scanning

  • nmap - Network discovery and security auditing
  • masscan - Fast TCP port scanner

Information Gathering

  • dig - DNS lookup utility
  • whois - Domain information query
  • amass - Subdomain enumeration
  • theHarvester - Email and domain intelligence

Web Application Testing

  • gobuster - Directory/file brute-forcing
  • sqlmap - Automated SQL injection
  • dirsearch - Web path scanner
  • wfuzz - Web application fuzzer
  • nikto - Web server scanner

Network Tools

  • curl - HTTP client
  • netcat - Network Swiss Army knife
  • traceroute - Network path diagnostics

SSL/TLS Testing

  • sslyze - SSL/TLS configuration analyzer

Configuration

Adding Custom Tools

Edit config.py and add to the TOOLS_INFO dictionary:

TOOLS_INFO = {
    "your_tool": {
        "name": "your_tool",
        "description": "Tool description",
        "macos": "brew install your_tool",
        "linux": "apt update && apt install -y your_tool",
        "windows": "https://download-link.com",
        "verify_command": "your_tool --version",
        "category": "Network Scanning"
    }
}

Environment Variables

# Required for AI-powered installation plans (optional)
export OPENAI_API_KEY="sk-..."

# Optional: Configure proxy for network requests
export https_proxy="http://proxy:port"
export http_proxy="http://proxy:port"

Python API Usage

Using the AIAgent Class

from ai_agent import AIAgent
from config import Config
import os

# Initialize AI agent
api_key = os.getenv("OPENAI_API_KEY")
agent = AIAgent(api_key=api_key)

# Get AI-powered installation plan
tool_info = Config.TOOLS_INFO["nmap"]
plan = agent.get_installation_plan("nmap", tool_info)

if plan:
    print(f"AI Plan: {plan}")
else:
    # Fallback to predefined plan
    import platform
    os_type = platform.system().lower()
    if os_type == "darwin":
        print(f"Fallback: {tool_info['macos']}")
    elif os_type == "linux":
        print(f"Fallback: {tool_info['linux']}")

Using the ToolInstaller Class

from tool_installer import ToolInstaller
import os

# Initialize installer
api_key = os.getenv("OPENAI_API_KEY")
installer = ToolInstaller(api_key=api_key)

# Install a single tool
success = installer.install_tool("nmap")
if success:
    print("Installation successful!")

# Batch install tools
tools = ["nmap", "sqlmap", "gobuster"]
for tool in tools:
    installer.install_tool(tool)

# List installed tools
installed = installer.list_installed_tools()
print(f"Installed tools: {installed}")

Programmatic Installation with Error Handling

from tool_installer import ToolInstaller
from config import Config
import os
import logging

# Set up logging
logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s - %(levelname)s - %(message)s'
)

# Initialize installer
installer = ToolInstaller(api_key=os.getenv("OPENAI_API_KEY"))

# Install tools with error handling
tools_to_install = ["nmap", "sqlmap", "nikto", "gobuster"]
results = {}

for tool in tools_to_install:
    try:
        print(f"\n Installing {tool}...")
        success = installer.install_tool(tool)
        results[tool] = "SUCCESS" if success else "FAILED"
    except Exception as e:
        logging.error(f"Error installing {tool}: {e}")
        results[tool] = "ERROR"

# Summary report
print("\n=== Installation Summary ===")
for tool, status in results.items():
    print(f"{tool}: {status}")

Common Patterns

Creating Custom Tool Lists

# Create a tool list file programmatically
tools = ["nmap", "masscan", "sqlmap", "nikto", "gobuster"]

with open("custom_tools.txt", "w") as f:
    f.write("\n".join(tools))

# Install from the file
import subprocess
subprocess.run(["python", "main.py", "install-file", "custom_tools.txt"])

Checking Tool Installation Status

from tool_installer import ToolInstaller
import subprocess

installer = ToolInstaller()

# Check if a specific tool is installed
def is_tool_installed(tool_name):
    try:
        result = subprocess.run(
            ["which", tool_name],
            capture_output=True,
            text=True
        )
        return result.returncode == 0
    except Exception:
        return False

# Verify installation
tools = ["nmap", "sqlmap", "gobuster"]
for tool in tools:
    status = "✓" if is_tool_installed(tool) else "✗"
    print(f"{status} {tool}")

Batch Installation with Progress Tracking

from tool_installer import ToolInstaller
from config import Config
import os

installer = ToolInstaller(api_key=os.getenv("OPENAI_API_KEY"))

# Get all available tools
all_tools = list(Config.TOOLS_INFO.keys())
total = len(all_tools)

# Install with progress
for idx, tool in enumerate(all_tools, 1):
    print(f"\n[{idx}/{total}] Installing {tool}...")
    success = installer.install_tool(tool)
    status = "✓" if success else "✗"
    print(f"{status} {tool} - {'Success' if success else 'Failed'}")

Workflow Examples

AI-Powered Installation (Recommended)

from ai_agent import AIAgent
from tool_installer import ToolInstaller
from config import Config
import os

# 1. Set up AI agent
api_key = os.getenv("OPENAI_API_KEY")
if not api_key:
    print("Warning: No API key set, using offline mode")

installer = ToolInstaller(api_key=api_key)

# 2. AI analyzes environment and generates plan
# 3. Executes installation commands
# 4. Verifies installation
# 5. Records results to tools_config.json

success = installer.install_tool("sqlmap")

Offline Mode (No API Key)

from tool_installer import ToolInstaller

# Works without OPENAI_API_KEY
installer = ToolInstaller()

# Uses predefined installation commands from config.py
installer.install_tool("nmap")

Troubleshooting

AI Query Failures

from ai_agent import AIAgent
import os

agent = AIAgent(api_key=os.getenv("OPENAI_API_KEY"))

# The agent automatically retries 3 times with 2-second intervals
# If all retries fail, it returns None and falls back to predefined plans
plan = agent.get_installation_plan("nmap", tool_info)

if plan is None:
    print("AI unavailable, using predefined installation plan")

Permission Issues

# Linux: Use sudo for system-wide installation
sudo python main.py install nmap

# macOS: Homebrew usually doesn't need sudo
python main.py install nmap

# Check logs for permission errors
tail -f logs/installation_*.log

Network Connection Issues

import subprocess
import os

# Set proxy if needed
os.environ["https_proxy"] = "http://proxy:8080"
os.environ["http_proxy"] = "http://proxy:8080"

# Test connectivity
def test_network():
    try:
        subprocess.run(
            ["curl", "-I", "https://api.openai.com"],
            timeout=5,
            check=True
        )
        return True
    except Exception:
        return False

if not test_network():
    print("Network issue detected, check proxy settings")

Package Manager Issues

# macOS: Update Homebrew
brew update && brew doctor

# Linux: Update APT
sudo apt update && sudo apt upgrade

# Check package manager lock
ps aux | grep -i apt

Viewing Logs

import glob
import os

# Find latest log file
log_files = glob.glob("logs/installation_*.log")
if log_files:
    latest_log = max(log_files, key=os.path.getctime)
    print(f"Latest log: {latest_log}")
    
    # Read last 20 lines
    with open(latest_log, "r") as f:
        lines = f.readlines()
        print("".join(lines[-20:]))

Configuration Files

tools_config.json

Automatically generated file tracking installed tools:

{
  "nmap": {
    "name": "nmap",
    "description": "Network discovery and security audit tool",
    "path": "/usr/local/bin/nmap",
    "installed_at": "2025-01-15T10:30:00",
    "version": "7.94"
  }
}

Custom Installation Plans

# Modify config.py to customize installation behavior
from config import Config

# Add new tool category
Config.TOOLS_INFO["custom_tool"] = {
    "name": "custom_tool",
    "description": "My custom security tool",
    "macos": "brew install custom_tool",
    "linux": "apt install -y custom_tool",
    "windows": "https://custom-tool.com/download",
    "verify_command": "custom_tool --version",
    "category": "Custom Category"
}

Best Practices

1. Use AI Mode: Set OPENAI_API_KEY for intelligent installation plans 2. Check Logs: Monitor logs/installation_*.log for detailed diagnostics 3. Verify Installation: Always check tool versions after installation 4. Backup Configuration: Save tools_config.json before major changes 5. Network Stability: Ensure stable connection; the system handles temporary failures 6. Permission Management: Use sudo only when prompted by the installer

Related skills

FAQ

Does AI2PentestTool need an API key?

No; the OpenAI API key is optional for AI-powered install plans, and it falls back to built-in configs offline.

Which operating systems are supported?

macOS, Linux, and Windows, each with its own install command per tool.

Securityauditappsec

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.