Install from GitHub
An author can ship a native mod without a registry pull request per version: the player installs it from a
GitHub link, on the Mods page ("Add from GitHub") or with horizon-launcher mods add-github <url> [--mod ID | --all] [--instance NAME] --trust-native-code. The link is https://github.com/<owner>/<repo>
(its latest release), .../releases/tag/<tag>, .../tree/<ref> or .../commit/<sha>.
- Resolved to something exact. GitHub's public API (no sign-in; a rate limit is said plainly, and
HORIZON_GITHUB_TOKENraises it) turns the link into a release's.hmodfile or a commit SHA, never a branch that moves. A release with a.hmodasset installs that file (its SHA-256 is compared with the one GitHub lists). With no release or no such asset, the launcher fetchescodeload.github.com/<owner>/<repo>/tar.gz/<sha>and looks in it for mods by the rules ofnative-build <folder>: a flat project withhorizon-mod.toml,[native],Cargo.tomlandsrc/. Several mods: they are listed, and the player picks one or installs all. Each source folder pins the Horizon commit in[native] horizon; the launcher packs the checked project into a.hmod. Release packages must contain native code; content-only packages are rejected by this native installer. - Checked like the registry's files. The
.hmodis read ashorizon_mod_package::index::native::Bundle::readreads a registry file (flat source and content, size limits, nothing run) before it is installed. - Said first. Before anything is downloaded: "not reviewed by the Horizon registry; native mods run with full
access to this computer; read the source", with a link to the exact commit. The command needs
--trust-native-code, asnative-builddoes. It is not an MCP tool: trusting native code is the player's decision, never an agent's. - Origin kept.
horizon-native-mods/<id>.origin.jsonbeside the.hmod: owner/repo, release tag (for a release), commit, asset name and the SHA-256 of the installed file.mods listshows "from GitHub: owner/repo @ tag" (or the commit's first 7 digits). - Updates.
horizon-launcher mods update-github [ID] [--check]compares a mod from a release with the repository's latest release, and a mod from a commit with the head of the default branch; a newer one is installed with the same warning and--trust-native-code.mods remove <id>removes it. A mod already installed from the registry (or by hand) is never replaced.
Installing turns Native mods on, as any native mod does; then build as usual.