Releases: Okymi-X/htb-terminal
Release list
v0.5.1
v0.5.0
v0.4.0 — robust machine start recovery
Fixes
htb machine start is now resilient to two failure modes seen on a stuck box.
1. Recover from 403: You already have an active instance
Previously this lock had no recovery — the start failed and you had to manually stop then start. Now start inspects what is actually active and reacts idempotently:
- Same machine, already running → reported as-is (no churn).
- Same machine, assigned but not spawned → reclaimed automatically (terminate + restart).
- A different machine is active → never touched; clear, actionable error naming it.
2. --wait now honors --retry-for and fails fast on collapse
- The IP poll previously ignored
--retry-for(hidden 300s cap).--retry-fornow budgets the whole--waitflow. - It kept printing
waiting for machine IP...even after the instance vanished. It now fails fast with a real diagnosis when the spawn collapses on HTB's side (active machine drops out or is replaced) and reminds you to confirm the matching VPN lab server.
Full changelog: v0.3.0...v0.4.0
v0.3.0
Highlights
API: HTB v4 → v5
- HTB removed several v4 endpoints;
machine list --todo/--unreleased/--sp-tiernow use the unified v5/machines, andmachine submituses v5/machine/own. - The API client is version-aware (per-call
version=); default stays v4.
TUI
- Semantic colors (difficulty/OS/status), framed section headers and panels, a branded
--helpbanner, and a TTY progress spinner.
CLI ergonomics
- Global flags (
--json,--color,--wide,--token-file,--base-url,--timeout) now work before or after the subcommand.
Seasonal spawn
machine start --waitnow paces both the spawn retry and the IP poll with--interval; calmer retry messaging.
Fixes & docs
- Report VIP+ correctly in
user info. - Refreshed all screenshots (now showing the command run) via a new headless generator.
🤖 Generated with Claude Code
v0.2.0
Speedrun a season release, plus a smoother CLI.
New: htb speedrun
One command to fire at a seasonal drop:
sudo htb speedrun Seasonal us-free-1
It connects the VPN, waits for the tunnel, sets the MTU (default 1300), spawns the machine with capacity retries, and waits for its IP — with a live, emoji-free status line for each step. The VPN runs in the foreground; Ctrl-C to disconnect. Tunables: --mtu, --interface, --retry-for, --interval, --mode, --variant.
Internals
- New StepRunner UI, netcfg (OpenVPN/MTU), and SpeedrunService modules.
- cli.py split into cli (dispatch) + parser (argparse) + handlers, each single-responsibility.
Install / upgrade:
pipx upgrade htbx # or: pipx install htbx
v0.1.2
New commands and quality-of-life improvements.
New commands
htb user info— your profile: rank, points, owns.htb machine extend— prolong the active machine's expiry.htb machine info— alias formachine profile.htb completion bash|zsh— shell tab-completion forhtb/htbx.
Auth UX
htb init --checkverifies the saved token and prints who you are.- Clear hint on 401/403: 'run htb init to set a valid App Token'.
Output
machine activeshows a relativeexpires_in(e.g. 'in 47m').machine active --onelineprints a compact status line.
Install / upgrade:
pipx upgrade htbx # or: pipx install htbx
v0.1.1
First PyPI release, published as htbx.
Install
pipx install htbx
# or
pip install htbx
Installs the htb command (with an htbx alias).
Highlights
htb initsaves your HTB App Token to the user config dir (~/.config/htb-terminal/token), so a global pipx install works from any directory.- Modular machine service: payload reshaping, search ranking, and spawn-error detection split into focused modules.
- machine / vpn / raw API workflows, automatic 429 backoff, and peak-time
machine start --wait.
htb-terminal v0.1.0
First public release: a zero-dependency Python CLI for selected Hack The Box Labs v4 API workflows.
What's included
htb machine profile|active|list|search— inspect machines by id or name, view the active machine, list and search the catalog.htb machine start|stop|reset— control machine lifecycle; stop and reset default to the active machine.htb machine submit— submit user or root flags.htb vpn servers|switch|download— list known VPN server aliases, switch servers, download OVPN files.htb vpn connect— switch, download, then run OpenVPN in one step.htb raw— call any Labs API endpoint directly.- App token authentication via an
api.tokenfile, plain or colored output, no external dependencies.
Installation
Requires Python 3.10+. Run pip install . from the repository root (installs the htb command), or invoke ./htb directly.
Notes
This client targets the Hack The Box Labs v4 API, which is not formally versioned for third-party use; endpoints and response shapes may change without notice. Report breakage via issues.