BROWSER MINECRAFT · SKYAPI

Play Minecraft.
No install. No launcher.

Real Java Minecraft in a tab, 1.18 → 26.3, with Fabric mods loaded at runtime. SkyAPI repairs the mods a browser breaks, converts the ones Fabric can't carry, and keeps the GPU path clean.

Opens the client in a new tab. First launch downloads the game (~300 MB).

1.18 → 26.3

Every release in range, one client. Options keys, quoting and mod/version guards are version-aware, so switching versions doesn't black-screen your world.

Fabric, at runtime

Fabric Loader is a jar that runs inside the wasm JVM. Mixins, refmaps and nested jars work the way they do on desktop — nothing is compiled into the client.

SkyAPI

A 6-line mod API with no Minecraft imports: events, HUD, config and profiling that run unchanged from 1.18 to 26.3.

Converter

Drop a jar or paste a Modrinth slug. It is analysed, patched (no ASM, no agent) and written to minecraft/mods — Cobblemon-class mods included.

GPU dedupe

The WebGPU layer removes ~80 % of the bind-group creations a per-draw renderer asks for, and attributes lag spikes instead of averaging them away.

Honest limits

1.18+ only, by design: the renderer is GL 3.3 core. 1.17 and below are out of scope — they need fixed-function OpenGL, which this build does not implement.

Mods

These are real packages converted on this machine. native = jar kept byte-identical, port = compatibility patches applied, content = assets/data only.

Versions

Generated from the Mojang manifest. The client picks the right options dialect, asset index and mod loader per era.

Renderable today

1.18 – 26.3 — GL 3.3 core, zero fixed-function calls.

26.3 ships a Vulkan backend too; a browser has no Vulkan loader, so it falls back to OpenGL, which this runtime provides.

Verified by scanning every official client jar, not by guesswork.

Modding API

The whole mod. No Minecraft imports, so the same class runs on every supported version.

public final class HelloMod implements SkyMod {
  public void onLoad(SkyApi.Context ctx) {
    ctx.events().on(SkyApi.HudRender.class, e ->
        ctx.hud().text("Hello from SkyAPI on " + SkyApi.MC_VERSION,
                       6, 6, 0xFFFFFFFF));
    ctx.log().info("loaded");
  }
}

What you get

  • ctx.events() — tick, HUD, keys, chat, world join
  • ctx.hud() — text, rect, item, right-aligned helpers
  • ctx.config("x.json") — atomic JSON config
  • ctx.profiler() — p50/p99 per section
  • SkyApi.Version.satisfies(...) — version gates

Fabric mods keep using Fabric API + Mixin; SkyAPI adds the repair layer and this zero-Mixin API for new mods.

Converter

Every package is the original jar plus a report. Nothing is transpiled, which is why a 133 MB mod converts at all.

verdictwhat happens
nativejar kept byte-identical, Mixin/refmaps intact
portconstant-pool redirects: bounded threads, desktop guards
contentassets/data extracted into a pack
blockedbundled JNI or a declared Java agent — refused with a reason

Convert your own jar

Drop a .jar here or click to choose · converted at the edge, nothing stored
Targets the version selected above.

Measured

5 970Cobblemon classes analysed
8.3 sto package a 133 MB mod
2 007Meteor classes, 0 blockers
80 %fewer bind-group creations

In the client: __skymods.install('sodium').
Edge converter: mods.skyclientlauncher.workers.dev