Your Hack The Box data, wherever you want it:
Terminal, Spreadsheets, Browser, or GitHub Profile Badges updated automatically via GitHub Actions.
-
CLI
- A fast CLI for Hack The Box: list machines, submit flags, spawn/stop/reset labs, and view profile stats.
- Built with Python, Rich UI, and optional Kitty terminal inline avatars.
-
Metrics
- Get detailed data of all your activity in hack the box; paths, tracks, ranks, everything
-
Badges
- Auto-generated profile badges for your GitHub README
- 12 templates: classic, terminal, GitHub-style cards, minimal badge, and more
- Public + optional auth: works with a public profile; app token unlocks extra API data
- No fork required: copy a workflow template into your profile repo
-
Dashboard
- An interactive browser dashboard to visualize every Hack The Box machine you've completed
- Searchable table of pwned machines with techniques, difficulty, OS, dates, and writeup links
- Excel-driven updates.
bash scripts/install.sh
# or: curl -fsSL …/scripts/install.sh | bashManual equivalent:
mkdir -p "$HOME/.local/opt" "$HOME/.local/bin"
git clone https://github.com/yonasuriv/htb-ctrl.git "$HOME/.local/opt/htb-ctrl"
ln -sf "$HOME/.local/opt/htb-ctrl/htbctrl.py" "$HOME/.local/bin/htbctrl"
htbctrl --helpFirst run bootstraps .venv and dependencies silently. See Installation.
git clone https://github.com/yonasuriv/htb-ctrl.git && cd htb-ctrl
htbctrl --helpCopy
examples/config/.env.exampleto.envand setHTB_PROFILE_ID, or pass-pon metrics commands.
| Command | Description |
|---|---|
htbctrl --help |
Full command and flag reference |
htbctrl auth --token … |
Save HTB API token |
htbctrl machines |
List/search machines |
htbctrl metrics pull … |
Fetch profile data to user/<id>/data/ |
htbctrl badges generate … |
Full badge workflow → user/<id>/badges/ |
htbctrl dashboard |
Open dashboard offline |
htbctrl dashboard --serve |
Serve on http://127.0.0.1:8080 |
htbctrl dashboard --new-sheet |
Create htb_machines.xlsx at repo root |
Global flags: --from-env, --api-token, --bearer, --hide-banner. See Configuration.
User output layout:
user/
└── 780424/
├── data/ # cached HTB API JSON
└── badges/ # generated PNG/SVG
htbctrl auth --token YOUR_TOKEN
htbctrl machinesNote
Kitty optional: Kitty enables inline machine avatars via kitten icat. Everything else works in any terminal.
Get a token at HTB Settings → API Key.
htbctrl metrics pull -p PROFILE_ID
htbctrl badges generate -p PROFILE_ID
htbctrl badges generate --from-envSet the workflow in your profile without forking: Getting Started → GitHub Actions.
htbctrl dashboard --new-sheet
htbctrl dashboard --serveEdit
htb_machines.xlsxat the repo root as you pwn new boxes; reload the page to refresh.
Full guide index: docs/guides/README.md
| Area | Start here |
|---|---|
| Install & bootstrap | installation.md |
| Config (SSOT) | configuration.md |
| Terminal CLI | cli-getting-started.md |
| Badges | badge-getting-started.md |
| Dashboard | dashboard-getting-started.md |
See CONTRIBUTING.md.
MIT — see LICENSE.
This project is not affiliated with, endorsed by, or associated with Hack The Box.
This work was heavily inspired by the following authors: