Changelog
All notable changes to shulker are documented here. The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
Added
initcreates ashulker.jsonmanifest;add,remove,update,outdated,pinandunpinmanage mods, with exact versions and hashes recorded inshulker.lock.lockbringsshulker.lockin line with hand edits toshulker.jsonwithout upgrading anything, and the out-of-date warning names each difference.set,unsetandgetedit and read any field ofshulker.jsonby dotted path, checked against the schema before anything is written.- Fabric, Quilt, NeoForge and Forge projects (
init --loader); on Quilt, mods without a Quilt build use their Fabric one. - NeoForge and Forge servers and launcher profiles set up by the loader's own installer: servers run it offline from files recorded in
shulker.lock, andlink mojanginstalls the client into the official launcher without leaving the installer's own profile behind. - Mods from Modrinth and CurseForge, with provider fallthrough, manual downloads for files CurseForge won't serve, and
add --providerto switch a locked mod. - CurseForge works without your own API key: release builds include one, and if CurseForge rejects it shulker fetches a replacement from shulker.sh.
- Dependency checks from each jar's own metadata on
addandinstall;removeprunes dependencies nothing else needs. suggestslists the mods locked mods recommend and that aren't installed;--optionaladds their optional integrations.- Client and server targets (
target add|remove|list), built withinstallandbuildintobuild/<name>. - Server builds with the locked server jar,
eula.txtand validatedserver.properties;serveruns them on Mojang's Java runtime. playerresolves names against Mojang and writes the whitelist, ops and bans.client.optionsmerges intooptions.txt, and.propertiesand other owned files merge per key, so in-game edits survive a rebuild;diffandpullbring them back into the project.- Per-target data directories linked into builds, so worlds, logs and screenshots survive rebuilds.
pack add|remove|listlayers other projects in from local paths, git repositories or manifest URLs.- Mods gated on OS or a named feature;
feature on|off|reset|listsaves per-machine choices inshulker.local.json, and--with,--withoutand--osoverride them for one run. - A ModMenu entry with the pack's name, version, description, authors and links, which badges managed mods and turns off their update checks; NeoForge and Forge packs get the same summary in the mod list.
syncbuilds a target of a local project, git repository or manifest URL into any directory, and falls back to the last successful sync when the network is down (--offlineskips the network).link prism,link multimcandlink mojang(aliasvanilla) create instances or profiles that sync before each launch;link prismalso takes a git or manifest URL.linkslists linked instances and synced directories;sync --instance,sync --alland a picker update them by name, and a baresyncinside a project updates just that project's entries;unlinkstops syncing one.export mrpackandimport mrpackfor Modrinth modpacks.--jsonon every command: one envelope with the result, every warning and, on failure, a stable error code; the codes are listed in the CLI reference, and the plain error line ends with the same code.- JSON Schemas for
shulker.jsonandshulker.lockathttps://shulker.sh/schema/v1/. - Installers for macOS and Linux (
curl -fsSL https://shulker.sh/install.sh | sh) and Windows (irm https://shulker.sh/install.ps1 | iex), andself update, all checking releases against their SHA256 checksums and, whenghis installed, their build provenance.
