{"id":19494782,"url":"https://github.com/ceejbot/modcache","last_synced_at":"2026-06-16T15:31:17.728Z","repository":{"id":66234611,"uuid":"386098607","full_name":"ceejbot/modcache","owner":"ceejbot","description":"A Rust cli program for building and querying a local cache of Nexusmods mod data.","archived":false,"fork":false,"pushed_at":"2023-12-30T22:44:47.000Z","size":330,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"latest","last_synced_at":"2026-05-30T18:28:13.991Z","etag":null,"topics":["nexusmods"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ceejbot.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-14T23:06:32.000Z","updated_at":"2022-01-29T21:20:02.000Z","dependencies_parsed_at":"2023-11-17T23:07:08.458Z","dependency_job_id":"0c2a2ffc-d771-4bdb-ad76-8b3f731451a0","html_url":"https://github.com/ceejbot/modcache","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ceejbot/modcache","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ceejbot%2Fmodcache","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ceejbot%2Fmodcache/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ceejbot%2Fmodcache/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ceejbot%2Fmodcache/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ceejbot","download_url":"https://codeload.github.com/ceejbot/modcache/tar.gz/refs/heads/latest","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ceejbot%2Fmodcache/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34412785,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-16T02:00:06.860Z","response_time":126,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nexusmods"],"created_at":"2024-11-10T21:33:18.220Z","updated_at":"2026-06-16T15:31:17.708Z","avatar_url":"https://github.com/ceejbot.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# modcache\n\n`modcache` is a Rust cli program that builds and then queries a local cache of the sections [Nexus Mods](https://www.nexusmods.com) registry. I play a lot of Skyrim, and have a long active modlist and and even longer list of [Skyrim SE](https://www.nexusmods.com/skyrimspecialedition) mods I'm interested in shuffling around. I find Nexus's own categorization and search tools to be inadequate and was interested in discovering if a local restructuring of the data would be useful. The data they make available from their API is missing user-provided tags, sadly, but perhaps some full-text search will help?\n\nAnother intended use case was for me to scan my list of tracked mods to see which ones I haven't downloaded or kept up to date. This use case is also impossible because the Nexus does not make your download history available through its API. Oh well.\n\nHowever, the tool is still useful as a *very* rapid local search of all the locally-cached data. Results are sortable; run `modcache search --help` for options.\n\nThe output has clickable http links to the Nexus if your terminal supports it. If you have `mdcat` or `glow` installed, the detailed info display for a single mod-- invoked as `modcache mod \u003cid\u003e [game]`-- will render the mod's description in your terminal.\n\nInstall Rust for your platform with [rustup](https://rustup.rs). Copy `.env-example` into `.env` and add your api key, which you can find [on the Nexus settings page](https://www.nexusmods.com/users/myaccount?tab=api). Run `cargo run -- help` for usage. `cargo run -- \u003ccommand\u003e --help` shows detailed help for that command.\n\n```text\nTools for making a local searchable database of the Nexus mod list for a moddable game.\n\nUsage: modcache [OPTIONS] \u003cCOMMAND\u003e\n\nCommands:\n  validate         Test your Nexus API key; whoami\n  tracked          Fetch your list of tracked mods and show a by-game summary\n  populate         Populate the local cache with mods tracked for a specific game\n  search           Find mods that mention this string in their names or text summaries\n  by-name          Find mods with names matching the given string, for the named game\n  by-author        Find mods by the given author, for the named game\n  track            Track a specific mod\n  untrack          Stop tracking a mod or list of mods, by id\n  untrack-removed  Stop tracking all removed mods for a specific game\n  changelogs       Get changelogs for a specific mod\n  files            Get the list of files for a specific mod. Not very useful yet\n  endorsements     Fetch the list of mods you have endorsed\n  endorse          Endorse a mod or list of mods\n  abstain          Abstain from endorsing a mod\n  game             Get Nexus metadata about a game by slug\n  mods             Get all mods locally cached for this game by slug\n  hidden           Find mods for this game that are hidden, probably so you can untrack them\n  removed          Find mods for this game that are removed, probably so you can untrack them\n  wastebinned      Find mods for this game that were wastebinned by their authors\n  trending         Show the 10 top all-time trending mods for a game\n  latest           Show 10 mods most recently added for a game\n  updated          Show the 10 mods most recently updated for a game\n  mod              Display detailed info for a single mod\n  help             Print this message or the help of the given subcommand(s)\n\nOptions:\n  -v, --verbose...  Pass -v or -vv to increase verbosity\n  -j, --json        Emit full output as json; not applicable everywhere\n  -r, --refresh     Refresh data from the Nexus; not applicable everywhere\n  -h, --help        Print help\n  -V, --version     Print version\n```\n\nMy workflow was to run `modcache tracked` to get my full tracked modlist into cache, then run `modcache populate skyrimspecialedition --limit 90` every hour until I had the 3K+ mods I track stored locally.\n\n`--refresh` uses the weak etag the Nexus returns to see if their data has changed. This dings you an API request even if you get a 304 back :(.\n\nIf you have [just](https://github.com/casey/just) installed, the justfile provides some conveniences for building and running the tool.\n\n## References\n\n[The Nexus API](https://app.swaggerhub.com/apis-docs/NexusMods/nexus-mods_public_api_params_in_form_data/1.0#/)\n\n## License\n\n[Blue Oak Model License](https://blueoakcouncil.org/license/1.0.0); text in [LICENSE.md](./LICENSE.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fceejbot%2Fmodcache","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fceejbot%2Fmodcache","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fceejbot%2Fmodcache/lists"}