* fix: 🐛 minor typo and build process
* feat: 🎸 [WIP] Pentest mode
* feat: 🎸 code abstraction
* feat: modernize legacy PentestGPT with native multi-LLM support (#469)
Rebuild the classic USENIX-2024 interactive PentestGPT (reasoning / generation /
parsing sessions + Pentesting Task Tree + REPL) as a standalone
`pentestgpt_legacy` package on a native per-provider LLM layer that supports the
latest 2026 models.
- llm/: BaseProvider + OpenAI-compatible / Anthropic / Gemini connectors, a
web-verified model registry (OpenAI, Anthropic, Gemini, DeepSeek, xAI, Qwen,
Moonshot, local Ollama), a factory, and an LLMClient bridging async providers
to the core's synchronous send_new_message/send_message session API.
- CLI `pentestgpt-legacy`: --list-models and --smoke-test (live per-model
round-trip matrix), plus --reasoning-model / --parsing-model / --base-url.
- Tests: 25 unit tests (mocked, no network). Live smoke test verified 22/22
models with a configured key respond.
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
* fix(backend): address review on ClaudeCodeBackend subprocess handling
- _build_env: pop ANTHROPIC_API_KEY instead of setting it to "", so an empty
value can't shadow the CLI's own auth fallback (e.g. subscription login).
- _kill_process: reap the force-killed process with os.waitpid(.., WNOHANG)
instead of calling the proc.wait() coroutine without awaiting it (removes the
"coroutine was never awaited" warning).
- query/_drain_stderr: drain subprocess stderr in a background task so its pipe
buffer can't fill and deadlock the child.
Also reformats backend.py, fixing the failing Lint (ruff format) check.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* fix(docker-test): assert uv instead of Poetry in container health check
The project migrated from Poetry to uv (the Dockerfile installs uv to
/home/pentester/.local/bin, which is on PATH), so test_poetry_installed failed
with exit 127. Replace it with test_uv_installed checking `uv --version`.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
* feat: 🎸 version 1.0 agentic workflow
Major rewrite of PentestGPT to use an agentic pipeline architecture:
Core Changes: - New event-driven architecture with EventBus for
TUI-agent decoupling - Implemented AgentController with 5-state
lifecycle (IDLE->RUNNING->PAUSED->COMPLETED->ERROR) - Added AgentBackend
interface with ClaudeCodeBackend implementation - Session management
with file-based persistence for resumable pentests - Langfuse
integration for observability and tracing Interface: - New Textual-based
TUI with real-time activity feed - Keyboard shortcuts: F1 help, Ctrl+P
pause, Ctrl+Q quit - Enhanced CLI with --target, --instruction,
--non-interactive, --debug flags Project Structure: - Moved legacy
multi-LLM version (v0.15) to legacy/ directory - New pentestgpt/core/
for agent, controller, events, session modules - New
pentestgpt/interface/ for TUI and CLI components - New
pentestgpt/benchmark/ for xbow benchmark integration - Comprehensive
test suite in tests/ with unit and integration tests DevOps: - Docker
support with Ubuntu 24.04 container - GitHub Actions CI/CD pipeline -
Makefile with dev commands (test, lint, format, typecheck) - Added
xbow-validation-benchmarks as submodule
* style: format code with Black
This commit fixes the style issues introduced in abe3be0 according to the output
from Black.
Details: https://github.com/GreyDGL/PentestGPT/pull/325
* fix: 🐛 fix test pipeline
* feat: 🎸 update format
* feat: 🎸 update
---------
Co-authored-by: deepsource-autofix[bot] <62050782+deepsource-autofix[bot]@users.noreply.github.com>