PortWeft is a lightweight opening-recon orchestrator for authorized assessments. It combines fast TCP discovery, targeted Nmap service enumeration, service-aware follow-ups, optional Impacket reconnaissance, and CVE-focused Nuclei validation into structured text or JSON reports.
PortWeft requires Python 3.10+ and Nmap on PATH.
git clone https://github.com/Henry-Haley/portweft.git
cd portweft
python3 -m portweft --helpRun from this repository root—the directory containing README.md,
pyproject.toml, and the inner portweft/ package. Core use needs no pip
installation. For an installed command, Kali/PEP 668 guidance, and optional
tools, see the installation and usage guide.
python3 -m portweft 192.0.2.10
python3 -m portweft 192.0.2.10 --discovery
python3 -m portweft 192.0.2.10 --full
python3 -m portweft 192.0.2.10 --full --json | jq .--full enables all-port TCP discovery, service-aware Nmap follow-ups,
allowlisted Impacket reconnaissance, and CVE-tagged Nuclei validation. It does
not disable the normal UDP companion scan or safety limits. Optional tools must
be installed before use; explicitly selected RustScan must be on PATH or set
with --rustscan-path.
TCP discovery
↓
targeted Nmap enumeration
↓
service-aware follow-ups
↓
optional Impacket / Nuclei
↓
structured report
Without --discovery, PortWeft starts with Nmap's normal port selection.
Operational messages go to STDERR; the final cumulative report goes to STDOUT
and is also saved with per-host reports. See the
synthetic sample report.
Use PortWeft only on owned systems, labs, CTFs, and explicitly authorized assessments. It does not automate exploitation, credential attacks, or brute forcing. Review the full security and responsible-use policy before scanning.