MCPcopy Index your code
hub / github.com/JayanAXHF/modder-rs

github.com/JayanAXHF/modder-rs @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
302 symbols 512 edges 27 files 9 documented · 3%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Modder-rs

CI

A simple, fast tool for managing Minecraft mods from the command line.

Modder is a tool for managing mods for Minecraft. It can add mods from Modrinth, CurseForge, and Github Releases. Other features include bulk-updating a directory of mods to a specified version, listing detailed information about the mods in a directory, and toggling mods on or off without deleting the files.

cargo install --locked modder_tui

Features

  • [x] Bulk-update a directory of mods
  • [x] Add mods via Modrinth
  • [x] Add mods via CurseForge
  • [x] Add mods via Github Releases
  • [x] Toggle mods in a directory (enables/disables them by renaming the file extension)
  • [x] List mods with details like version, source, and category
  • [ ] Support for modpacks

Workspace Structure

This repository is a cargo workspace containing two main crates:

  • core: The primary crate that contains all the command-line logic, API wrappers, and file management code.
  • tui: A work-in-progress crate for a Terminal User Interface (TUI) for modder.

Installation

  1. Ensure you have Rust and Cargo installed.
  2. Clone the repository: sh git clone https://github.com/jayansunil/modder.git cd modder
  3. Install the binary: sh cargo install --path . This will install the modder binary in your cargo bin path.

Usage

Modder provides several commands to manage your mods.

add

Add a mod from Modrinth, CurseForge, or GitHub.

modder add <MOD_NAME> --version <GAME_VERSION> --loader <LOADER>
  • Example (Modrinth): sh modder add sodium --version 1.21 --loader fabric
  • Example (GitHub): If the mod is on GitHub, modder will infer it. sh modder add fabricmc/fabric-api --version 1.21
  • Example (CurseForge): sh modder add create --version 1.20.1 --loader forge --source curseforge

update

Bulk-update all mods in a directory to a specific game version.

modder update --dir ./mods --version <NEW_GAME_VERSION>
  • Example: sh modder update --dir ./mods --version 1.21 --delete-previous

list

List all mods in a directory with detailed information.

modder list [--dir ./mods] [--verbose]
  • Example: sh modder list --dir ./mods --verbose

toggle

Enable or disable mods in a directory interactively.

modder toggle [--dir ./mods]

quick-add

Interactively select from a list of popular mods to add.

modder quick-add --version <GAME_VERSION> --loader <LOADER>

License

This project is licensed under the MIT License. See the LICENSE file for details.

Extension points exported contracts — how you extend this code

Component (Interface)
`Component` is a trait that represents a visual and interactive element of the user interface. Implementors of this tra [4 …
tui/src/components.rs
AsModIdVec (Interface)
(no doc) [2 implementers]
core/src/curseforge_wrapper/mod.rs
AddListItem (Interface)
(no doc) [3 implementers]
tui/src/components/add.rs
CurseForgeMod (Interface)
(no doc) [1 implementers]
core/src/curseforge_wrapper/structs.rs
Downloadable (Interface)
(no doc) [3 implementers]
tui/src/components/add.rs
AsNum (Interface)
(no doc) [1 implementers]
core/src/curseforge_wrapper/structs.rs

Core symbols most depended-on inside this repo

select_first
called by 7
tui/src/components/add.rs
format
called by 6
tui/src/components/add.rs
download_file
called by 6
core/src/modrinth_wrapper/modrinth.rs
parse_style
called by 5
tui/src/config.rs
select_next
called by 5
tui/src/components/add.rs
select_previous
called by 5
tui/src/components/add.rs
select_last
called by 5
tui/src/components/add.rs
calc_sha512
called by 5
core/src/lib.rs

Shape

Method 150
Class 71
Function 56
Enum 19
Interface 6

Languages

Rust100%

Modules by API surface

tui/src/components/add.rs39 symbols
core/src/modrinth_wrapper/modrinth.rs35 symbols
tui/src/config.rs31 symbols
core/src/curseforge_wrapper/structs.rs28 symbols
tui/src/components/toggle.rs21 symbols
tui/src/components/list.rs21 symbols
tui/src/tui.rs20 symbols
tui/src/components/home.rs18 symbols
core/src/curseforge_wrapper/mod.rs16 symbols
core/src/lib.rs12 symbols
tui/src/app.rs9 symbols
tui/src/components.rs8 symbols

For agents

$ claude mcp add modder-rs \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact