NXM: Collecting Mod Dependencies
A C++ CLI prototype combining Nexus Mods listings with recursive requirement discovery, aimed at reducing the navigation involved in assembling a mod collection.
- Version
- CLI prototype
- Status
- Prototype — unfinished downloads
- Built with
- C++, CLI11, CPR, JSON
- My work
- C++ command-line and dependency-discovery development

Project overview
Collecting Skyrim mods can mean opening a lot of tabs. A mod has requirements, those requirements may have requirements of their own, and finding the right files adds more navigation to the process. I wanted a utility that could collect a list of mods and their dependencies together.
NXM is a C++ command-line prototype toward that workflow. It combines API-based listings with a scraper that discovers requirement links. Bulk downloading remains unfinished, so the implemented work is concentrated on commands, data presentation and the dependency relationships behind the larger plan.
One interface for several kinds of listing
The command structure uses CLI11, with CPR for HTTP and JSON handling for API responses. The application loads an API key from its configuration, checks it through the user endpoint and dispatches the selected subcommand.
The listing code covers games, tracked and endorsed mods, trending mods and file information. Formatting those responses is a useful part of a terminal interface: the remote representation and the information someone wants to read at a prompt are different concerns.
These are the implemented command paths in the prototype. The download path is still a placeholder, and the project’s own notes leave some tracking and endorsement behavior untested.
Following requirements into a graph
Requirement discovery uses HTML parsing alongside the API client. The scraper looks for the page structures containing requirements and distinguishes links to other Nexus mods from off-site requirements.
Newly seen on-site requirements are followed recursively, and the relationships are recorded as graph edges. That gives the prototype a representation of which mod led to which requirement instead of reducing everything immediately to a flat list of URLs.
The implementation also constructs the reverse relationship, but the tree-output path remains scaffolded. A useful display and a reliable bulk collection operation still need more work around that graph. Finding links is one part of the intended workflow; choosing and obtaining all the right files adds further decisions.
Where the prototype stops
This version dates to the 2021–2022 development. Its API and HTML integration has not been checked against today’s service or page markup. A later build attempt also stopped with missing dependencies before an executable could be exercised.
The prototype currently covers command structure, listings, and requirement discovery. Downloads and the remaining file-selection workflow need to be completed before it can collect a mod list end to end.


