An agentic network pentest tool you talk to.

Open a terminal session and chat with an agent that discovers hosts, fingerprints services, checks for known issues and — when you approve — exploits them to prove impact. It runs on your own model or a deterministic fallback, stays locked to the scope you set, and asks before anything intrusive. Your model, your machine.

curl -fsSL pwner.si/install.sh | bash

macOS and Linux. Builds its own virtualenv, leaves your system Python alone, and puts pwner on your PATH. Read the script · other ways to install

Sample session, fictional lab (10.0.0.0/24). Agent wording and counts are illustrative. The network panel is the live map the agent builds as it goes, hosts to ports to service and version to findings; call it up in session with /topology.

runs on
Python 3.10+KalimacOSLinuxwraps nmap + nuclei(Kali already ships most of the toolchain)
your model
OpenAIDeepSeekAnthropicGeminiOllama / Lemonade (local)none, deterministic(must support tool calling)
output
full-screen terminal TUIfindings: severity + evidence + fixJSON (--json)
WHAT IT ISin short

A conversation with an agent on a leash.

pwner opens a full-screen terminal session you talk to in plain language. Ask it to scan a host or a range and it reasons about what it sees, calls the right tool, reads the result and keeps going, streaming its thinking as it works. It runs on your own model, local or hosted, or a deterministic fallback with no model at all.

Every tool is locked to the target you named and enforced outside the model, so the agent cannot wander off scope. Discovery, fingerprinting and detection are read-only and run freely; brute-force, exploitation, remote command execution, reverse shells and credential dumping are all denied by default and need your approval. The agent cannot approve itself.

RULESresponsible use
Authorized testing only. If you do not have written permission to test a network, do not point pwner at it.
scope lockEvery host-targeting tool refuses any address outside the target you named, enforced at the tool layer, not by the prompt.
consent gatesBrute-force and other intrusive actions are denied by default and need your y/N. The agent cannot approve itself.
read-only firstDiscovery, fingerprinting and detection are read-only and run freely; exploitation and everything active wait for your approval. The raw nmap escape hatch still blocks intrusive scripts.
QUICKSTARTexample commands

Set a key once, then just talk to it.

Install, run pwner once to set your provider and key, then open a session against a lab range and tell the agent what to do. The full walkthrough is in the docs.

curl -fsSL pwner.si/install.sh | bash

The installer builds an isolated virtualenv under ~/.local/share/pwner, leaves your system Python alone and puts pwner on your PATH, so it works from any directory. Add --with-tools for nmap and the scanners, --uninstall to take it back out. nmap is the only hard requirement; on Kali most of the rest is already there. Read it first if you like: pwner.si/install.sh. It is also on PyPI, so pipx install pwner and uv tool install pwner both work.

quickstart.shexample
pwner                        # first run: set provider + key, opens the session
pwner chat 10.0.0.0/24         # talk to the agent; it scans when you ask
pwner scan 10.0.0.5 --no-ai    # deterministic suite, no model needed