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)
← all projects