A modern CLI tool for managing Minecraft server plugins and mods
Installation • Quick Start • Commands • Configuration • Contributing
Important
🚧This project is currently in BETA. Unexpected bugs or changes may occur. Please use with caution in production environments. If you find any bugs, please report them via Issues.
- 🔍 Search - Find plugins across Modrinth, Spigot, and GitHub
- 📥 Install - Download and install plugins with a single command
- 🔄 Update - Keep your plugins up to date with smart version management
- 📋 Track - Manage dependencies in a simple
project.ymlfile - 🔌 Multi-source - Support for Modrinth, SpigotMC, and GitHub releases
- ⚡ Fast - Built with Bun for blazing fast performance
- A Minecraft server (Paper, Spigot, Purpur, Velocity, etc.)
- Linux (x64, arm64) or Windows (x64)
curl -fsSL https://raw.githubusercontent.com/Crysta1221/shulkers/main/scripts/install.sh | bashcurl -fsSL https://raw.githubusercontent.com/Crysta1221/shulkers/main/scripts/install.sh | bash -s -- --globalirm https://raw.githubusercontent.com/Crysta1221/shulkers/main/scripts/install.ps1 | iexDownload the latest binary from GitHub Releases and add it to your PATH.
| Platform | File |
|---|---|
| Linux x64 | shulkers-linux-x64 |
| Linux arm64 | shulkers-linux-arm64 |
| Windows x64 | shulkers-windows-x64.exe |
# Clone the repository
git clone https://github.com/Crysta1221/shulkers.git
cd shulkers
# Install Bun (if not installed)
curl -fsSL https://bun.sh/install | bash
# Install dependencies
bun install
# Build binary
bun build src/index.ts --compile --outfile=skscurl -fsSL https://raw.githubusercontent.com/Crysta1221/shulkers/main/scripts/uninstall.sh | bashcurl -fsSL https://raw.githubusercontent.com/Crysta1221/shulkers/main/scripts/uninstall.sh | bash -s -- --globalNon-interactive:
curl -fsSL https://raw.githubusercontent.com/Crysta1221/shulkers/main/scripts/uninstall.sh | bash -s -- --global --yesirm https://raw.githubusercontent.com/Crysta1221/shulkers/main/scripts/uninstall.ps1 | iex# Navigate to your Minecraft server directory
cd /path/to/your/server
# Initialize a new Shulkers project
sks init
# Search for a plugin
sks search viaversion
# Install plugins
sks add modrinth:viaversion modrinth:viabackwards
# Check for updates
sks outdated
# Update all plugins
sks update| Command | Description |
|---|---|
sks init |
Initialize a new Shulkers project |
sks list |
List installed plugins/mods (grouped by source) |
sks scan |
Scan and register existing plugins |
sks link [target] |
Re-link a plugin to a different source |
| Command | Description |
|---|---|
sks search <query> |
Search for plugins across repositories |
sks info <plugin> |
Show detailed information about a plugin |
sks install <plugin...> |
Install plugin(s) |
sks add <plugin...> |
Add and install plugin(s) |
sks remove <plugin...> |
Remove installed plugin(s) |
| Command | Description |
|---|---|
sks outdated |
Check for outdated plugins |
sks update |
Update all plugins |
sks update --latest |
Update to latest versions (not just minor) |
sks update --safe |
Update only if server version compatible |
sks upgrade |
Upgrade Shulkers CLI to the latest version |
sks upgrade --check |
Check for CLI updates without installing |
| Command | Description |
|---|---|
sks repo list |
List configured repositories |
sks repo add <github-url> |
Add a GitHub repository |
sks repo remove <name> |
Remove a repository |
Shulkers supports multiple plugin sources:
sks add modrinth:viaversion
sks add modrinth:[email protected]sks add spigot:vault
sks add spigot:19254 # Using resource IDsks add github:ViaVersion/ViaVersionShulkers stores project configuration in .shulkers/project.yml:
name: my-server
description: My Minecraft Server
serverType: plugin
server:
type: paper
version: "1.21"
memory:
min: 2G
max: 4G
dependencies:
ViaVersion:
source: modrinth
id: viaversion
version: 5.0.0
fileName: ViaVersion-5.0.0.jarGlobal settings are stored in:
- Linux:
~/.config/shulkers/ - Windows:
%LOCALAPPDATA%\shulkers\
# Run in development
bun run src/index.ts <command>
# Type checking
bunx tsc --noEmit
# Linting
bunx oxlint --type-awareContributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Modrinth - For their amazing mod platform and API
- SpigotMC - For the Spiget API
- Bun - For the fast JavaScript runtime