fsociety is a modular penetration testing framework written in Python, distributed under the MIT licence, and intended for security practitioners who want one command-line entry point for discovering and running the tools they need.
What it is
fsociety is an open-source penetration testing framework packaged for the Python ecosystem and published on PyPI as fsociety. It presents itself as a single fsociety command with a small argument surface: -h/--help, -i/--info to print framework information, and -s/--suggest to suggest a tool. The project also ships an official container image at fsocietyteam/fsociety on Docker Hub, so the same command can run inside a container without a local Python environment.
The concrete problem it addresses is tool discovery. A tester facing a task normally has to recall which utility applies, find where it lives, and confirm it is installed; fsociety's --suggest flag turns that into a single query against its own package inventory. Its package list is maintained in PACKAGES.md and its release history in CHANGELOG.md, both linked from the README, so the suggestion set is a curated part of the repository rather than an opaque recommendation. This replaces the manual, ad-hoc hunt through personal notes and package indexes that precedes most engagement work, not any specific commercial product.
Key capabilities
- Modular penetration testing framework driven by the
fsociety CLI, with -i/--info and -s/--suggest as its documented operations.
--suggest returns a tool recommendation, making the framework usable as a discovery index rather than only a runner.
- Installable from PyPI with
pip install fsociety and upgradable in place with pip install --upgrade fsociety.
- Official Docker image
fsocietyteam/fsociety, invoked as docker run -it fsocietyteam/fsociety fsociety.
- Curated tool inventory tracked in
PACKAGES.md, with changes recorded in CHANGELOG.md.
- Documented developer setup via
git clone followed by pip install -e ".[dev]".
- Repository topics place it explicitly in
penetration-testing, osint, cli, docker, and python3 territory, and it targets Python 3.7 and above.
Who uses it and how
- Penetration testers who need to select a tool mid-engagement and prefer a prompt over a browser search.
- OSINT practitioners, an audience the repository's topic list names directly alongside penetration testing.
- Teams that standardise on containers, running the framework from the published
fsocietyteam/fsociety image instead of managing Python packages on each workstation.
- Contributors and maintainers, who work from an editable install with
pip install -e ".[dev]"; the README carries a pull-request invitation badge.
- Operators maintaining an internal tool inventory, who can track the framework's own list through
PACKAGES.md and CHANGELOG.md.
Getting started
Install from PyPI with pip install fsociety, or pull and run the container with docker pull fsocietyteam/fsociety followed by docker run -it fsocietyteam/fsociety fsociety. The same CLI is available immediately after either route.
How it compares
The facts provided name no competing penetration testing frameworks, no paid products it displaces, and no alternative tools in the same registry. On the evidence available, fsociety stands alone here, and any comparison against commercial or sibling frameworks would have to come from outside this directory entry.
When to use it — and when not to
A self-hoster needs only Python 3.7 or newer, or a working Docker runtime; no database, object storage, or mail service is mentioned, so operational overhead is low. The README is thin: it documents three command-line flags, an install path, a Docker path, and a developer setup, and leaves the substance of the tool catalogue to PACKAGES.md and CHANGELOG.md. Anyone expecting guided exploitation workflows, an engagement record, or reporting output should look elsewhere, and the library of 24 open issues is worth reviewing before adopting it as a primary workflow tool.