Check out Ferium's sister projects Ferinth and Furse which are Rust libraries to use the Modrinth and CurseForge APIs respectively
Ferium is an easy to use CLI program for downloading and updating Minecraft mods from Modrinth, CurseForge, and GitHub Releases. Simply specify the mods you use through the CLI and in just one command, you can download all the mods you configured.
- Download mods from multiple sources, namely Modrinth, CurseForge, and GitHub Releases
- Upgrade all your mods in one command,
ferium upgrade
- Ferium checks that the version being downloaded is the latest one compatible with the chosen mod loader and Minecraft version
- Create multiple profiles and configure different mod loaders, Minecraft versions, output directories, and mods for each
Ferium is a compiled program that does not require any external dependencies
- Download the asset suitable for your operating system from the latest release
- Unzip the file and move it to a folder in your path such as
~/bin
- Remember to check on the releases for any updates!
You can also compile and install Ferium by running cargo install ferium
if you have the Rust toolchain installed.
Remember to use an add-on like cargo-update to keep Ferium updated to the latest version!
When you first start up, you will have to create a new profile by running ferium profile create
and entering the details for your profile.
- Modrinth Mods
ferium add-modrinth project_id
- Where
project_id
is the slug or project id of a mod- For example, Sodium has slug
sodium
and project idAANobbMI
- You can find the slug in the website url (
modrinth.com/mod/<slug>
) and the project id at the bottom of the left sidebar under 'Technical information'
- For example, Sodium has slug
- So, to add Sodium to your profile you should run
ferium add-modrinth sodium
orferium add-modrinth AANobbMI
- CurseForge Mods
- GitHub 'Mods'
ferium add-github owner name
- Where
owner
is the username of the owner of the repository andname
is the name of the repository (both case-insensitive)- For example Sodium's repository has the id
CaffeineMC
andsodium-fabric
- You can find these at the top left part of the repository's page as a big 'owner / name'
- For example Sodium's repository has the id
- So, to add Sodium you should run
ferium add-github CaffeineMC sodium-fabric
(again, case-insensitive)
Warning: upgrading will empty your output directory before downloading mods
Now after adding all your mods, run ferium upgrade
to download all of them to your output directory. This defaults to .minecraft/mods
where .minecraft
is the default Minecraft resources directory, you don't need to worry about this if you play with Mojang's launcher (unless you change the resources directory, of course). You can choose to pick a custom output directory during profile creation or change it later.
If Ferium fails to find a compatible version of a mod, it will print it's name in red and give a reason. It will continue downloading the rest of the mods and will exit with an error. This most likely means that the mod does not release for the mod loader and/or game version you selected. (if it does and Ferium can't find it for some reason file a bug)
PS: There is a known bug about this
You can see all the mods in your current profile by running ferium list
. If you want to see more information about them, you can run ferium list -v
or ferium list --verbose
. You can remove some of your mod by runnning ferium remove
and selecting the ones you would like to remove by using the space key and pressing enter once you're done.
You can create a profile by running ferium profile create
and configuring the following settings:
- Output directory
- This defaults to
.minecraft/mods
where.minecraft
is the default Minecraft resources directory. You don't need to worry about this if you play with Mojang's launcher (unless you explicitly change the resources directory)
- This defaults to
- Name of the profile
- The Minecraft version
- The mod loader
You can configure these same settings afterwards by running ferium profile configure
You can see all the profiles you have by running ferium profile list
. Switch between your profiles using ferium profile switch
.
Finally, you can delete a profile by running ferium profile delete
and selecting the profile you want to delete.
If you would like to make a feature request, check the issues to see if the feature has already been added/planned. If not, create a new issue.
Note; A lot of Ferium's backend is in a seperate project, Libium. You might want to make some edits there for things like the config, add, upgrade, etc
Firstly you need the Rust toolchain (cargo
, rustup
, etc), you can install these from the Rust website. You'll also need the Just command runner, its like make
but better.
If you want to build Ferium without cloning the repo, set the CURSEFORGE_API_KEY
environment variable then run cargo install ferium
. If you don't have a CurseForge API key you can set the variable to an empty value, however anything using the CurseForge API will not work.
To build the project and install it to your Cargo binary directory, clone the project then run just install
. If you want to install for testing a developement version, run just
(alias for just install-dev
).
If you want to obtain executables for a specific OS, you can run just build-<OS>
and replace <OS>
with mac
, win
, or linux
. The produced binaries will be zipped and moved to out/
.
You can run clippy linters using just lint
, and integration tests using cargo test
.