lucy

command module
v0.0.0-...-716a552 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 19, 2026 License: Apache-2.0 Imports: 4 Imported by: 0

README

banner

Servers. Clusters. Modpacks.
All in one command.

English | 中文


Go Report Card CodeQL Last Commit Code Size License

🚧

This project is currently INCOMPLETE and under active development. Features and functionalities are subject to change.
If you're interested in contributing or want to stay updated, please contact 4rcadia.0@gmail.com, or join the QQ groupchat. A Discord server will be up soon!


🪣 Overview

WHY ARE THERE NO AXOLOTL EMOJI? https://news.ycombinator.com/item?id=41379902

lucy is a powerful, unified command-line tool to simplify the management of Minecraft server-side content. Whether you're installing plugins, mods, managing dependencies, or coordinating complex modpacks, lucy provides an intuitive command-line interface to handle all your package management needs.

We want to fully mimic the experience of other package managers your might be familiar with, such as apt, brew, or npm. If you've used any of these tools, you'll feel right at home with lucy's command syntax and workflow.

The goal of this tool is to bring the reliability, ease of use, and convenience of modern package management to Minecraft server administration, allowing both newcomers and experienced admins to manage their server content with confidence and efficiency.

⭐ Functionalities

  • Dependency Management - Automatically resolve dependencies, handle conflicts, and manage upgrades seamlessly.
  • Multi-Source Integration - Access packages from various sources.
  • Non-Intrusive Design - Runs independently from your server, ensuring zero interference with server runtime.
  • Modern CLI - User-friendly command-line interface with clear commands and options.
  • Scripting & Automation - Easily integrate lucy into scripts and automation workflows for continuous deployment.

🚀 Quick Start

Installation

# WARNING: Do not install before the first beta release unless you want to test and contribute code.
go install github.com/mclucy/lucy@latest

We know you server owners might be using some niche Linux distros, so we will be available via as many package managers as possible when we release the first beta.

Basic Commands

🚧
All examples are subject to change as we are still in development.

# Initialize Lucy in your server directory
lucy init

# Search for packages across all sources
lucy search <keyword>

# Get detailed information about a specific package
lucy info <package-id>

# Add a package to your server
lucy add <package-id>

# Check server status and list installed packages
lucy status

Real-World Examples

Example 1: Set Up Fabric Server
# Search for Fabric
lucy search fabric

# Get details about Fabric
lucy info fabric/fabric

# Install Fabric
lucy add fabric/fabric@latest
Example 2: Install Mods with Dependencies
# Search for Create mod
lucy search create

# Install Create (dependencies auto-resolved)
lucy add create

# Lucy automatically handles Fabric API and other dependencies

📖 Syntax & Concepts

Platform

A platform is a program that modifies (e.g., JVM injection) the Minecraft vanilla game in a way further specified by a third-party file passed into it.

From a logical perspective, platforms are common and heterogeneous dependencies for a large group of packages.

According to the given definition, the scope would cover NeoForge, Fabric, Iris Mod, etc.

Project

A project is a piece of software that relies on one or more platforms.

A project usually reflects as a GitHub Repository, a Modrinth Homepage, etc.

This is defined to differ between a program and a specific version of it.

Package Name is a synonym (if not fully interchangeable) with Project.

Package

A compiled, ready-to-use instance of a project with a specific platform and version. These are the only directly manageable entities in lucy and what you actually install.

Examples: fabric/fabric-api@1.2.3, neoforge/create@0.5.1

Package Identifier

Packages are identified using the format: platform/project@version

fabric/fabric-api@1.2.3
   ↑        ↑        ↑
platform   name   version
  • Both platform and version can be omitted and inferred from context when possible
  • Examples: fabric-api@latest, neoforge/create

🛠️ Use Cases

Server Administrators

Centralized package management across multiple servers and platforms. Manage dependencies, track versions, and automate updates with a single tool.

Modpack Developers

Organize, version, and distribute your modpacks efficiently. Maintain dependency trees and ensure compatibility across versions.

Hosting Services

Automate deployment and updates across multiple server instances. Integrate with CI/CD pipelines for streamlined server provisioning.

Development Teams

Integrate package management into CI/CD pipelines and automation workflows. Manage server configurations as code.

⚖️ License

This project is licensed under the Apache 2.0 License.

Logo and other images featuring the axolotl pixel art are the copyright of Mojang AB. Replacement will be made as soon as possible.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Package cache provides a content-addressed artifact and metadata cache for downloaded files.
Package cache provides a content-addressed artifact and metadata cache for downloaded files.
Package logger provides structured logging with clear separation between log-file entries (operational diagnostics) and user-facing messages (displayed on stderr).
Package logger provides structured logging with clear separation between log-file entries (operational diagnostics) and user-facing messages (displayed on stderr).
Package probe provides functionality to gather and manage server information for a Minecraft server.
Package probe provides functionality to gather and manage server information for a Minecraft server.
Package syntax defines the syntax for specifying packages and platforms.
Package syntax defines the syntax for specifying packages and platforms.
tui
Package tui is a key-value based commandline output framework.
Package tui is a key-value based commandline output framework.
progress
Package progress provides a terminal progress bar backed by the charm stack (bubbletea + bubbles/progress + lipgloss).
Package progress provides a terminal progress bar backed by the charm stack (bubbletea + bubbles/progress + lipgloss).
Package types is a general package for all types used in Lucy.
Package types is a general package for all types used in Lucy.
Package upstream defines the core upstream abstraction layer.
Package upstream defines the core upstream abstraction layer.
curseforge
Package curseforge provides functions to interact with CurseForge API.
Package curseforge provides functions to interact with CurseForge API.
modrinth
Package modrinth provides functions to interact with Modrinth API.
Package modrinth provides functions to interact with Modrinth API.
routing
Package routing contains source-to-provider bindings and source resolution policies.
Package routing contains source-to-provider bindings and source resolution policies.
Package util is a general package for network and file system operations.
Package util is a general package for network and file system operations.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL