Minecraft server TUI for Linux servers meant to be used over ssh.
Java
12
213 commits
updated Oct 2, 2026
__ __
| \/ |_ _ _ __ ___ ___ ___
| |\/| | | | | '__/ __/ _ \/ __|
| | | | |_| | | | (_| __/\__ \
|_| |_|\__,_|_| \___\___||___/
Minecraft Server Manager v1.0.0
A high-performance, zero-overhead TUI & CLI manager for dedicated Minecraft servers on Linux.
Why MurCes • Visual Tour • Quickstart • CLI Usage • Hotkeys • Fonts • Architecture & IPC • Build
Managing dedicated Minecraft servers on budget VPS nodes or homelabs often forces an uncomfortable compromise:
server.properties or installing mods a chore.MurCes delivers the sweet spot:
tmux session (mcsv). If your SSH connection drops or MurCes exits, the server remains completely unaffected.save-off → save-all → tar archive → save-on) to eliminate backup chunk corruption, with automated retention rotation and optional rclone cloud replication.-p) creates secure public tunnels on demand without touching router NAT tables.Unified server management cockpit with dual-panel activity diagnostics and live console log stream.
Monitor server lifecycle, toggle Playit.gg tunnels, and dispatch in-game commands directly to the tmux session.
[RUNNING] - Port 25565).mcsv session without manually attaching tmux.Configure and boot server engines with automatic Mojang EULA acceptance and custom RAM allocation flags.
-Xms and -Xmx RAM allocations without modifying startup shell scripts.Search, inspect, and install mods from Modrinth and CurseForge without leaving your terminal.
.tmp staging before atomic deployment to mods/.Audit and maintain your active server mods directory cleanly.
.jar files present in the server's mods/ directory.[D]elete Mod) with confirmation safety.[R]efresh).server.properties EditorTweak server configuration with a keyboard-driven visual inspector.
[Q] to filter across all available properties instantly.[Enter] on boolean or enum flags (gamemode, difficulty, pvp, spawn-monsters) to cycle values immediately.[S]ave, [R]eload, and Reset [D]efaults actions.Safe level snapshots that flush memory buffers first to guarantee zero world corruption.
save-off and save-all to disk before packaging the tarball, re-enabling auto-saving (save-on) on exit..tar snapshots with file sizes directly in the TUI.rclone.backup.sh)backup.sh handles automated save flushing, tar archiving, snapshot rotation, and cloud synchronization via rclone.
Install rclone:
sudo apt install rclone
# or: curl https://rclone.org/install.sh | sudo bash
Configure the Google Drive remote: Run the interactive configuration wizard:
rclone config
n for a new remote.minecraftdrive (matching line 39 in backup.sh).drive for Google Drive.1 (full access).Verify the connection:
rclone lsd minecraftdrive:
Customize backup.sh settings (optional):
Edit the parameters at the top of backup.sh:
SOURCE_FOLDER="world" # World directory to archive
TARGET_FOLDER="backup" # Local storage folder for .tar snapshots
rclone sync "$TARGET_FOLDER" your_remote_name:"$TARGET_FOLDER"
.tar archives are kept locally. To change this quota, modify line 30:
if [ "$COUNT" -gt 5 ]; then # Retains 5 newest archives
Trigger a backup: Run directly or via MurCes CLI:
./murces backup
# or execute the script directly:
./backup.sh
Seamlessly transfer inventories, stats, and advancements between player UUIDs.
Complete visual customization to match your personal terminal setup.
0% (solid opaque) to 100% (full terminal background passthrough).Monitor asynchronous background operations in real time.
[C]) or terminate all workers ([K]).Download the latest murces.zip release bundle from GitHub Releases into your Minecraft server directory:
# Download and unzip the standalone native release
curl -sSLO https://github.com/DeployedReject/murces/releases/latest/download/murces.zip
unzip murces.zip
# Grant executable permissions
chmod +x murces svctrl.sh backup.sh
# Launch the interactive dashboard
./murces
[!NOTE] The precompiled native release is completely self-contained. It does not require a JDK or GraalVM runtime installed on your server.
MurCes functions both as an interactive TUI and as a fast, scriptable CLI tool:
./murces [command] [options]
| Command | Description | Flags |
|---|---|---|
./murces | Launches the interactive Lanterna TUI dashboard | None |
./murces start | Starts Minecraft in a detached tmux session | -p, --public (starts Playit.gg tunnel) |
./murces stop | Sends graceful stop command and terminates the session | None |
./murces status | Checks if the Minecraft server daemon is active | None |
./murces backup | Flushes world memory, creates a .tar snapshot, and cleans old backups | None |
./murces --test-tui | Runs headless self-test across all TUI screens and exits | None |
./murces --help | Displays available command options and syntax | None |
./murces --version | Outputs current release version information | None |
| Keybinding | Action |
|---|---|
[TAB] / [Shift+TAB] | Cycle focus between Workspace, Activity Log, and Live Console |
[ESC] / [B] | Return to previous view / Back to Main Menu |
[A] | Toggle / Jump focus directly to Activity & Diagnostics Log |
[L] | Toggle / Jump focus directly to Server Live Console |
[J] | Open Active Tasks & Job Manager |
[S] | Open Server Control & Console |
[I] | Open Install Server Engine |
[C] | Open Configure Properties (server.properties) |
[B] | Open World Backups |
[P] | Open Player UUID Migration |
[D] | Open Download & Browse Mods |
[M] | Open Manage Installed Mods |
[Z] | Open Customization & Themes |
[E] | Exit MurCes |
| Component | Requirement | Details |
|---|---|---|
| Operating System | Linux 64-bit (x86_64) | Tested on Ubuntu, Debian, Arch Linux, Alpine, Fedora, and WSL2 |
| Terminal Multiplexer | tmux | Required for detached background session supervision |
| HTTP Downloader | curl or wget | Required for dependency and package fetching |
| Terminal Font | Nerd Font (v3.0+) | Required for icons, navigation glyphs, and status indicators |
| Cloud Sync (Optional) | rclone | Required only if using Google Drive/S3 offsite world backups |
| Public Tunnels (Optional) | playit | Required only if running public servers without port forwarding |
| Runtime Environment | None | The native binary runs out of the box with zero Java dependencies |
MurCes features rich icons and glyphs powered by Nerd Fonts.
You do not need a Nerd Font to use MurCes.
If you are connected from a basic terminal emulator, standard Linux virtual console (/dev/tty*), or an SSH client without patched font glyphs:
[Z] Customization & Themes → toggle [G]lyphs between Auto-detect, Force Nerd Fonts, or Basic (Fallback).NO_NERD_FONT=1 ./murces # Force basic ASCII fallback
FORCE_NERD_FONT=1 ./murces # Force full Nerd Font icons
getnfIf you want the full icon experience, install any patched Nerd Font in seconds:
# Install getnf
curl -fsSL https://raw.githubusercontent.com/getnf/getnf/main/install.sh | bash
# Browse and install your preferred font (e.g. JetBrains Mono, Fira Code, Hack)
getnf
MurCes is architected around a decoupled backend engine: murces-orchestrator.
The orchestrator communicates over standard I/O (stdin/stdout) via structured JSON IPC messages. This allows you to embed MurCes into custom Discord bots, custom web frontends, CLI automation scripts, or remote administration sidecars.
flowchart LR
subgraph Clients["Frontend Clients"]
TUI["MurCes Native TUI\n(Lanterna / GraalVM)"]
CLI["CLI Subcommands\n(Bash / Scripts)"]
EXT["Custom Integrations\n(Discord Bot, Web UI)"]
end
subgraph Core["Backend Orchestration Layer"]
IPC["JSON IPC (stdin / stdout)"]
ORCH["murces-orchestrator\n(Lifecycle & Package Engine)"]
end
subgraph Systems["System Services & External APIs"]
TMUX["tmux Session ('mcsv')\nMinecraft Daemon"]
MODS["Modrinth & CurseForge\nREST APIs"]
MOJANG["Mojang Version Manifests\n& Paper/Fabric APIs"]
BAK["Safe tar Snapshot Engine\n& rclone Cloud Sync"]
end
TUI <--> IPC
CLI <--> IPC
EXT <--> IPC
IPC <--> ORCH
ORCH --> TMUX
ORCH --> MODS
ORCH --> MOJANG
ORCH --> BAK
Pipe JSON payloads straight into standard input:
# 1. Query supported server engines
echo '{"type": "server", "serverType": "none", "gameVersion": "none", "loaderVersion": "none", "ram": 0, "job": 3}' | java -jar murces-orchestrator-1.0.jar
# 2. Download and boot Paper 1.20.4 with 4GB RAM
echo '{"type": "server", "serverType": "paper", "gameVersion": "1.20.4", "loaderVersion": "none", "ram": 4, "job": 1}' | java -jar murces-orchestrator-1.0.jar
# 3. Search Modrinth for "sodium" on Fabric 1.20.4
echo '{"type": "modding", "modBrowser": "modrinth", "subType": "search", "modName": "sodium", "version": "1.20.4", "modLoader": "fabric", "modId": "0"}' | java -jar murces-orchestrator-1.0.jar
import subprocess
import json
proc = subprocess.Popen(
["java", "-jar", "murces-orchestrator-1.0.jar"],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
text=True,
bufsize=1
)
def send_ipc(payload):
proc.stdin.write(json.dumps(payload) + "\n")
proc.stdin.flush()
return json.loads(proc.stdout.readline())
# Query live server running state
response = send_ipc({
"type": "server",
"serverType": "none",
"gameVersion": "none",
"loaderVersion": "none",
"ram": 0,
"job": 4
})
print(f"Server Active: {response.get('running')}")
[!TIP] For detailed IPC payload schemas, job IDs, and response formats, refer to the full specification in
doc/API-SPEC.md.
If you prefer to compile MurCes from source rather than using the official native release:
native-image toolchain installed)cd java/orchestrator
mvn clean install
cd ../..
cd java/tui
mvn clean package
# Artifact generated at java/tui/target/murces-tui-0.1.jar
cd ../..
cd java/tui
mvn clean package -Pnative
cp target/murces ../../
cd ../..
murces.zip) have the CurseForge API client credentials pre-configured and baked in. Mod browsing works out of the box with zero configuration required..env file in the root directory:curseAPI="YOUR_CURSEFORGE_API_KEY"
email="your_developer_email@example.com"
main: Active production branch containing the Lanterna TUI, decoupled orchestrator backend, and GraalVM build configuration.archived: Historical C prototype and initial proof-of-concept codebase preserved for reference.Contributions, bug reports, and feature proposals are warmly welcome!
MurCes is free and open-source software licensed under the GNU General Public License v3.0.
Java
97.3%
Shell
2.7%
Minecraft server TUI for Linux servers meant to be used over ssh.
Java
12
213 commits
updated Oct 2, 2026
__ __
| \/ |_ _ _ __ ___ ___ ___
| |\/| | | | | '__/ __/ _ \/ __|
| | | | |_| | | | (_| __/\__ \
|_| |_|\__,_|_| \___\___||___/
Minecraft Server Manager v1.0.0
A high-performance, zero-overhead TUI & CLI manager for dedicated Minecraft servers on Linux.
Why MurCes • Visual Tour • Quickstart • CLI Usage • Hotkeys • Fonts • Architecture & IPC • Build
Managing dedicated Minecraft servers on budget VPS nodes or homelabs often forces an uncomfortable compromise:
server.properties or installing mods a chore.MurCes delivers the sweet spot:
tmux session (mcsv). If your SSH connection drops or MurCes exits, the server remains completely unaffected.save-off → save-all → tar archive → save-on) to eliminate backup chunk corruption, with automated retention rotation and optional rclone cloud replication.-p) creates secure public tunnels on demand without touching router NAT tables.Unified server management cockpit with dual-panel activity diagnostics and live console log stream.
Monitor server lifecycle, toggle Playit.gg tunnels, and dispatch in-game commands directly to the tmux session.
[RUNNING] - Port 25565).mcsv session without manually attaching tmux.Configure and boot server engines with automatic Mojang EULA acceptance and custom RAM allocation flags.
-Xms and -Xmx RAM allocations without modifying startup shell scripts.Search, inspect, and install mods from Modrinth and CurseForge without leaving your terminal.
.tmp staging before atomic deployment to mods/.Audit and maintain your active server mods directory cleanly.
.jar files present in the server's mods/ directory.[D]elete Mod) with confirmation safety.[R]efresh).server.properties EditorTweak server configuration with a keyboard-driven visual inspector.
[Q] to filter across all available properties instantly.[Enter] on boolean or enum flags (gamemode, difficulty, pvp, spawn-monsters) to cycle values immediately.[S]ave, [R]eload, and Reset [D]efaults actions.Safe level snapshots that flush memory buffers first to guarantee zero world corruption.
save-off and save-all to disk before packaging the tarball, re-enabling auto-saving (save-on) on exit..tar snapshots with file sizes directly in the TUI.rclone.backup.sh)backup.sh handles automated save flushing, tar archiving, snapshot rotation, and cloud synchronization via rclone.
Install rclone:
sudo apt install rclone
# or: curl https://rclone.org/install.sh | sudo bash
Configure the Google Drive remote: Run the interactive configuration wizard:
rclone config
n for a new remote.minecraftdrive (matching line 39 in backup.sh).drive for Google Drive.1 (full access).Verify the connection:
rclone lsd minecraftdrive:
Customize backup.sh settings (optional):
Edit the parameters at the top of backup.sh:
SOURCE_FOLDER="world" # World directory to archive
TARGET_FOLDER="backup" # Local storage folder for .tar snapshots
rclone sync "$TARGET_FOLDER" your_remote_name:"$TARGET_FOLDER"
.tar archives are kept locally. To change this quota, modify line 30:
if [ "$COUNT" -gt 5 ]; then # Retains 5 newest archives
Trigger a backup: Run directly or via MurCes CLI:
./murces backup
# or execute the script directly:
./backup.sh
Seamlessly transfer inventories, stats, and advancements between player UUIDs.
Complete visual customization to match your personal terminal setup.
0% (solid opaque) to 100% (full terminal background passthrough).Monitor asynchronous background operations in real time.
[C]) or terminate all workers ([K]).Download the latest murces.zip release bundle from GitHub Releases into your Minecraft server directory:
# Download and unzip the standalone native release
curl -sSLO https://github.com/DeployedReject/murces/releases/latest/download/murces.zip
unzip murces.zip
# Grant executable permissions
chmod +x murces svctrl.sh backup.sh
# Launch the interactive dashboard
./murces
[!NOTE] The precompiled native release is completely self-contained. It does not require a JDK or GraalVM runtime installed on your server.
MurCes functions both as an interactive TUI and as a fast, scriptable CLI tool:
./murces [command] [options]
| Command | Description | Flags |
|---|---|---|
./murces | Launches the interactive Lanterna TUI dashboard | None |
./murces start | Starts Minecraft in a detached tmux session | -p, --public (starts Playit.gg tunnel) |
./murces stop | Sends graceful stop command and terminates the session | None |
./murces status | Checks if the Minecraft server daemon is active | None |
./murces backup | Flushes world memory, creates a .tar snapshot, and cleans old backups | None |
./murces --test-tui | Runs headless self-test across all TUI screens and exits | None |
./murces --help | Displays available command options and syntax | None |
./murces --version | Outputs current release version information | None |
| Keybinding | Action |
|---|---|
[TAB] / [Shift+TAB] | Cycle focus between Workspace, Activity Log, and Live Console |
[ESC] / [B] | Return to previous view / Back to Main Menu |
[A] | Toggle / Jump focus directly to Activity & Diagnostics Log |
[L] | Toggle / Jump focus directly to Server Live Console |
[J] | Open Active Tasks & Job Manager |
[S] | Open Server Control & Console |
[I] | Open Install Server Engine |
[C] | Open Configure Properties (server.properties) |
[B] | Open World Backups |
[P] | Open Player UUID Migration |
[D] | Open Download & Browse Mods |
[M] | Open Manage Installed Mods |
[Z] | Open Customization & Themes |
[E] | Exit MurCes |
| Component | Requirement | Details |
|---|---|---|
| Operating System | Linux 64-bit (x86_64) | Tested on Ubuntu, Debian, Arch Linux, Alpine, Fedora, and WSL2 |
| Terminal Multiplexer | tmux | Required for detached background session supervision |
| HTTP Downloader | curl or wget | Required for dependency and package fetching |
| Terminal Font | Nerd Font (v3.0+) | Required for icons, navigation glyphs, and status indicators |
| Cloud Sync (Optional) | rclone | Required only if using Google Drive/S3 offsite world backups |
| Public Tunnels (Optional) | playit | Required only if running public servers without port forwarding |
| Runtime Environment | None | The native binary runs out of the box with zero Java dependencies |
MurCes features rich icons and glyphs powered by Nerd Fonts.
You do not need a Nerd Font to use MurCes.
If you are connected from a basic terminal emulator, standard Linux virtual console (/dev/tty*), or an SSH client without patched font glyphs:
[Z] Customization & Themes → toggle [G]lyphs between Auto-detect, Force Nerd Fonts, or Basic (Fallback).NO_NERD_FONT=1 ./murces # Force basic ASCII fallback
FORCE_NERD_FONT=1 ./murces # Force full Nerd Font icons
getnfIf you want the full icon experience, install any patched Nerd Font in seconds:
# Install getnf
curl -fsSL https://raw.githubusercontent.com/getnf/getnf/main/install.sh | bash
# Browse and install your preferred font (e.g. JetBrains Mono, Fira Code, Hack)
getnf
MurCes is architected around a decoupled backend engine: murces-orchestrator.
The orchestrator communicates over standard I/O (stdin/stdout) via structured JSON IPC messages. This allows you to embed MurCes into custom Discord bots, custom web frontends, CLI automation scripts, or remote administration sidecars.
flowchart LR
subgraph Clients["Frontend Clients"]
TUI["MurCes Native TUI\n(Lanterna / GraalVM)"]
CLI["CLI Subcommands\n(Bash / Scripts)"]
EXT["Custom Integrations\n(Discord Bot, Web UI)"]
end
subgraph Core["Backend Orchestration Layer"]
IPC["JSON IPC (stdin / stdout)"]
ORCH["murces-orchestrator\n(Lifecycle & Package Engine)"]
end
subgraph Systems["System Services & External APIs"]
TMUX["tmux Session ('mcsv')\nMinecraft Daemon"]
MODS["Modrinth & CurseForge\nREST APIs"]
MOJANG["Mojang Version Manifests\n& Paper/Fabric APIs"]
BAK["Safe tar Snapshot Engine\n& rclone Cloud Sync"]
end
TUI <--> IPC
CLI <--> IPC
EXT <--> IPC
IPC <--> ORCH
ORCH --> TMUX
ORCH --> MODS
ORCH --> MOJANG
ORCH --> BAK
Pipe JSON payloads straight into standard input:
# 1. Query supported server engines
echo '{"type": "server", "serverType": "none", "gameVersion": "none", "loaderVersion": "none", "ram": 0, "job": 3}' | java -jar murces-orchestrator-1.0.jar
# 2. Download and boot Paper 1.20.4 with 4GB RAM
echo '{"type": "server", "serverType": "paper", "gameVersion": "1.20.4", "loaderVersion": "none", "ram": 4, "job": 1}' | java -jar murces-orchestrator-1.0.jar
# 3. Search Modrinth for "sodium" on Fabric 1.20.4
echo '{"type": "modding", "modBrowser": "modrinth", "subType": "search", "modName": "sodium", "version": "1.20.4", "modLoader": "fabric", "modId": "0"}' | java -jar murces-orchestrator-1.0.jar
import subprocess
import json
proc = subprocess.Popen(
["java", "-jar", "murces-orchestrator-1.0.jar"],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
text=True,
bufsize=1
)
def send_ipc(payload):
proc.stdin.write(json.dumps(payload) + "\n")
proc.stdin.flush()
return json.loads(proc.stdout.readline())
# Query live server running state
response = send_ipc({
"type": "server",
"serverType": "none",
"gameVersion": "none",
"loaderVersion": "none",
"ram": 0,
"job": 4
})
print(f"Server Active: {response.get('running')}")
[!TIP] For detailed IPC payload schemas, job IDs, and response formats, refer to the full specification in
doc/API-SPEC.md.
If you prefer to compile MurCes from source rather than using the official native release:
native-image toolchain installed)cd java/orchestrator
mvn clean install
cd ../..
cd java/tui
mvn clean package
# Artifact generated at java/tui/target/murces-tui-0.1.jar
cd ../..
cd java/tui
mvn clean package -Pnative
cp target/murces ../../
cd ../..
murces.zip) have the CurseForge API client credentials pre-configured and baked in. Mod browsing works out of the box with zero configuration required..env file in the root directory:curseAPI="YOUR_CURSEFORGE_API_KEY"
email="your_developer_email@example.com"
main: Active production branch containing the Lanterna TUI, decoupled orchestrator backend, and GraalVM build configuration.archived: Historical C prototype and initial proof-of-concept codebase preserved for reference.Contributions, bug reports, and feature proposals are warmly welcome!
MurCes is free and open-source software licensed under the GNU General Public License v3.0.
Java
97.3%
Shell
2.7%