A commandline installer and updater for Celeste mods.
This is major version update (v4.0.0) from everest-mod-cli v3.2.2
- Introduces a lot of breaking changes
- Increases code readability, maintability, and scalaiblity
- Huge performance improvements
See CHANGELOG.md for more information
- Features
- Prerequisites
- Installation
- Usage
- Global Options
- Download Options
- Technical Details
- Motivation
- Bug Reports
- License
- Acknowledgments
- Contact
- Seamless Mod Management: Easily manage mods directly from the terminal.
- Comprehensive Mod Listing: View all installed mods along with their names and versions at a glance.
- Blazingly Fast Update: Update your installed mods more faster than in-game update.
- Install Mods by URL: Just type the URL of the mod page to install the mod. All missing dependencies are resolved automatically.
- Asynchronous Downloads: Experience reduced total download times, lower memory usage, and faster checksum verifications for a smoother experience.
- Linux is running
- Celeste is installed on Steam
- Everest is installed
Just download the binary from the release page.
Once downloaded, give it execution permissions by running chmod u+x hultra. Then, move it to ~/.local/bin (or another directory of your choice). Finally, add that directory to your PATH if it isn't already included.
The pre-build binary might not work for some users, then try another methods described below.
If you have rust installed on your machine, just run following command:
cargo install --locked --git https://github.com/pinpinroku/hultraThis will automatically install the binary in ~/.cargo/bin, so you can use it immediately without hussle.
-
Clone the Repository:
git clone https://github.com/pinpinroku/hultra.git cd hultra -
Build the Project (requires Rust installed):
cargo build --release
-
Run the CLI:
./target/release/hultra
- Show Help
hultra --help- Run a Command
hultra [global_opts] [command] [options] [\<args...\>]- List installed mods
hultra listThe file name and mod name may differ. If so, it will be displayed in an informative way.
- Update installed mods
hultra update- Install mods
# usage
hultra install URL [URL...]
# install a mod
hultra install https://gamebanana.com/mods/123456
# install multiple mods at once
hultra install https://gamebanana.com/mods/123456 https://gamebanana.com/mods/456789Options can be applied globally.
The default game directory is set to the Steam game installation folder:
~/.local/share/Steam/steamapps/common/Celeste/
You can specify your custom game directory using --directory.
# Install the mod "SpeedrunTool" while specifying the game directory
hultra --directory ~/game/exokgames/celeste/ install "SpeedrunTool"The directory should have permissions of at least 0700.
Options can be used for commands: install and update.
Mirror priority can be specified by a comma-separated list. Default is "otobot,gb,jade,wegfan".
| name | location |
|---|---|
| gb | Default GameBanana Server |
| jade | Germany |
| wegfan | China |
| otobot | North America |
If the download from the current server fails, the application will automatically fall back to the next server in the priority list to retry the download.
You can also restrict the fallback servers by providing a comma-separated list (e.g., "otobot,jade"), which will limit the retries to only those specified servers.
Example
hultra update -p jade,wegfan updateEnable this option to fetch the database from a GitHub Pages mirror. This may result in substantially faster processing time for installation and updates, especially for users experiencing connectivity issues with the primary source.
Limit concurrent downloads by specifying number from 1 to 6. Default to 4.
Caution: See Technical Details section below about RAM usage.
Memory Usage & Privacy
By default, this tool buffers downloads in memory to ensure:
- Performance: Avoiding slow I/O overhead on filesystems, especially when
tmpfsandzramare available. - Security/Privacy: Minimizing the trace of sensitive data on physical storage.
In the worst-case scenario (specific file combinations; especially audio files), memory usage can peak at ~2.2 GiB. If you want to keep memory usage low, please use the --jobs 1 (or -j 1) flag to reduce the memory footprint.
The following mods contain large assets that significantly increase memory pressure:
- Breeze Contest (Audio): ~707 MB
- The Celeste Parable: ~523 MB
- Spring Collab 2020 (Audio): ~513 MB
- Secret Santa Collab 2023 (Audio): ~489 MB
- Strawberry Jam (Audio): 3 files, ~300 MB each
- Secret Santa Collab 2024 (Audio): 3 files, 450 MB + 350 MB (x2)
Everest and Olympus are excellent tools for managing Celeste mods. However, there are still some quality-of-life improvements that could be made:
- Olympus is unstable or completely non-functional on certain Linux distributions, particularly in Wayland environments.
- Download speed is slow in some regions.
- CLI tools like
curlorwgetare sometimes faster than in-game downloads. - Cannot run auto updates on background.
- Need to wait or entirely cancel the updates while opening the game.
- CLI tools like
- No options to cancel, pause, or resume downloads in the in-game mod menu when resolving missing dependencies.
- Lack of clarity about
dependencieswhen uninstalling mods.
If you encounter any issues or bugs, please open an issue using the bug report template:
This project is licensed under the GPLv3 license.
This project was made possible thanks to the EverestUpdateCheckerServer hosted by maddie480. We're grateful for their work, which has been instrumental in the development of this project.
For questions or support, reach out via email or open a discussion in the Discussions tab.