Ngoto: A Plugin-Based Framework for Automating Pentesting Scripts

I built Ngoto, an extendable Python script handler for automating penetration testing and OSINT scripts — install with pip, extend with simple decorators.

Ngoto: A Plugin-Based Framework for Automating Pentesting Scripts

Years ago I built Ngoto, an extendable Python script handler for automating penetration testing tasks. It started as a way to stop rewriting the same boilerplate every time I put together a small security or OSINT script, and turned into a small open-source tool that other people picked up too.

The problem

Most one-off pentesting or OSINT scripts end up looking the same: a bit of argument parsing, some logging, maybe a scheduler if you want something to run repeatedly, then the actual logic buried in the middle. I kept rebuilding that scaffolding from scratch for every new script, which meant more time spent on plumbing than on the actual task.

I wanted a base I could drop any script into, register it, and have it show up as a proper command, plugin, or scheduled task — without rewriting the surrounding structure every time.

What I built

Ngoto is a lightweight framework you install with pip, then extend with your own Python classes using three decorators:

  • @command — turns a function into a CLI command, with support for aliases
  • @plugin — groups related functionality into a named, foldered plugin
  • @task — schedules a function to run on a delay, useful for recurring or automated jobs

You register your classes with ngoto.load_cogs([...]) and start the tool, and it gives you an interactive console to run commands, trigger plugins, and manage tasks — all logged through a built-in logger. It's designed so anyone can write a new capability as a small class and plug it straight into the framework, rather than building a new script from zero.

Under the hood it's a fairly standard cog/extension-loading pattern (similar in spirit to how some chat bot frameworks structure plugins), applied to the pentesting/OSINT script space where I couldn't find anything quite like it at the time.

Where it landed

The project picked up some traction on GitHub — 39 stars and 9 forks at last count. It is tagged around OSINT, pentesting, and CLI tooling, and is still available to install via pip install ngoto.

It's a good reminder of a problem I keep coming back to: most of my projects start with "I don't want to write this same scaffolding a fourth time."

Repo: github.com/HarryLudemann/Ngoto