Ferium
Fast and multi-source CLI program for managing Minecraft mods and modpacks from Modrinth, CurseForge, and GitHub Releases
Install / Use
/learn @gorilla-devs/FeriumREADME
Ferium
Check out ferium's sister projects ferinth and furse. They are Rust wrappers for the official Modrinth and CurseForge APIs respectively.
Ferium is a fast and feature rich CLI program for downloading and updating Minecraft mods from Modrinth, CurseForge, and GitHub Releases, and modpacks from Modrinth and CurseForge. Simply specify the mods you use, and in just one command you can download the latest compatible version of all the mods you configured.
Features
-
Use the CLI to easily automate your modding experience
-
Download mods from multiple sources, namely Modrinth, CurseForge, and GitHub Releases
-
Download modpacks from multiple sources, namely Modrinth and CurseForge
-
<details>
<summary>Beautiful and informative UI</summary>
Profile info and listing mods

Listing mods verbosely

Upgrading mods/modpacks
</details>
-
<details>
<summary>It's super fast due to multithreading for network intensive tasks</summary>
Your results may vary depending on your internet connection.
It downloads my modpack Kupfur with 79 mods in 15 seconds:
https://github.com/gorilla-devs/ferium/assets/60034030/cfe2f0aa-3c10-41ca-b223-367925309ea9
It downloads MMTP, a very large modpack with around 400 mods, in just under a minute:
https://github.com/gorilla-devs/ferium/assets/60034030/857e8d27-372d-4cdd-90af-b0d77cb7e90c
</details> -
Upgrade all your mods to the latest compatible version in one command,
ferium upgrade- Ferium checks that the version being downloaded is the latest one that is compatible with the configured mod loader and Minecraft version
-
Download and install the latest version of your modpack in one command,
ferium modpack upgrade -
Create multiple profiles and configure different mod loaders, Minecraft versions, output directories, and mods for each
Installation
Ferium executables from GitHub Releases do not require any external dependencies at runtime.
If you compile from source on Linux, using GCC to build will result in binaries that require GCC to be available at runtime.
On Linux, the regular versions require some sort of desktop environment to be available that offers an XDG Desktop Portal to show the folder picker.
The nogui versions do not need this as they won't have a GUI folder picker, making these variants suitable for server use.
[!IMPORTANT] Linux users! Use the
noguiversions (or compile with--no-default-features) if you do not have a desktop environment (like GNOME, KDE, XFCE, etc.)
Packages
Have knowledge/experience maintaining packages? Consider helping with adding and maintaining ferium for your favourite package manager.
Arch User Repository for Arch Linux
[!NOTE] From-source builds will install the Rust toolchain and GCC.
| Installation method | GUI file dialogue | No GUI | | ----------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------- | | Install pre-built binaries from GitHub Releases | ferium-gui-bin | ferium-bin | | Build from source at the latest tag | ferium-gui | ferium | | Build from source using the latest commit | ferium-gui-git | ferium-git |
Homebrew for macOS or Linux
brew install ferium
winget for Windows
winget install GorillaDevs.Ferium
Scoop for Windows
scoop bucket add games
scoop install ferium
Pacstall for Ubuntu
pacstall -I ferium-bin
Nixpkgs for NixOS or Linux
[!NOTE] See the package page for installation instructions:
https://search.nixos.org/packages?show=ferium&channel=unstable
Portage for Gentoo
Available on LoaTcHi's overlay
eselect repository enable loatchi
emaint sync -r loatchi
emerge -av ferium
XBPS for Void Linux
xbps-install ferium
crates.io using the Rust toolchain
cargo install --locked ferium
[!TIP] Use a tool like cargo-update to keep ferium updated to the latest version!
GitHub Releases
[!IMPORTANT] You will have to manually download and install every time there is a new update.
- Download the asset suitable for your operating system from the latest release
- Unzip the file and move it to a folder in your path, e.g.
~/bin - Remember to check the releases page for any updates!
Overview / Help Page
[!NOTE] A lot of ferium's backend is implemented in libium.
It deals with things such as the config, adding mod(pack)s, upgrading, file pickers, etc.
Program Configuration
Ferium stores profile and modpack information in its config file. By default, this is located at
$XDG_CONFIG_HOME/ferium/config.jsonor~/.config/ferium/config.jsonon Linux.%APPDATA%/ferium/config/config.jsonon Windows.~/.config/ferium/config.jsonon macOS.
You can change this in 2 ways; by setting the FERIUM_CONFIG_FILE environment variable,
or the --config-file global flag. The flag takes precedence.
[!CAUTION] Be mindful of syntax when manually editing the config file
You can also set a custom CurseForge API key or GitHub personal access token using the CURSEFORGE_API_KEY and GITHUB_TOKEN environment variables, or the --curseforge_api_key and --github-token global flags respectively.
Again, the flags take precedence.
First Startup
You can either have your own set of mods in what is called a 'profile', or install a modpack.
- Create a new profile by running
ferium profile createand entering the details for your profile.- Then, add your mods using
ferium add. - Finally, download your mods using
ferium upgrade.
- Then, add your mods using
- Add a modpack by running
ferium modpack add <project_id>.- After which, run
ferium modpack upgradeto download and install the latest version of the modpack.
- After which, run
Automatically Import Mods
ferium scan
This command scans a directory with mods, and attempts to add them to your profile.
The directory defaults to your profile's output directory. Some mods are available on both Modrinth and CurseForge; ferium will prefer Modrinth by default, but you can choose CurseForge instead using the --platform flag.
As long as you ensure the mods in the directory match the configured mod loader and Minecraft version, they should all add proper
