Tool Catalog
The DPM catalog is a curated set of tool definitions embedded directly into the binary at build time. Every tool DPM knows how to install lives here as a YAML file in the repository.
What it is
Each tool in the catalog is a YAML file that describes the tool and all the ways it can be installed, across package managers, platforms, and versions. DPM reads this catalog when you run dpm install or dpm search.
Because the catalog is compiled into the binary, installs work completely offline. No network call is needed to know how to install a tool, only to download it.
Browsing the catalog
The fastest way to browse is from the command line:
Search matches tool IDs, names, descriptions, and tags. Without a query it lists everything:
Tool definitions
Each catalog entry is a YAML file in catalog/ in the DPM repository. Here is a minimal example:
A tool can have multiple versions with independent install methods. DPM picks the one marked is_latest: true by default. You can pin a specific version with the --version flag.
Multiple versions
Some tools maintain two active versions simultaneously, for example, Binwalk ships a Rust v3 and a legacy Python v2 that can coexist side by side. DPM installs the latest by default and symlinks it accordingly:
Contributing tools
The catalog lives at github.com/ilpakka/dpm/tree/main/catalog ↗. To add a tool, open a pull request with a new YAML file following the schema above.
dpm -i my-tool, so it should be short and obvious.