CLI tool for CTF management
Project description
pwnv
pwnv is a CLI tool for organizing Capture-the-Flag (CTF) challenges, solving them locally or remotely, and keeping your CTF workflow structured, synchronized, and efficient.
✨ Features
| Feature | Description |
|---|---|
| 🗂 Workspace | Organized folder structure for CTFs and challenges |
| 📦 Virtual Envs | Initializes isolated Python environments using uv |
| 🔄 Remote Sync | Pull challenges directly from CTFd instances using ctfbridge |
| 🚀 Flag Submission | Submit flags to remote platforms directly via CLI |
| 🔎 Challenge Tagging | Add searchable tags to solved challenges (e.g., fsop, xss, buffer overflow) for easy retrieval |
🚀 Quickstart
# 1. Initialize environment
$ pwnv init --ctfs-folder ~/CTF
$ source ~/CTF/.pwnvenv/bin/activate
# 2. Create a CTF
$ pwnv ctf add picoctf-2025
# 3. Add a challenge
$ pwnv challenge add warmup
# 4. Solve the challenge and submit
$ cd warmup
$ pwnv solve
🌐 Fetch from remote CTF
When adding a CTF, you'll have the option to connect to a remote server. If you choose to do so, pwnv will pull all challenges into your local workspace — including attachments — and store .env and .session files for future authenticated access. All of this is powered by ctfbridge.
🧰 Commands
pwnv init Initialize a new workspace (creates folders, installs deps)
pwnv reset Delete config files and/or workspace for a fresh new start
pwnv ctf add Add a CTF (local or remote)
pwnv ctf remove Remove a CTF and all associated challenges
pwnv ctf start/stop Mark a CTF as active or inactive
pwnv challenge add Add a challenge to a CTF
pwnv challenge remove Remove a challenge from a CTF
pwnv challenge filter List solved challenges by tags
pwnv challenge info View metadata for a challenge
pwnv solve Mark a challenge as solved (optional: submit flag to server)
Use --help on any subcommand for more info.
🏗️ Installation
Via pip
pip install pwnv
From source (recommended for dev)
git clone https://github.com/CarixoHD/pwnv
cd pwnv
pip install -e .
📄 License
MIT © Shayan Alinejad
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pwnv-0.3.4.tar.gz.
File metadata
- Download URL: pwnv-0.3.4.tar.gz
- Upload date:
- Size: 81.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
54f6b03f75d5ae16596e061a581534794866e4b6c10a4d75e5cb891f3e6ad623
|
|
| MD5 |
9f7c93461df07bb28309b297430ac7a7
|
|
| BLAKE2b-256 |
6f83a0f4bb3608fd987270813df74334aceb272c85afc2081363db6f145c07f9
|
File details
Details for the file pwnv-0.3.4-py3-none-any.whl.
File metadata
- Download URL: pwnv-0.3.4-py3-none-any.whl
- Upload date:
- Size: 19.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aa89c44afcefedf3131fc96824a8df350b039ad32f3e5557e66c7ea1be6e3053
|
|
| MD5 |
b622d21be6f57128c10b855c2fe665a4
|
|
| BLAKE2b-256 |
91c3f24f9b98799ae881e9833cd1838d0fb2bd167d05428f488b4ca85a5c0067
|