Command-line tool to download CTF challenges
Project description
ctf-dl
Fast and flexible challenge downloader for all major CTF platforms
Features • Install • Quickstart • Examples • License
🔧 Features
- 🔽 Download all challenges from supported CTFs
- 🎯 Apply filters by category, points, or solve status
- 🗂️ Organize challenges with customizable Jinja2 templates
- 🌐 Supports CTFd, rCTF, GZCTF, HTB, EPT, Berg, CryptoHack, pwn.college, and pwnable.{tw,kr,xyz} via ctfbridge
📦 Installation
Run directly with uv:
uvx ctf-dl
Or install permanently with pip:
pip install ctf-dl
🚀 Quickstart
ctf-dl https://demo.ctfd.io -u user -p password
💡 Examples
# Download all challenges
ctf-dl https://ctf.example.com
# Specify output directory
ctf-dl https://ctf.example.com -o example-ctf/
# Filter by categories
ctf-dl https://ctf.example.com --categories Web Crypto
# Overwrite existing challenges
ctf-dl https://ctf.example.com --update
# Compress output
ctf-dl https://ctf.example.com --zip
# Use JSON output format
ctf-dl https://ctf.example.com --output-format json
# List available templates
ctf-dl --list-templates
📁 Default Output Structure
challenges/
├── README.md
├── pwn/
│ ├── rsa-beginner/
│ │ ├── README.md
│ │ └── files/
│ │ ├── chal.py
│ │ └── output.txt
├── web/
│ ├── sql-injection/
│ │ ├── README.md
│ │ └── files/
│ │ └── app.py
🤝 Contributing
Contributions are welcome! See ctfbridge regarding platform support, or open an issue or pull request to improve ctf-dl itself.
🪪 License
MIT License © 2025 bjornmorten
Project details
Release history Release notifications | RSS feed
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 ctf_dl-0.3.3.tar.gz.
File metadata
- Download URL: ctf_dl-0.3.3.tar.gz
- Upload date:
- Size: 24.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bb050f62d794a506e499471c741a04109192923357c928fc70406cd84cc4c641
|
|
| MD5 |
113a8007b2d17474ff19b94743e0347b
|
|
| BLAKE2b-256 |
f0ce1d2667036209efbfa6cfebbae6b787cb070a17bbb7779d2e55329be52782
|
File details
Details for the file ctf_dl-0.3.3-py3-none-any.whl.
File metadata
- Download URL: ctf_dl-0.3.3-py3-none-any.whl
- Upload date:
- Size: 26.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e0bfebfe9a73452bbb77ac82cf86cf4e07bebef7ec37f8e8f0391139c947ffc1
|
|
| MD5 |
67ac21def6ba70c289dab1ac5c6103c1
|
|
| BLAKE2b-256 |
8a42df7faf3e11cc8a2b63033ce90f11aef92a909575c3768c664a8af3aaf419
|