Fast, native Minecraft modpack launcher (Windows) plus Hopper Server, a self-hosted server manager with a web panel (Windows, Linux x64/ARM64, Docker). Built in Rust.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗A fast, native Minecraft modpack launcher for Windows, in Rust on GPUI, plus Hopper Server: a self-hosted server panel you use from any browser, on Windows, Linux (x64 and ARM64) or Docker. Hopper is built for playing packs fast, and keeps your Minecraft servers in step with them.
Website · Download hopper.exe (Windows 10 and 11) · Hopper Server downloads (Windows, Linux, ghcr.io/watdafawx/hopperd) · All releases
Hopper started as a tool for my own modded play and servers. I wanted the everyday steps down to one click: every mod changelog since your version right from the mod list, pack updates that keep the mods you added, and servers that stay in step with their pack. Every feature since came from something I needed while playing and running servers, and it grew from there.
In the open: most of Hopper's code is written with help from AI, Anthropic's Claude through Claude Code. I decide what goes in, review the changes and test them in the app before each release. From v0.8.0 on, commits Claude helped with carry a Co-Authored-By: Claude line, so the shows which ones (earlier history was folded into one fresh start).
| Mods, with updates shown old → new | Every changelog since your version |
| Added by me: the mods you added, plus duplicate and missing-dependency warnings | Accounts: an animated 3D skin preview |
| Browse CurseForge and Modrinth | Ctrl+K: jump anywhere or run an action |
| A running server through its panel | Server sync: a server against its pack |
| Logs & crashes, with Crash help |
Download hopper.exe from the latest release. Hopper runs on Windows 10 and 11 (64-bit).
Hopper Server has its own releases (tags hopperd-v…): a zip for Windows, tarballs for Linux x64 and ARM64, and the Docker image ghcr.io/watdafawx/hopperd (amd64 and arm64). See crates/hopperd/README.md for running it.
Run hopper.exe, then use Settings → Updates & install → Install. That copies Hopper
into your apps with Start menu and desktop shortcuts, with no admin rights
needed. Uninstall it from Windows Settings → Apps.
Update source in Settings → Updates & install takes a GitHub repository (owner/name).
Hopper checks its latest release at start and updates itself from it.
Instances folder works) and Mojang's launcher; Settings → Servers at the folder your servers live in (see Your servers). Folders save as you leave the field, and the library refreshes.https://myserver:8443) and an API key. For Crafty: your user → API Keys, with the Commands permission. Servers match by folder name, game port or name.MS_CLIENT_ID in .env, an Azure app id approved for the Minecraft API.CurseForge requires every app to use an API key for searching, installing and checking for updates (the files themselves come from CurseForge's download servers). Hopper's releases have Hopper's own key built in, so CurseForge works with nothing to set up.
You can still use a key of your own, which keeps CurseForge working even if Hopper's key is ever revoked:
Your key stays on your PC, in Windows Credential Manager, and only your copy of Hopper uses it. Once saved, it's used instead of the built-in one; Settings shows which key is in use. Modrinth needs no key at all.
Builds you make yourself have no built-in key: put CF_API_KEY=... in .env, paste your key in Settings, or build with .\scripts\release.ps1 -EmbedKey (see Build).
Some mod authors only allow downloads from the CurseForge website, for every app. When a pack or a mod needs one of those, Hopper shows N files to download in your browser with Open pages. Download them as usual: Hopper watches your Downloads folder, checks each file against CurseForge's checksum, puts it in the instance (even when the browser renamed it to name (1).jar), and deletes it from Downloads.
Hopper works with servers wherever their files can be reached as a folder:
\\PC-NAME\share path. Put that path in Settings → Servers → Server packs, and the PC's name in Server host (for status pings). Server sync then compares and copies files directly. If a panel such as Crafty, MCSS or Pterodactyl runs the servers, add it in Settings → Servers for start/stop, console and backups.Hopper drives servers through their panel's own API, with an API key you make in the panel. The panel keeps running the servers; Hopper is the remote control. Set it up in Settings → Servers: add as many panels as you use, of any kind. Each server is found on the panel that runs it.
| Crafty Controller 4 | MCSS | Pterodactyl / Pelican | Hopper Server | Hosted by Hopper | |
|---|---|---|---|---|---|
| Start, stop, restart, kill | Yes | Yes | Yes | Yes | Yes |
| CPU and memory | Yes | Yes | Yes | Yes | Yes |
| Players online | Names and count | Count | No | Names and count | Names and count |
| World size | Yes | No | No | In its Worlds tab | No |
| Read the console | Yes | Yes | Yes | Yes | Yes |
| Send console commands | Yes | Yes | Yes | Yes | Yes |
| Backups: list, run, restore | Yes | No (use MCSS) | No (use the panel) | Yes, plus off-site copies | A backup mod's backups |
| Launch command follows NeoForge updates | Yes | No | No | Yes | Yes (Hopper runs it) |
| Server sync (copy mods and configs) | Shared folder, SFTP or FTP | Shared folder, SFTP or FTP | SFTP | Yes, over its API | Yes |
Server files over the network: Settings → Servers → Server files over SFTP or FTP. Point Hopper at a server's folder, or a folder of servers, on any SFTP, FTPS or FTP server: a rented host, Pterodactyl's SFTP, a PC with an SSH server. Hopper keeps a copy of each server's mods, configs and start scripts, fetches only files that changed, and uploads only what the sync changes. Files it replaces or removes on the server go to the server's own .hopper-backups/<time>/ first. The password (or key passphrase) is kept in Windows Credential Manager, and an SFTP server's key is remembered the first time: a different key later stops the connection.
Limits:
ptlc_…, Account → API Credentials). For sync, add its SFTP under server files: port 2022, user <your panel user>.<server id>, your panel password (API keys don't work for SFTP). One entry per server for now.Rust 1.98 (see rust-toolchain.toml).
cargo run --bin hopper # debug build
.\scripts\release.ps1 # dist\hopper.exe and a zip for a GitHub release
.\scripts\release.ps1 -EmbedKey # same, with CF_API_KEY from .env built in
cargo test # library tests
Dev builds optimize dependencies, so GPUI runs at full speed. Only Hopper's own code stays unoptimized.
src/*.rs is the library: CurseForge and Modrinth, instances, other launchers, installs, pack diffs, servers, hosting, server sync, peers, server panels, logs, accounts and self-update.src/gpui/ is the app.docs/ is the website (watdafawx.github.io/hopper), served by GitHub Pages from main. Screenshots live in docs/screenshots/; retake them with hopper --mcp (see below).Hopper is plain Rust (no web stack), MIT licensed, and meant to be changed. Forks and pull requests are welcome: fix a bug, add a server panel or a launcher, or take it somewhere new.
cargo run --bin hopper builds and runs it. Dependencies are optimized even in dev builds, so it runs at full speed while you work.ServerPanel trait (see src/panel/mcss.rs for a small one).hopper --mcp lets scripts and AI agents screenshot and drive the app, which helps when testing a change.cargo test --lib before sending a PR.hopper --mcp serves MCP on
http://127.0.0.1:47801/mcp. An agent can screenshot the window, read its
state, navigate, click, hover, scroll and type, all without desktop control.
Dev arguments for scripted runs:
--page browse|servers|sync|settings--instance <name> and --tab <tab>--search <text>--server <name>--theme "<name>", which applies for that run only--dialog new|export|versions|update|sideBump version in Cargo.toml, commit, then tag and push:
git tag v0.4.0
git push origin v0.4.0
The Release workflow builds hopper.exe and a zip and attaches them to the
GitHub release; installed copies offer the update at their next start.
The Release workflow builds Hopper's CurseForge key in (scrambled) from the
CF_API_KEY repository secret; local builds only do with -EmbedKey.