Table of Contents
Pandapi
Pandapi: an API-first Minecraft launcher for advanced automation.
Pandapi is the control layer of ekaii-launcher, a Rust/gpui Minecraft launcher forked from Moulberry's PandoraLauncher. Everything the GUI can do (create, configure, launch and kill instances, manage accounts, install content, read logs, drive Microsoft login) is a command on a local NDJSON API, and an event stream mirrors every state change the UI sees. The GUI is just one client of the same internal message bus.
ekaii-launcher is the ekaii-branded distribution based on Pandapi. The fork is its own project: the big features documented here are not being upstreamed.
What you get
| Commands | 110 commands in 17 groups, NDJSON (one JSON object per line) |
| Transports | Unix socket (macOS/Linux) and Windows named pipe, fully trusted; opt-in TCP + RFC6455 WebSocket on the same port |
| Self-description | api.describe returns every command, all 19 event types, and a machine-readable security block |
| Security (network mode) | Scoped bearer tokens, local-only minting, a path jail, execution-vector fields denied over the network |
| Events | Event stream v2: monotonic seq, 4096-event replay ring, server-side filters, op lifecycle events, semantic game.* events, opt-in console tee |
| Orchestration | Async ops with ops.wait, instances.start {wait}, structured errors {code, message, retryable} |
| Headless | --headless runs the API with no GUI; the launcher binary doubles as a CLI client (--api) |
| Status | Shipped and released as v5.7.1 (protocol 1), installed and tested |
Why
Minecraft launchers are GUI-first; automation is an afterthought bolted onto config files. Pandapi inverts that: the API is the product. That makes the launcher scriptable end to end, from provisioning a fleet of instances in CI, to bisecting a broken modpack, to running a headless game host driven entirely by scripts or an LLM agent.
One boundary to keep in mind: Pandapi launches and observes the real Minecraft client. It does not speak the Minecraft protocol as a headless bot and cannot inject in-game input or chat. For in-world actors (Mineflayer, SoulFire, and friends) and how Pandapi acts as their orchestration hub, see Ecosystem.
Pages
| Page | What it covers |
|---|---|
| Quickstart | First contact: the --api CLI, raw socket NDJSON, a Python client, api.describe, first commands, headless mode |
| Concepts | Transports and the trust model, scopes, the path jail, async operations, event stream v2 (seq/replay), structured errors, addressing and consistency |
| Command-Reference | All 17 groups / 110 commands with one-line descriptions, plus the 19 event types |
| Network-Mode-and-Security | Enabling TCP/WebSocket, minting tokens, scopes, the path allowlist, denied fields, the no-TLS rule and tunnels |
| Automation-and-AI | Driving Pandapi from scripts and from LLMs; IaC patterns; webhooks and metrics; MCP; agent loops |
| Ecosystem | The roadmap: Pandapi as the hub for Mineflayer, SoulFire, MCC, ZenithProxy, the web client and MCP |
In-repo documentation
| Document | Content |
|---|---|
| docs/API.md | The full command reference: every parameter, response shape and error case |
| docs/CONTROL-ARCHITECTURE.md | The machinery underneath: message bus, dispatch loop, ops registry, state on disk, how to extend the API |
| docs/ECOSYSTEM.md | The ecosystem roadmap and target architecture in full |