Portscout — nmap TUI
A friendly, graphical terminal UI for nmap built with a clean hexagonal (ports & adapters) architecture. Features real-time progress bars driven by nmap's live stats, streaming logs, notifications, scan profiles, selectable themes, and a responsible-use disclaimer. Open source under MIT.
- Python
- Textual
- nmap
- Hexagonal Architecture
- pytest
- mypy
- TUI
Open-source terminal UI that puts an approachable, keyboard-driven face on nmap.
- Designed a strict hexagonal architecture: a dependency-free domain core, use cases, and swappable adapters (nmap, TOML config, dependency checks)
- Built a graphical Textual TUI with real progress bars parsed from nmap’s live statistics, streaming logs, and notifications
- Added self-validating value objects that make invalid scan targets and port specs unrepresentable, closing the command-injection surface
- Shipped predefined selectable themes, persisted configuration, a dependency doctor, and a responsible-use disclaimer gate
- Fully linted (ruff), type-checked (mypy), and unit-tested (pytest)