💻 CLI¶
Boon includes two CLI tools.
Python CLI: Install
boon-deadlockwith pip or uv. The package addsboonto your PATH. This command uses the library parser and prints Polars DataFrames. See Python CLI.boon-dev: This low-level Rust tool inspects entities, send tables, string tables, and raw messages. Build it from the repository. See boon-dev.
The two tools support --help for each command.
Python CLI¶
Installed with the boon-deadlock Python package:
pip install boon-deadlock # or: uv add boon-deadlock
Run boon --help for the full list, or boon <command> --help for one command.
Pass --json (where available) for JSON output.
info¶
Match metadata: map, mode, build, duration, and result.
boon info match.dem
boon info match.dem --json
players¶
The player roster (name, Steam ID, hero, team, start lane), with hero names resolved.
boon players match.dem
datasets¶
List every dataset that show can display.
boon datasets
show¶
Load and print any dataset as a table (or JSON). Dataset names come from
boon datasets (they mirror the Demo properties).
boon show match.dem kills --limit 20
boon show match.dem player_ticks --tail --limit 5
boon show match.dem objectives --json
boon show match.dem item_purchases --limit 10
Options:
Flag |
Description |
|---|---|
|
Maximum rows to show ( |
|
Show the last rows instead of the first |
|
Return JSON rows |
Item purchases include catalog-based upgraded_from_ability_ids.
The CLI uses the newest installed catalog, or downloads latest if none is installed.
Use Python get_item_purchases(data_version=...) to select a catalog explicitly.
summary¶
The post-match summary. Choose a part with --part.
boon summary match.dem
boon summary match.dem --part objectives
Options:
Flag |
Description |
|---|---|
|
|
|
Maximum rows to show ( |
|
Return JSON |
stats¶
Derived metrics from boon.stats. Use the Python stat query methods
for hero values and ability bonuses; this command does not calculate them.
boon stats match.dem --metric kill-participation
boon stats match.dem -m time-dead
Options:
Flag |
Description |
|---|---|
|
|
|
Maximum rows to show ( |
|
Return JSON |
verify¶
Make sure the file has the correct Deadlock demo format.
boon verify match.dem
get, versions, and remove¶
Download boon-data JSON catalogs and list client versions with source build dates, build times, and local installation status:
boon get # latest client version in versions.json
boon versions # client version, build date/time, installed status
boon get 6712 # a specific Deadlock client version
boon versions --local # offline installation listing
boon remove 6712 # remove a local version offline
All three commands support --json. Files are stored under ~/.boon/<client-version>/.
get --force replaces an installation only after integrity checks of the new download.
Set a version for remove VERSION. It also removes corrupt caches.
See Game data downloads for the Python API, integrity checks, cache configuration, and
how client versions differ from replay build numbers.
boon-dev¶
boon-dev reads raw demo data. Build it from the repository:
cargo build --release -p boon-dev
# Binary is at target/release/boon-dev
Run boon-dev --help for the command list.
Run boon-dev <command> --help for the options on a command.
Most commands support --filter, --summary, --limit, --min-tick, and
--max-tick. The global --json option selects JSON output.
Commands¶
Command |
Description |
|---|---|
|
Make sure the file has the correct demo format. |
|
File header and game info (build, map, playback time, match ID, mode, winner, players). |
|
List every command/packet in the demo with metadata. |
|
The class-id → network-name mapping. |
|
Serializer (send table) field schemas for each entity class. |
|
String tables from demo initialization. |
|
Decoded game events (user messages); |
|
Post-match summary from the last-tick event. |
|
Entity state at a specific |
|
Important ability usage events. |
|
Hero ability-point spending (tier 1–3). |
|
Ability cooldown / charge state changes (change-only). |
|
Item shop transactions (purchase, upgrade, sell, swap). |
|
In-game chat messages. |
|
Objective health for each tick (walkers, barracks, shrines, patron, mid boss). |
|
Mid boss lifecycle events (spawn, kill, rejuv pickup/use/expire). |
|
Alive lane trooper position/state for each tick. |
|
Neutral creep state changes (change-only). |
|
Permanent stat-bonus change events (urn / breakable pickups). |
|
Active buff/debuff modifier events (applied/removed). |
Example:
# All player controllers at tick 10000, with up to 50 fields each
boon-dev entities match.dem --tick 10000 --filter CCitadelPlayerController --fields 50
# Count event types
boon-dev events match.dem --summary