A native Minecraft launcher and modpack toolkit in pure Rust — install, update and build packs from one app or one CLI.
- Launcher — instances, Microsoft and offline accounts, automatic Java, Vanilla / Fabric / Quilt / NeoForge / Forge, logs and crash reports.
- Modpacks from a link — Modrinth modpacks,
.mrpack, Prism exports and Riven packs; a pack updates itself before every launch. - Own pack format — one
riven.jsonwith pinned versions and hashes, edited through the app or the CLI, never by hand. - Sources — Modrinth, GitHub Releases, direct URLs and local files, with dependency resolution and conflict checks.
- Fast, safe updates — release channels, a tiny pointer checked with ETag, content-addressed downloads, ed25519 signatures.
- Developer mode — content table, dependency tree, config editor, releases, git and a test instance in one window.
- Servers and Nix — headless
riven install --side server, and a Nix library that builds a pack without a fixed-output hash.
ARM64 Linux: AppImage · .deb · .rpm. Every file of every version is on the Releases page.
The macOS app is not notarized: right-click → Open the first time.
For servers, riven-cli-<arch>-<os> archives hold the CLI without the GUI and its libraries:
riven install --side server --dir /srv/mc --headless gh:owner/packThe launcher updates itself from GitHub Releases (Settings → About), the CLI with riven self-update. Copies from a package manager or Nix are updated there instead.
riven with no arguments opens the launcher; a subcommand runs in the terminal.
riven init --mc 1.21.1 --loader neoforge # new riven.json
riven add sodium # with its dependencies
riven update --dry-run # preview newer versions
riven build --channel stable # signed release in dist/
riven deploy # dist/ → GitHub PagesEvery command is described in the documentation.
Run the launcher without installing:
nix run --accept-flake-config github:BX-Team/Riven/v1.1.1Releases are built for x86_64-linux and aarch64-linux and pushed to Cachix, so a tagged version downloads instead of compiling. --accept-flake-config lets Nix use the cache the flake names — if you are a trusted Nix user (trusted-users); otherwise Nix ignores it and compiles. Without a tag Nix takes master, which may not be in Cachix yet and then compiles from source.
To use the cache in any case, add it to your system:
nix = {
settings = {
substituters = [
"https://bx-team.cachix.org"
];
trusted-public-keys = [
"bx-team.cachix.org-1:tnGNc1rsS8QOav+VGxXCZzf/Y0/SGchOwVCCBA/eG6E="
];
};
};The flake exposes packages.<system>.riven and riven-cli, plus lib.mkModpack, which turns a pack repository into a server's mods and configs — every file is its own fetchurl, no packHash:
modpack = riven.lib.mkModpack {
inherit pkgs;
src = ./.;
side = "server";
groups.velocity = true;
};Riven is a single pure-Rust gpui application. It needs the toolchain pinned in rust-toolchain.toml.
git clone https://github.com/BX-Team/Riven.git
cd Riven
cargo run # launcher + CLI
cargo run --no-default-features --features cli # CLI only
cargo build --release # target/release/rivenOn Linux the launcher also needs the gpui system libraries (Wayland, X11, xkbcommon, Vulkan, fontconfig), or just nix develop.
Ideas, bug reports and pull requests are welcome in Issues or on Discord.
This project is licensed under the GPL-3.0-or-later License — see the LICENSE file for details.
- zed-industries/zed: Home of the gpui GPU-accelerated UI framework Riven is built on.
- longbridge/gpui-kit: The gpui component library under the Riven design.
- Modrinth: The content platform Riven searches and installs from.



