{"adoption": {"forks": 605, "observed_at": "2026-08-28T04:07:37.754579+00:00", "stars": 3010}, "canonical_url": "https://ross.abutalabs.com/products/pentestagent", "card": {"archived": false, "artifact_type": "framework", "description": "PentestAgent is an AI agent framework for black-box security testing, supporting bug bounty, red-team, and penetration testing workflows.", "domain": ["security", "penetration-testing", "large-language-models", "developer-tools"], "enriched": true, "function": ["agent-framework", "penetration-testing", "mcp", "llm-inference", "security", "cli", "terminal-ui"], "health_score": 78, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["GH05TCREW/pentestagent"], "name": "GH05TCREW/pentestagent", "platform": ["python", "windows", "cli"], "pushed_at": "2026-08-04T04:39:26+00:00", "repo": "GH05TCREW/pentestagent", "stars": 3010, "tags": ["pentesting", "red-team", "bug-bounty", "blackbox-testing", "ctf-tools", "knowledge-graph", "litellm", "tui", "ai-security", "ai-agents", "command-line", "linux", "macos", "docker"], "topics": ["security-automation", "ai-agents", "ai", "ai-cybersecurity", "ai-hacking", "ai-security-tool", "ctf-tools", "mcp-tools", "pentesting-tools", "red-teaming", "ai-assistant", "knowledge-graph", "blackbox-testing", "llm", "penetration-testing"], "urls": [], "use_cases": ["automate penetration testing with an AI agent", "run red team engagements assisted by LLMs", "solve CTF challenges with AI tooling", "manage bug bounty recon and testing workflows", "run pentesting tools in an isolated Docker container", "build custom AI security testing agents with MCP tools"], "what_it_is": "PentestAgent is a Python-based AI agent framework for black-box penetration testing that orchestrates LLM-driven security testing workflows with a terminal UI and optional Docker-isolated tooling. It supports multiple LLM providers via LiteLLM, MCP tool integration, and ships pre-built Docker images including a Kali-based image with common pentesting tools.", "when_to_avoid": ["you need a compliant, audited commercial pentesting platform", "you want fully automated testing without human oversight or LLM API costs", "you need a lightweight scanner rather than an agent framework"], "when_to_choose": ["you want LLM-assisted black-box security testing with a TUI", "you need Docker-isolated execution of pentest tools", "you want to use any LiteLLM-supported model or a custom API relay", "you need MCP-compatible tooling for security automation"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/pentestagent", "repo": "GH05TCREW/pentestagent", "role": "main", "score": 62}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.754579+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:30:12.173237+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "283e01f303d526103a855a233dac689ad4e50f0ebd3d5af09cc29691d84b4d7d", "fetched_at": "2026-08-28T04:07:37.754579+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GH05TCREW/pentestagent"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.754579+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:30:12.173237+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "283e01f303d526103a855a233dac689ad4e50f0ebd3d5af09cc29691d84b4d7d", "fetched_at": "2026-08-28T04:07:37.754579+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GH05TCREW/pentestagent"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:30:12.173237+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "283e01f303d526103a855a233dac689ad4e50f0ebd3d5af09cc29691d84b4d7d", "fetched_at": "2026-08-28T04:07:37.754579+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GH05TCREW/pentestagent"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.754579+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.754579+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.754579+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:30:12.173237+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "283e01f303d526103a855a233dac689ad4e50f0ebd3d5af09cc29691d84b4d7d", "fetched_at": "2026-08-28T04:07:37.754579+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GH05TCREW/pentestagent"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.754579+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.754579+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:30:12.173237+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "283e01f303d526103a855a233dac689ad4e50f0ebd3d5af09cc29691d84b4d7d", "fetched_at": "2026-08-28T04:07:37.754579+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GH05TCREW/pentestagent"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.754579+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.754579+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.754579+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:30:12.173237+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "283e01f303d526103a855a233dac689ad4e50f0ebd3d5af09cc29691d84b4d7d", "fetched_at": "2026-08-28T04:07:37.754579+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GH05TCREW/pentestagent"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.754579+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.754579+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:30:12.173237+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "283e01f303d526103a855a233dac689ad4e50f0ebd3d5af09cc29691d84b4d7d", "fetched_at": "2026-08-28T04:07:37.754579+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GH05TCREW/pentestagent"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:30:12.173237+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "283e01f303d526103a855a233dac689ad4e50f0ebd3d5af09cc29691d84b4d7d", "fetched_at": "2026-08-28T04:07:37.754579+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GH05TCREW/pentestagent"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:30:12.173237+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "283e01f303d526103a855a233dac689ad4e50f0ebd3d5af09cc29691d84b4d7d", "fetched_at": "2026-08-28T04:07:37.754579+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GH05TCREW/pentestagent"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:30:12.173237+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "283e01f303d526103a855a233dac689ad4e50f0ebd3d5af09cc29691d84b4d7d", "fetched_at": "2026-08-28T04:07:37.754579+00:00", "kind": "readme", "missing": false, "url": "https://github.com/GH05TCREW/pentestagent"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 96, "longevity": 33, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 475, "days_push": 29, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 62, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}