Overview
Main Site GitHub ↗
MIT Licensed · Community Edition

Keyverse,
open and free.

The same focused Minecraft Java launcher — clone it, build it, fork it. Zero telemetry, zero paywalls, zero black boxes. Just source code.

$ git clone https://github.com/ahtilol/keyverse && npm i && npm run dev
MIT
License
v0.1
Latest
3
Platforms
0
Telemetry

Philosophy

Why we opened the source.

A launcher touches your Microsoft account, your files, and your game. You deserve to see exactly what it does.

No black boxes

Every network call, every file write, every auth step is visible in plain JavaScript. Nothing is compiled away or hidden behind closed builds.

Fork freely

MIT license — no attribution requirements beyond keeping the copyright. Build your own launcher on top, strip features, add features, redistribute.

Community owned

Pull requests, issues, and forks are welcome. The more eyes on the code, the better the launcher gets for everyone.

What's included

Everything. Nothing held back.

The open-source build is functionally identical to the signed release. Two things differ — that's it.

Full profile management

Create, edit, and switch isolated profiles per version and loader. All data stays local.

Microsoft device-code sign-in

MSAL-powered auth. No passwords ever touch Keyverse — sign in via microsoft.com/devicelogin.

Java auto-install

Fetches the right JRE from Adoptium automatically. No manual path configuration.

All loaders — Fabric, Forge, Quilt, NeoForge

Install any supported loader and version directly from the launcher UI.

Discord Rich Presence

Optional, toggleable per profile. Shows version and world. Off by default in OSS builds.

Signed binary + auto-update

You build and optionally sign your own binary. No update channel — ship it yourself.

Standard release
Profile management
Microsoft sign-in
Java management
All loaders
Discord presence
Signed installer
Auto-update channel
Anonymous usage pings
Open source
Profile management
Microsoft sign-in
Java management
All loaders
Discord presence
Signed installer
Auto-update channel
No telemetry ever

Three commands

Running in minutes.

Node.js 18+ is the only prerequisite. No global tools, no build servers, no accounts.

01

Clone the repo

Fork on GitHub or clone directly. Dev data writes to ~/.keyverse-dev — never touches your real profiles.

02

Install dependencies

npm install pulls Electron, MSAL, electron-builder, and discord-rpc. That's the full dependency tree.

03

Start or build

npm run dev launches with hot-reload and DevTools on port 9229. npm run build packages for your OS.

04

Target a platform

npm run build:win · build:mac · build:linux — each produces a native installer or AppImage.

TERMINAL bash
# clone
$ git clone https://github.com/ahtilol/keyverse.git
$ cd keyverse
# install
$ npm install
# dev mode (hot-reload + devtools)
$ npm run dev
# production builds
$ npm run build:win    # → .exe installer
$ npm run build:mac    # → universal .dmg
$ npm run build:linux  # → .AppImage + .deb

Unsigned binaries: Windows SmartScreen will warn; macOS requires right-click → Open on first launch unless you sign with your own certificate.

Codebase

Clean, readable, unsurprising.

Plain Electron + Node.js. No custom bundler, no framework magic. If you know JavaScript, you can read the entire codebase in an afternoon.

keyverse/
src/ main/ index.js // entry point launcher.js // spawn java auth.js // MSAL device-code profiles.js // profile CRUD java-manager.js // JRE detect/install renderer/ ui.js // UI logic styles.css // app styles preload/ preload.js // IPC bridge assets/ // icons scripts/ build.js // packaging package.json electron-builder.json README.md CONTRIBUTING.md CHANGELOG.md LICENSE

src/main/

The Electron main process. Handles all privileged operations — file system, child processes, credential storage (keytar), and IPC event registration. Never imports from renderer/.

src/renderer/

Pure UI layer. No direct Node.js access — all communication goes through window.kv.* exposed by preload. If you want to restyle or redesign the UI, this is the only folder you need.

src/preload/preload.js

The security boundary. Exposes a typed window.kv API via contextBridge. nodeIntegration is disabled — no raw Node access from the renderer, ever.

src/main/auth.js

MSAL device-code flow only. No passwords stored, no tokens logged. Credentials saved to the OS keychain via keytar. Removing this file disables Microsoft login entirely — everything else keeps working.

Get involved

Three ways to contribute.

Pick what fits your time. All of it helps.

Issues

Report a bug

Found something broken? Open an issue with your OS, launcher version, and steps to reproduce. Screenshots and logs welcome.

Open an issue

Pull Requests

Send a fix

Fork, branch off main, make focused commits, and open a PR. Bug fixes are merged fast. New features need an issue discussion first.

Open a PR

Discussions

Share an idea

Have a feature in mind? Start a GitHub Discussion. We try to respond to every thoughtful proposal, even if the answer is "not right now."

Start a discussion

Ready?

Clone it. Break it.
Make it yours.

MIT licensed. Three commands to a working launcher. No account, no email, no waiting.