Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Links
Tags
Creators
Details
Shulker Pocket
A Fabric mod that turns an off-hand shulker box into a live, scrollable tool belt. Sneak + scroll cycles items between the shulker and your main hand: no inventory screen, no hotbar juggling.

Why
Carrying a stack of tools means a cluttered hotbar or constant trips to your inventory. Shulker Pocket lets a single off-hand shulker box be your tool belt: spin the wheel to bring the next item to hand, instantly, without ever opening a screen. Your hotbar stays free for what matters.
How it works
- Put any shulker box (or other
minecraft:containeritem) in your off-hand. - Hold sneak (or a key you bind under Options ā Controls ā Inventory) and scroll the mouse wheel.
- The held item rotates through the shulker's contents; scroll past the end to reach bare hands.
There's no custom overlay. Vanilla already shows the held item's name above the hotbar as it changes, and you know what's in your box.
Install
Requires Fabric Loader and Fabric API on Minecraft 1.20.5 through 26.1.x. Must be installed on both the client and the server.
Download on Modrinth or grab a jar from GitHub Releases.
Config
Install Mod Menu (optional) to edit everything in-game:
its Config button on the Shulker Pocket row opens a settings screen. Otherwise, edit
config/shulker_pocket.json (written on first launch) by hand.
| Key | Default | Meaning |
|---|---|---|
invertScroll |
false |
Flip scroll direction. |
cooldownMs |
250 |
Min ms between scroll fires (debounce). |
allowEmptyPosition |
true |
Let the cursor land on "bare hands". |
playSounds |
true |
Play subtle swap / deny sounds. |
useActivationKey |
false |
Activate with a bindable key instead of sneak. |
showTooltipHint |
true |
Show a usage hint on shulker-box tooltips. |
Building from source
Requires JDK 25 (the Gradle toolchain pulls JDK 21 for the older Minecraft targets). The mod is built from a single source tree across every supported Minecraft version with Stonecutter: the current version's dialect is the source of truth, and older versions are generated from it.
./gradlew chiseledBuild # build + test every supported Minecraft version
./gradlew build # build + test just the active version (26.1.x)
./gradlew runClient # launch a dev client for the active version
Per-version jars land in versions/<mc>/build/libs/. The design and swap algorithm are documented
in SPEC.md.
License
Released under the MIT License.


