Package: carrot-mc
Carrot is a command-line interface for managing Minecraft mods in an MC instance.It uses an API that indexes all mods and files on CurseForge.InstallationFrom PyPICarrot is published onPyPI,
therefore the best way to install it is viapip:pip install carrot-mcThis assumes you're installing it in a virtualenv environment.
If you're installing it globally on Linux, you'll probably need to prepend
the above command withsudo.From sourceYou can also download and build your own copy straight from source:git clone https://github.com/Misza13/carrot
cd carrot
python setup.py installUsageImportant notes:All commands operate inthe current directoryand assume that you're
currently in themods/directory of your Minecraft instance.Mods are referred to by their "key", which is the string as it is used
in CurseForge URLs, e.g. for
"Tinkers' Construct"
mod, it'stinkers-construct.To get general help about the program, simply typecarrotwithout any arguments (or just-hor--help) to see all available commands.To get help on a specific command, run e.g.carrot install -hAdditional pointers on some of the commands follow.init- initialize the mod repositoryBefore any usage, you must initialize a mod repository and select the
Minecraft version of this instance, e.g.:carrot init --mc_version 1.12.2This will create amods.jsonfile in the current directory that will hold
information on the installed mods.Be aware that this will initialize the repository aligned with theBetachannel
on CurseForge. To use a different channel, use the--channelcommand, e.g.:carrot init --mc_version 1.12.2 --channel ReleaseThe channel determines the stability of mod releases that you wish to receive.Betais a good default and you may manually override it in other commands
using the same option.install- install a modIf you know the exact key of the mod, install it in the current directory usingcarrot install jeiThe above example would install the mod "Just Enough Items" becausejeiis
its exact key name. Note that it will use Minecraft version and channel
settings frommods.json. The channel can be overridden:carrot install jei --channel ReleaseIf there is no mod that matches exactly what you've typed, e.g.carrot install appliedyou will be presented with a list of top-downloaded mods that haveappliedin their key (presumably related to Applied Energistics 2 mod).Stay tuned for a plannedcarrot searchcommand that will allow to search
in names and descriptions of mods.installpulls dependencies, if there are any, e.g.carrot install tinkers-constructwill install both Tinkers' Construct itself as well as "Mantle", the
library dependency.You can also install multiple mods at once by specifying their keys:carrot install pams-harvestcraft cooking-for-blockheadsIn this mode, Carrot will not display suggestions if keys are not precise,
but instead will simply inform you that the mod was not found and install
only what it can find.In case of conflicts (e.g. different versions of dependencies either due to
updates or pulling mods from different channels), Carrot will leave already
installed files untouched (to ensure that nothing that already worked breaks),
but you can override this behaviour with--upgradeand--downgradeflags
(seecarrot install -hfor details). Carrot will verbosely inform you if
this happens, so do pay attention to its output.update- update mod(-s) to newer/older versionsIn its simplest form:carrot updateCarrot will attempt to update all currently installed mods (along with their
dependencies) to their newest versions.Carrot will use the same channel for a mod as the one used to install it,
unless told so otherwise with--channel. This means that if, for example,
your entire modpack is set to theBetachannel but one mod was installed
explicitly with--channel Alpha, that one mod (as well as its dependencies)
will be updated to the latestAlphafile but the rest of the mods will use
the default ofBetaYou can request only a single mod (with dependencies) to be updated with:carrot update rftoolsAdditionally, you can force a target channel with--channeloption,
which can cause mods to go both up as well as down in versions.
Similarly toinstall, you must explicitly allow--downgradeif
you want older versions of mods to be installed. However, unlike
during installation, the equivalent of--upgradeis "always on".status- display status of mod repositoryTo see a summary of mod installation use:carrot statusThis will display the following information:Number of mods installedHow many of those are dependenciesHow many mods are disabled (following the.disabledconvention)List mods whose file is missing (disabled or not)List mods whose file is corrupted (MD5 hash does not match the published one)list- display list of installed modsTo see the complete list of installed mods use:carrot listThis will not only list all mods installed according tomods.jsonbut will also
display a status of each:whether file is present or missing,whether it's.disabledor not,whether MD5 checksum is correct.enableanddisable- enable/disable modsTo enable a mod, usecarrot enable MOD_KEYMany mod keys can be specified at the same time, e.g.:carrot enable rftools rftools-dimensionsSimilarly,carrot disable MOD_KEYwill disable a mod (or many mods, if more than one is specified).Be aware that as of now, dependencies are not disabled/enabled along with the
main mod and have to be toggled manually.Enabled/disabled modsCarrot does not store the enabled/disabled status of mods inmods.jsonand
only looks at the file's name to determine the status. This way, it should be
compatible with other mod managers such as MultiMC which use the standard
convention of disabling mods by appending.disabledto their file names.When installing/updating mods, Carrot will preserve the status, i.e. a disabled
mod will remain disabled after an update and you have to enable it manually.web-gui- launch a web user interfaceTo start a web-based interface, simply type:carrot web-guiCarrot comes with an internal webserver that will launch with this command.
By default (that is, unless overridden by the--hostand--portoptions),
it will listen onhttp://localhost:8877/- just point your browser to that
address.In theweb-guiyou should be able to perform most of the tasks available
purely from the command line. Thus far missing are:updateinstallwith a specific--channelFuture / planned featuresMust-haves for 1.0search(in CLI)Uninstall mods (with pruning of unused dependencies)Fix broken mods (missing/corrupted file)Accept directory with mods as parameter instead of always using currentAlignweb-guifeatures with CLIAfter 1.0Manage multiple instances in the Web GUICopy/paste entire sets of mods between instancesLists of "favourite" sets of mods for easier modpack creationModpack management - packing/unpacking along with config, resources etc.