Repository navigation
v2.0.2
Luminesk CLI 2.0.0
Luminesk 2.0 is a complete rewrite of the project. The 2.0 codebase, recipes,
lockfiles, instance state, cache, and runtime model cannot be combined with
Luminesk 1.1. There is no safe in-place upgrade: keep a backup, create a fresh
2.0 instance, and move only the server data you actually need. See the
migration guide.
Compared with 1.1, the MCBE-specific imperative create workflow and optional
local runtimes are gone. doctor, catalog discovery, recipe-based install,
and Docker-backed instances replace them. The old configuration, registry,
cache, and instance metadata are not read or converted by 2.0.
What is new
One workflow for Java and Bedrock
- Install Java and Bedrock server cores through the same
neskinterface. - Discover verified recipes with
nesk searchand inspect requirements with
nesk info RECIPEbefore installing anything. - Install from the official catalog, a GitHub repository, or a local recipe.
- Git is no longer required for normal installation or operation.
Reproducible recipes instead of opaque setup logic
- A strict
luminesk.tomldescribes sources, inputs, ownership, Docker runtime,
ports, mounts, checks, and update policy. luminesk.lockrecords exact artifact hashes, recipe revisions, platforms,
and immutable Docker image digests.- Deterministic, independently verified
.lumineskpkgpackages form the
installation boundary. - Image-only recipes are supported when the complete server already lives in
the runtime image.
Safer installs and updates
- Every install and update has a preview;
--dry-runperforms the complete
planning path without applying it. - Ownership-aware transactions distinguish Luminesk-managed files, rendered
files, editable configuration, and server data. - Local changes are never silently overwritten. Conflicts stop the operation.
- Failed apply or readiness checks roll back the filesystem and, for a
previously running server, attempt to restore and restart the old runtime. nesk outdated,nesk diff, andnesk recovermake update and recovery
state explicit.
A CLI that explains what it needs
nesk infoshows every recipe input, default, constraint, and the correct
--setor--set-fileoption.- Interactive installs include an input wizard, including explicit Minecraft
EULA acceptance where a recipe requires it. - Long downloads, image resolution, builds, transactions, and readiness waits
show progress in a terminal. - Docker failures include a bounded, useful error tail instead of looking like
a silent crash. - Human output is readable and colored;
--json --non-interactiveremains
stable for automation.
Better day-to-day server operation
nesk listdiscovers locally registered instances;nesk import --scancan
rebuild that index from valid instance state.nesk logsloads recent history by default and supports--tail,--since,
timestamps, and follow mode with bounded capture.nesk attachis a full-screen console TUI with recent log history, live
output, command input, scrolling, detach, graceful stop, and kill shortcuts.- Runtime state is reconciled with Docker instead of trusting stale metadata.
Security and distribution
- Downloads, redirects, archives, recipe trees, logs, and package extraction
are explicitly bounded. - Remote bytes are verified with SHA-256; OCI images and Dockerfile base images
are locked to repository digests. - Recipes cannot execute host shell commands. Runtime and check commands are
explicit argument arrays. - Secret inputs come from files, are never persisted, and cannot leak into
runtime arguments or normal JSON output. - Releases include PyPI packages, Linux/macOS/Windows bundles for AMD64 and
ARM64, checksums, an SBOM, and build provenance.
Install and try it
Linux or macOS:
curl -fsSL https://luminesk.taskov1ch.xyz/sh | sh -s -- --yesWindows PowerShell:
irm https://luminesk.taskov1ch.xyz/ps1 | iexAlternatively, install the Python package:
uv tool install luminesk-cliThen:
nesk doctor
nesk catalog update
nesk search --type core
nesk info paper
nesk install paper --dir ./servers/example
nesk start --dir ./servers/example
nesk attach --dir ./servers/exampleFor automation, inspect a dry-run first and then provide both inputs and trust
approval explicitly:
nesk install paper --dir ./servers/example \
--set eula=true --dry-run --json --non-interactive
nesk install paper --dir ./servers/example \
--set eula=true --yes --json --non-interactiveDocumentation: https://luminesk.taskov1ch.xyz