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
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ctf_dl-0.3.3.tar.gz
(24.1 kB
view details)
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
ctf_dl-0.3.3-py3-none-any.whl
(26.0 kB
view details)
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
|