guardian-cli
Guardian is a production-ready AI-powered penetration testing automation CLI tool that leverages Google Gemini and LangChain to orchestrate intelligent, step-by-step penetration testing workflows while maintaining ethical hacking standards.
Install / Use
npx skills add zakirkun/guardian-cliInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
SecuritySupported Platforms
Our assessment of guardian-cli
guardian-cli scores 74/100 on our quality scale, 1056th of 1,128 Security skills we index.
Its SKILL.md is 9.5 KB long, well organised into 27 sections with 7 code examples: a thorough specification that gives an agent plenty to work with.
It has no GitHub stars yet, so there is no community track record; judge it on its content.
Maintenance, license and trust
- The repository was last updated about 4 months ago. That is recent enough to be usable, but agent tooling moves fast, so check the instructions against your agent's current version.
- Our last check on 2026-09-08 found the source still online.
- No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
- Its trust signals score 78/100, with 2 cautions from licensing, adoption, age or documentation. These come from repository metadata, not a code audit β read the skill file before letting an agent act on it.
guardian-cli compared with similar skills
All 4 of these similar skills score higher than guardian-cli; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| guardian-cli (this skill)by zakirkun | 74 | 0 | 4mo ago | SKILL.md |
| Agent-Reachby Panniantong | 100 | 102.9k | 1d ago | CLAUDE.md |
| Scraplingby D4Vinci | 100 | 89.8k | today | MCP Server |
| algorithmic-artby anthropics | 100 | 177.9k | 33d ago | SKILL.md |
| pptxby anthropics | 100 | 177.9k | 33d ago | SKILL.md |
Frequently asked questions
- How do I install guardian-cli?
- Run
npx skills add zakirkun/guardian-cli. The install tabs above show the steps for each supported agent. - Which AI agents does guardian-cli work with?
- It is written for Claude Code, Gemini CLI and Zed, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is guardian-cli safe to use?
- It declares no license and scores 78/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is guardian-cli still maintained?
- The repository was last updated about 4 months ago. That is recent enough to be usable, but agent tooling moves fast, so check the instructions against your agent's current version.
Skill content
View source on GitHubname: guardian-cli description: > An enterprise-grade, AI-powered penetration testing automation CLI tool. Orchestrates multiple specialized AI agents (Planner, ToolAgent, Analyst, Reporter) backed by 4 AI providers (OpenAI, Claude, Gemini, OpenRouter) and 19 integrated security tools through YAML-defined workflows. Produces professional Markdown, HTML, or JSON security reports with full evidence capture and traceability.
Guardian CLI β Skill Reference
1. Project Overview
Guardian (v2.0) is a Python 3.11+ CLI application that automates penetration testing workflows using a multi-agent AI system. It is designed for authorized security assessments only.
guardian-cli/
βββ ai/ # AI provider integrations & prompt templates
β βββ providers/ # base_provider, openai, claude, gemini, openrouter
β βββ prompt_templates/
βββ cli/ # CLI entry-point (Typer) & commands
β βββ commands/ # init, scan, recon, analyze, report, workflow, ai, models
βββ core/ # Multi-agent orchestration engine
β βββ agent.py # BaseAgent
β βββ planner.py # PlannerAgent β decides next test step
β βββ tool_agent.py # ToolAgent β selects & executes tools
β βββ analyst_agent.py # AnalystAgent β interprets tool output
β βββ reporter_agent.py # ReporterAgent β generates final reports
β βββ memory.py # PentestMemory, ToolExecution, Finding dataclasses
β βββ workflow.py # WorkflowEngine β top-level orchestrator
βββ tools/ # 19 security-tool wrappers (one Python file each)
βββ workflows/ # YAML workflow definitions (8 built-in)
βββ utils/ # logger, scope_validator, helpers
βββ config/ # guardian.yaml configuration file
βββ reports/ # Output directory for generated reports & session state
βββ docs/ # Guides (WORKFLOW_GUIDE, TOOLS_DEVELOPMENT_GUIDE, β¦)
2. Architecture
2.1 Agent Pipeline
Target Input
β
βΌ
WorkflowEngine.run_workflow() ββorββ WorkflowEngine.run_autonomous()
β
ββββΊ PlannerAgent.decide_next_action() β Strategic AI reasoning
β
ββββΊ ToolAgent.execute_tool() β Runs the chosen security tool
β
ββββΊ AnalystAgent.interpret_output() β Parses & links findings to executions
β
ββββΊ ReporterAgent.execute() β Generates markdown / HTML / JSON report
Each agent inherits from BaseAgent and uses a shared PentestMemory object that stores:
| Store | Class | Purpose |
|---|---|---|
| findings | Finding | Vulnerabilities discovered |
| tool_executions | ToolExecution | Full command + raw output |
| completed_actions | list[str] | Phase progress tracker |
| current_phase | str | reconnaissance β scanning β analysis β reporting |
2.2 AI Provider Abstraction
All providers implement the same BaseProvider interface, making them interchangeable at runtime:
| Provider | Env Var | Default Model |
|---|---|---|
| openai | OPENAI_API_KEY | gpt-4o |
| claude | ANTHROPIC_API_KEY | claude-3-5-sonnet-20241022 |
| gemini | GOOGLE_API_KEY | gemini-2.5-pro |
| openrouter | OPENROUTER_API_KEY | anthropic/claude-3.5-sonnet |
Switch provider via config/guardian.yaml or --provider CLI flag.
3. CLI Commands
Run with python -m cli.main <command> (or guardian <command> after installation).
| Command | Purpose |
|---|---|
| init | Create/validate config/guardian.yaml |
| scan | One-shot vulnerability scan on a target |
| recon | Passive / active reconnaissance |
| analyze | Re-analyze an existing session |
| report | Generate / re-generate a report for a session |
| workflow list | List available workflows |
| workflow run | Execute a named workflow against a target |
| ai | Query AI about a finding or custom prompt |
| models | List configured AI providers and models |
| version | Show version |
Common Flags
--target <IP/domain/CIDR> # Required for scan/recon/workflow run
--provider <openai|claude|gemini|openrouter>
--name <workflow-name> # For workflow run
--format <markdown|html|json>
--session <SESSION_ID> # For report regeneration
4. Workflow System
4.1 Running a Workflow
# List available workflows
python -m cli.main workflow list
# Web penetration test
python -m cli.main workflow run --name web_pentest --target https://target.example.com
# Full network assessment
python -m cli.main workflow run --name network --target 192.168.1.0/24
# Autonomous AI-driven pentest
python -m cli.main workflow run --name autonomous --target example.com
4.2 Built-in Workflows
| File | Name | Description |
|---|---|---|
| recon.yaml | recon | Passive + active reconnaissance |
| web_pentest.yaml | web_pentest | HTTP discovery, vuln scan, report |
| network_pentest.yaml | network | Port scan, service detect, analysis |
| advanced_recon.yaml | advanced_recon | Deep subdomain + DNS enumeration |
| full_vuln_scan.yaml | full_vuln_scan | Comprehensive vulnerability sweep |
| wordpress_audit.yaml | wordpress_audit | WordPress-specific audit |
| autonomous.yaml | autonomous | AI-decides-everything mode |
4.3 Workflow YAML Schema
name: my_workflow
description: "Short description"
steps:
- name: http_discovery
type: tool # tool | analysis | report
tool: httpx # tool name (must match tools/ wrapper)
objective: "Describe what to find"
parameters: # Override config/guardian.yaml defaults
tech_detect: true
threads: 100
- name: analyze
type: analysis
agent: analyst
objective: "Correlate findings"
- name: generate_report
type: report
# format defaults to config output.format
settings:
max_parallel_tools: 3
require_confirmation: true
save_intermediate: true
Parameter Priority: Workflow YAML > config/guardian.yaml > Tool defaults
4.4 Fuzzy Workflow Matching
The engine resolves --name web β web_pentest.yaml automatically using substring matching on the filename stem.
5. Integrated Security Tools (19)
| Category | Tools | |---|---| | Network | nmap, masscan | | Web Recon | httpx, whatweb, wafw00f | | Subdomain / DNS | subfinder, amass, dnsrecon | | Vulnerability | nuclei, nikto, sqlmap, wpscan | | SSL/TLS | testssl, sslyze | | Content Discovery | gobuster, ffuf, arjun | | Security Analysis | xsstrike, gitleaks, cmseek |
Each tool has a self-contained Python wrapper in tools/<toolname>.py that:
- Builds the shell command from parameters
- Executes it asynchronously (
asynciosubprocess) - Returns
{"success": bool, "command": str, "raw_output": str, "exit_code": int, "duration": float}
Guardian works with a subset of tools available; the AI adapts based on what is installed.
6. Configuration (config/guardian.yaml)
Key sections:
ai:
provider: openai # Active provider
openai:
model: gpt-4o
api_key: null # Or set OPENAI_API_KEY env var
temperature: 0.2
max_tokens: 8000
pentest:
safe_mode: true # Disable destructive actions
require_confirmation: true
max_parallel_tools: 3
tool_timeout: 300 # seconds
output:
format: markdown # markdown | html | json
save_path: ./reports
verbosity: normal # quiet | normal | verbose | debug
scope:
blacklist: # Never scan these
- 127.0.0.0/8
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
7. Output & Evidence
Every scan session produces:
| File | Contents |
|---|---|
| reports/report_<SESSION_ID>.md | Full penetration test report |
| reports/session_<SESSION_ID>.json | Raw session state (findings, executions, phase) |
Evidence capture includes:
- Execution ID linked to every finding (
execution_idfield onFinding) - Full raw output (up to 2000-char snippets) of every tool run
- AI reasoning trace embedded in reports (when
include_reasoning: true)
Report formats are selected via the output.format config key or the --format CLI flag and map to file extensions .md, .html, .json.
8. Adding a New Tool
- Create
tools/mytool.pyinheriting fromBaseTool(seetools/base_tool.py) - Implement
async def run(self, target: str, **kwargs) -> dict; return the standard result dict - Register the tool in
tools/__init__.py - Reference it by name in any workflow YAML step (
tool: mytool)
See docs/TOOLS_DEVELOPMENT_GUIDE.md for full documentation.
9. Adding a New AI Provider
- Create
ai/providers/myprovider_provider.pyinheritingBaseProvider(ai/providers/base_provider.py) - Implement
async def complete(self, messages, system_prompt) -> dict - Register in
ai/ai_client.pyprovider factory - Add the config block to
config/guardian.yamlunderai:
10. Development
# Setup
python -m venv venv
.\venv\Scripts\activate # Windows
pip install -e ".[dev]"
# Run
python -m cli.main --help
# Test
pytest tests/
# Lint / Format
black .
ruff check .
Core dependencies: typer[all], rich, langchain, langchain-google-genai, langchain-openai, langchain-anthropic, pyyaml, python-dotenv, pydantic, asyncio, aiofiles, jinja2
11. Legal & Ethics
β οΈ Guardian is designed exclusively for authorized security testing and educational purposes.
You are fully responsible for obtaining explicit written permission before testing any system.
Unauthorized access is illegal (CFAA, GDPR, and equivalent laws worldwide).
Related Skills
Agent-Reach
102.9kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu β one CLI, zero API fees.
Scrapling
89.8kπ·οΈ The BEST Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
pptx
177.9kUse this skill any time a .pptx or .potx file is involved in any way β as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an emβ¦
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit β see the Safety scan above for what the skill file itself contains.
