⬇️ abx-dl
A simple all-in-one CLI tool to auto-detect and download everything available from a URL.
cd "$(mktemp -d)"
exec >stdout.log-- <!--pytest-codeblocks:cont--
uvx abx-dl --plugins=title,wget 'https://example.com'test -s index.jsonl
test -s title/title.txt
test -s wget/example.com/index.html--
set -Eeuo pipefail
output_dir="$(mktemp -d)"
image="${ABXDL_IMAGE:-archivebox/abx-dl:latest}"
trap 'rm -rf "$output_dir"' EXIT
docker run --rm \
--env OUTPUT_UID="$(id -u)" \
--env OUTPUT_GID="$(id -g)" \
--volume "$output_dir:/out" \
--entrypoint bash \
"$image" \
-c 'set -Eeuo pipefail
cleanup() { chown -R "$OUTPUT_UID:$OUTPUT_GID" /out; }/venv/bin/abx-dl "$@"' \ -- --no-install --max-urls=1 --plugins=title,wget 'https://example.com' test -s "$outputdir/index.jsonl" test -s "$outputdir/title/title.txt" test -s "$outputdir/wget/example.com/index.html" grep -q 'Example Domain' "$outputdir/title/title.txt" grep -q 'Example Domain' "$outputdir/wget/example.com/index.html"
---
✨ *Ever wish you could `yt-dlp`, `gallery-dl`, `wget`, `curl`, `puppeteer`, etc. all in one command?*
`abx-dl` is an all-in-one CLI tool for downloading URLs "by any means necessary".
It's useful for scraping, downloading, OSINT, digital preservation, and more.
`abx-dl` provides a simpler one-shot CLI interface to the [ArchiveBox plugin ecosystem](https://archivebox.github.io/abx-plugins/).
<img width="1000" height="1082" alt="Screenshot 2026-03-11 at 6 53 03 AM" src="https://github.com/user-attachments/assets/4e19d985-1a93-4f65-9970-2565be16b718" />
<br/
#### 🍜 What does it save?
cd "$(mktemp -d)"
exec >stdout.log-- <!--pytest-codeblocks:cont--
abx-dl --plugins=wget,title,screenshot,pdf,readability 'https://example.com'test -s index.jsonl
test -s title/title.txt
test -s wget/example.com/index.html
test -s screenshot/screenshot.png
test -s pdf/output.pdf
test -s readability/content.html
grep -q 'Example Domain' title/title.txt
grep -q 'Example Domain' wget/example.com/index.html
grep -q 'Example Domain' readability/content.txt
grep -q '"plugin": "wget".*"status": "succeeded"' index.jsonl
grep -q '"plugin": "screenshot".*"status": "succeeded"' index.jsonl
grep -q '"plugin": "pdf".*"status": "succeeded"' index.jsonlgrep -q '"plugin": "readability"."status": "succeeded"' index.jsonl
-->
`abx-dl` runs all plugins by default (and auto installs dependencies). You can specify `--plugins=wget,favicon,title` or filters like `--output=html,pdf,ico,text/` to limit plugin selection.
- HTML, JS, CSS, images, etc. rendered with a headless browser
- title, favicon, headers, outlinks, and other metadata
- audio, video, subtitles, playlists, comments
- snapshot of the page as a PDF, screenshot, and [Singlefile](https://github.com/gildas-lormeau/single-file-cli) HTML
- article text, `git` source code
- [and much more](https://archivebox.github.io/abx-plugins/)...
<br/>