OhMyGame
OhMyGame is the open-source studio for making games with AI. Design, build, playtest, and publish games in one app, with your own model keys.
_k0t1k is a fast, portable Minecraft launcher for Windows with Prism Launcher-level features in a modern UI.
GamesRust · VueGitHub @hhhhhffdOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Minecraft Java launcher in Rust, Tauri 2 and Vue 3: Prism-style instances, Microsoft and ely.by accounts, Modrinth/CurseForge/FTB content, Ed25519-signed self-updates and sandboxed WebAssembly plugins.
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗A Minecraft launcher in one place: Prism-style instances, portable data, Ed25519-signed self-updates
Download · Website · Architecture · Build · Discord
English · Русский
_k0t1k is a Minecraft Java launcher that aims for Prism Launcher's feature set with a custom UI. A Rust core owns every launcher concern (metadata, installs, Java, accounts, content, launching); a thin Tauri 2 shell exposes it to a Vue 3 UI. It targets Windows first and also ships a Linux AppImage. It is in open beta.
Role: sole developer; AI-assisted development.
| Area | What it does |
|---|---|
| Content | Modrinth and CurseForge mods, modpacks and resource packs, FTB packs, managed pack updates, update-all, drag & drop |
| Loaders and clients | Fabric, Quilt, Forge, NeoForge through Prism meta; LabyMod 4 as an alternative client |
| Java | Mojang runtimes downloaded per version, automatic JVM memory tuning |
| Accounts | Microsoft (device code), ely.by, offline; tokens encrypted with DPAPI |
| Instances | Groups, copies, custom icons, playtime, worlds, data packs, screenshots, shared servers.dat |
| Import and export | Prism zip, .mrpack, CurseForge zip |
| Diagnostics | Crash dialog with one-click log upload to mclo.gs |
| UI | Themes, user themes, lite mode, English and Russian |
| Group | Technology | Version | Role |
|---|---|---|---|
| Core | Rust (packages/core, crate k0t1k-core) | edition 2024 | Launcher logic with no UI dependency, tested on Linux |
| Core | tokio / reqwest (rustls) | 1.54 / 0.13 | Async runtime and HTTP |
| Shell | Tauri (apps/app/src-tauri, crate k0t1k-app) | 2.12 | Window, tray, commands, events, WebView2 |
| UI | Vue + Pinia + vue-router | 3.5 / 4.1 / 5.4 | Views and state |
| UI | TypeScript, Vite, Tailwind CSS | 5.9 / 8.3 / 4.3 | Build and styling |
| Plugins | WebAssembly (wasm-bindgen, --target web) | api v1 | RatScan and packconv, run in a Web Worker |
| Data | JSON files (settings.json, instance.json), packwiz .pw.toml | — | Storage, Prism-compatible mod metadata |
| Infra | GitHub Releases, GitHub Pages (site/) | — | Signed exe and plugin releases, landing page |
flowchart LR
User((Player)) --> UI[Vue UI<br/>apps/app/src]
UI -- invoke / events --> Shell[Tauri shell<br/>k0t1k-app]
UI -- bytes only --> Worker[Web Worker<br/>wasm plugins]
Shell --> Core[k0t1k-core]
Core --> Data[(Data dir next to exe<br/>settings, instances,<br/>libraries, assets, java)]
Core --> Meta[Prism meta<br/>Mojang piston]
Core --> Content[Modrinth<br/>CurseForge / FTB]
Core --> Auth[Microsoft / Xbox / Minecraft<br/>ely.by]
Core --> Laby[LabyMod CDN]
Core --> GH[GitHub Releases<br/>launcher + plugins]
Core -- spawn --> Game[Java process<br/>Minecraft]
sequenceDiagram
participant UI
participant App as k0t1k-app
participant Core as k0t1k-core
participant Net as Meta / CDNs
participant JVM as Minecraft
UI->>App: launch_instance(id)
App->>Core: resolve components (minecraft, loader or client)
Core->>Net: fetch meta (sha256-checked, cached offline)
Core->>Core: build LaunchProfile (main class, classpath, args, Java major)
Core->>Net: install libraries, assets, Java runtime
App->>Core: build_command + session dir (natives, launch-args.txt)
Core->>JVM: spawn
JVM-->>App: log lines, exit code
App-->>UI: events (progress, log, crash report)
version + sha256(exe), which blocks replay
and downgrade. The running exe is renamed to .old and the new one is started with --wait-for <pid>, so the
single-instance mutex is free.Full notes: docs/ARCHITECTURE.md.
.
├── apps/app/src # Vue UI: views, components, stores, i18n (en, ru), wasm plugin host
├── apps/app/src-tauri # Tauri shell: commands, tray, window, updater, plugin backend
├── apps/app/public/plugins # Bundled baseline builds of the wasm plugins
├── packages/core # k0t1k-core: meta, install, java, auth, content, launch, update, plugins
├── icons # Instance icon set (SVG) and its style guide
├── site # Landing page, deployed to GitHub Pages
├── scripts # release.sh: sign and publish a launcher release
└── docs # ARCHITECTURE.md
_k0t1k.exe (Windows) or _k0t1k-x86_64.AppImage (Linux) from Releases.[!NOTE] Windows: 10 or newer with WebView2; the exe is not code-signed yet, so SmartScreen may warn on first start. Linux: x86_64 AppImage for Ubuntu 22.04 or newer and similar systems; make it executable and run it. There is no tray icon on Linux.
Requirements: Rust (edition 2024), Node.js with pnpm, and Windows for the Tauri app. The Tauri crate does not build
on Linux without webkit2gtk, but k0t1k-core builds and tests anywhere.
pnpm install
cargo test -p k0t1k-core # core tests, any OS
pnpm --filter @k0t1k/app check # vue-tsc
pnpm dev # tauri dev
Release build on Windows:
pnpm --filter @k0t1k/app exec vite build
cargo build --release -p k0t1k-app --features tauri/custom-protocol
Build-time keys are read from .env in the repository root by apps/app/src-tauri/build.rs. Each one is optional.
| Variable | Default | Without it |
|---|---|---|
K0T1K_CURSEFORGE_API_KEY | unset | CurseForge is unavailable |
K0T1K_MSA_CLIENT_ID | unset | Microsoft sign-in is unavailable |
K0T1K_DISCORD_CLIENT_ID | unset | Discord Rich Presence is off |
[!WARNING]
.envis git-ignored. CurseForge keys start with$2a$10$, so neversourcethe file in a shell.
scripts/release.sh <exe> <notes> reads the version from the workspace Cargo.toml and checks that the exe embeds it.
It signs "_k0t1k-update\n" + version + "\n" + sha256(exe) with the key in K0T1K_UPDATE_KEY
(default ~/.config/k0t1k/update-signing-key.pem). It refuses a dirty or unpushed tree, then runs
gh release create v<version> with _k0t1k.exe and _k0t1k.exe.sig. Bump the version in Cargo.toml and
apps/app/package.json before each release.
| Item | Link |
|---|---|
| Website | https://hhhhhffd.github.io/_k0t1k/ |
| Releases | https://github.com/hhhhhffd/_k0t1k/releases |
| Support / bug reports | https://discord.gg/zxnMAfUvJ |
AGPL-3.0-only. See LICENSE. Copyright (c) 2026 hhhhhffd.