MCPcopy Index your code
hub / github.com/Wyze3306/BedrockOnLinux

github.com/Wyze3306/BedrockOnLinux @v1.2.5

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.2.5 ↗ · + Follow
192 symbols 987 edges 24 files 63 documented · 33%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

🟩 BedrockOnLinux

Minecraft Bedrock (Windows / GDK edition) on Linux, with native in-game Microsoft sign-in and multiplayer. Install it, pick a version, play.

Ubuntu · Debian · Linux Mint / LMDE · Fedora · Arch · openSUSE

BedrockOnLinux


What it does

One app, everything automatic:

  • downloads the Minecraft version you pick;
  • builds and runs GDK-Proton from a WineGDK fork that implements XUser + request signing, so you sign in to Microsoft inside the game — no relay, no proxy;
  • applies the binary patches the game needs to start and to join online Bedrock servers;
  • fixes curl/SSL and options.txt, then launches the game.

You then play like on any platform: sign in, open Play ▸ Servers, and join native Bedrock servers (Hive, CubeCraft, …) or crossplay/Geyser servers.

Install

Debian / Ubuntu / Mint.deb

sudo apt install ./bedrock-on-linux_*_all.deb

Any distro — AppImage

chmod +x BedrockOnLinux-*-x86_64.AppImage && ./BedrockOnLinux-*-x86_64.AppImage

Portable — single-file .pyz (any distro with Python 3)

chmod +x bedrock-on-linux-*.pyz && ./bedrock-on-linux-*.pyz gui

Flatpak

flatpak install --user ./BedrockOnLinux-*-x86_64.flatpak
flatpak run io.github.wyze3306.BedrockOnLinux

Build it yourself with scripts/build-flatpak.sh (see flatpak/README.md).

Needs: python3, python3-tk, tar, zstd, and Python cryptography (for Microsoft sign-in). The .deb and Flatpak pull these in; on the AppImage/.pyz the launcher auto-installs cryptography on first login (or run pip install --user cryptography). bedrock-on-linux doctor reports anything missing.

Play

  1. Open BedrockOnLinux.
  2. Top-right Sign in — open the shown link, enter the code, and sign in with the account that owns Minecraft.
  3. Pick a version (bottom-left), then hit ▶ PLAY.
  4. In game: Play ▸ Servers (or Discover) and join.

The first PLAY downloads the version and the engine (once); after that it just starts. Everything else is handled for you — no build tools needed.

The engine (first run)

The game runs on a WineGDK-based GDK-Proton ("the engine"). On first launch the launcher downloads a prebuilt engine from the releases and unpacks it — just like the game itself. You do not need a compiler or any -dev packages.

Only when no prebuilt has been published for the current engine revision does the launcher fall back to building Wine from source (a long build that needs the mingw toolchain) — a path meant for developers iterating on the fork.

Maintainers — publishing a prebuilt engine: build it once (bedrock-on-linux setup --force), then package and upload:

scripts/package-engine.sh            # → dist/GDK-Proton-xuser-<rev>.tar.gz
gh release upload v1.0.0 dist/GDK-Proton-xuser-*.tar.gz --clobber

The launcher finds the asset by name (GDK-Proton-xuser-<rev>.tar.gz) across the app's releases, so it can hang off any tag. Bump WINEGDK_BUILD_REV in bol/config.py whenever the engine changes, then publish a fresh asset.

Command line

bedrock-on-linux              # open the launcher (same as 'gui')
bedrock-on-linux versions     # list available Minecraft versions
bedrock-on-linux setup --mc 1.26.21.1   # download + prepare a version
bedrock-on-linux login        # sign in to a Microsoft account
bedrock-on-linux play         # launch
bedrock-on-linux repair       # reset a broken Wine prefix
bedrock-on-linux doctor       # check host requirements
bedrock-on-linux update       # check for and install a launcher update

The launcher also checks for updates on its own: when a newer version is released, a banner appears at the top of the window with an Update now button (one click downloads and installs it, then offers to restart). Git checkouts are left alone — git pull there — and packaged installs (.deb, Flatpak) point you at your package manager instead.

If something fails

Use ⚙ Settings ▸ Open logs folder (~/.local/share/bedrock-on-linux/logs/), or ⚙ Settings ▸ Repair to rebuild a broken Wine prefix. The live step-by-step log is also under Details in the launcher.

Legal

BedrockOnLinux ships no Minecraft files — it is a compatibility launcher. Game files come from a source you choose (default: the community archive bubbles-wow/mcbe-gdk-unpack-archive) or your own folder; you must own Minecraft. GDK-Proton and WineGDK are free software under their own licenses. Realms is not supported.

Build

scripts/build-release.sh        # .deb + AppImage + portable .pyz → dist/
scripts/build-flatpak.sh        # Flatpak bundle → dist/ (needs flatpak-builder)

The launcher is a small Python package, bol/ — one module per concern (config, auth, prefix, fixups, launch, gui, …) behind the thin bedrock-on-linux entry point. The portable artifact is that package zipped into a single executable .pyz; the .deb/Flatpak/AppImage ship the package alongside the entry point.

License

MIT — see LICENSE.

Core symbols most depended-on inside this repo

warn
called by 60
bol/log.py
info
called by 43
bol/log.py
ok
called by 36
bol/log.py
die
called by 29
bol/log.py
load_settings
called by 28
bol/util.py
font
called by 25
bol/gui.py
init_once
called by 17
src/xcurl-cashim.c
start
called by 13
bol/auth.py

Shape

Function 174
Method 13
Class 5

Languages

Python85%
C15%

Modules by API surface

bol/gui.py41 symbols
src/xcurl-cashim.c26 symbols
bol/auth.py22 symbols
bol/util.py12 symbols
bol/prefix.py11 symbols
bol/gameinput.py10 symbols
bol/pe.py8 symbols
bol/fixups.py8 symbols
bol/winegdk.py7 symbols
bol/log.py7 symbols
bol/games.py7 symbols
bol/deps.py7 symbols

For agents

$ claude mcp add BedrockOnLinux \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page