The Mods page gets a fourth kind, Shader packs, which searches Horizon's registry and installs a `.hshader` into `shaderpacks/` once `index::check_file` has run the game's own `horizon_shader_api::check`. Modrinth and CurseForge answer that tab with a pointer to the registry: their shader packs are the shaders/ format and are not offered. The sample index lists a shader pack (`glow`, made with `horizon-shader new` and `pack`), so the registry build, check_file and the launcher's install are tested on a real file. A file of the same name the registry didn't put in place is no longer called a mod. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
12 KiB
Launcher commands
Every command of horizon-launcher, and the tool horizon-launcher mcp offers for it. A tool's arguments are the command's, in snake_case. A tool runs the command with --json and returns what it printed. The tools that change the player's things for good need confirm: true. The tools that send something or reach other people say "only when the player asks". The game's own tools, game_*, are in horizon-ctl-commands.md. With No AI on, mcp and agent-config are hidden and refuse; every other command stays. See agent-control.md.
horizon-launcher versions
List Horizon releases, or the installed versions.
horizon-launcher versions
--installed: Only the versions installed here (no network)
MCP: versions.
horizon-launcher install
Download and install a release (a tag such as v2026.10.13, or "latest").
horizon-launcher install <TAG>
TAG
MCP: install.
horizon-launcher remove
Remove an installed version.
horizon-launcher remove <TAG>
TAG
MCP: remove, needs confirm: true.
horizon-launcher prepare
Prepare a version's resources from your own Minecraft install.
horizon-launcher prepare
--minecraft: The game folder of the official launcher, Prism Launcher, MultiMC, the Modrinth App, ATLauncher or GDLauncher (default: the launcher's, then every launcher's default)
MCP: prepare.
horizon-launcher play
Start the client.
horizon-launcher play
--world: Open or create this world (a folder under saves) at once--creative: Creative mode for a new world--join: Join a friend's world with its invite code--arg: An extra argument for the game, passed through as-is (repeatable), for example --server-thread
MCP: play, then the game_* tools.
horizon-launcher server
Run a dedicated server here; type commands into its console.
horizon-launcher server
--dir: The server's folder (default: the one the launcher uses)--accept-eula: Agree to the Minecraft EULA (https://aka.ms/MinecraftEULA)
MCP: server, server_command, server_log, server_stop.
horizon-launcher notes
Show a release's patch notes (default: the newest).
horizon-launcher notes [TAG]
TAG
MCP: notes.
horizon-launcher links
Show the Discord, sponsor and website links.
horizon-launcher links
MCP: links.
horizon-launcher account list
The signed-in accounts and which one plays.
horizon-launcher account list
MCP: account_list.
horizon-launcher account sign-in
Sign in with a Microsoft account in your browser (device code).
horizon-launcher account sign-in
MCP: account_sign_in.
horizon-launcher account sign-out
Sign out: the account's tokens leave the keychain.
horizon-launcher account sign-out <WHO>
WHO: Its name or UUID
MCP: account_sign_out, needs confirm: true.
horizon-launcher account select
Play as this account.
horizon-launcher account select <WHO>
WHO
MCP: account_select.
horizon-launcher account offline
Play offline, without an account.
horizon-launcher account offline
MCP: account_offline.
horizon-launcher settings
Show the launcher's settings, or set one (the Settings page): selected-version TAG, minecraft-dir PATH, server-dir PATH ("default" resets a folder), install-new-versions on|off, opening-animation on|off.
horizon-launcher settings [KEY] [VALUE]
KEY(selected-version, minecraft-dir, server-dir, install-new-versions, opening-animation)VALUE: The new value (with KEY)
MCP: settings.
horizon-launcher game-args
Show or set the extra arguments the game starts with (for example --server-thread); quotes group a word with spaces in it.
horizon-launcher game-args [ARGS]
ARGS: Omit to show the current arguments
MCP: game_args.
horizon-launcher logs
Print the end of the game's log (logs/latest.log in the game folder), or its newest crash report.
horizon-launcher logs
--lines: How many lines of latest.log--crash: The newest crash report instead
MCP: logs.
horizon-launcher update
Look for a newer Horizon release and launcher, and install them.
horizon-launcher update
--check: Only report what is available
MCP: update.
horizon-launcher desktop-entry
Linux: put Horizon in the applications menu (an entry and the icon, under $XDG_DATA_HOME), or take it out with --remove.
horizon-launcher desktop-entry
--remove: Remove the entry and the icon, and stop adding them back
MCP: desktop_entry.
horizon-launcher data status
What is allowed, the install ID and how many items wait (the default).
horizon-launcher data status
MCP: data_status.
horizon-launcher data allow
Turn kinds on: performance, crashes, bugs, benchmarks, or all.
horizon-launcher data allow <KINDS>...
KINDS
MCP: data_allow, only when the player asks.
horizon-launcher data deny
Turn kinds off: performance, crashes, bugs, benchmarks, or all.
horizon-launcher data deny <KINDS>...
KINDS
MCP: data_deny.
horizon-launcher data show
Print exactly what would be sent.
horizon-launcher data show
MCP: data_show.
horizon-launcher data delete
Delete everything sent from here, and what waits, and take a new install ID.
horizon-launcher data delete
MCP: data_delete, needs confirm: true.
horizon-launcher data send
Send what is waiting now.
horizon-launcher data send
MCP: data_send, only when the player asks.
horizon-launcher data bug
Send a bug report you write; it is printed first, as it would leave.
horizon-launcher data bug <TEXT>
TEXT--log: Add the end of the game's log (scrubbed, without chat)--yes: Send without asking
MCP: data_bug, only when the player asks.
horizon-launcher data benchmark
Upload a benchmark report (docs/benchmark-report.md); it is printed first.
horizon-launcher data benchmark <FILE>
FILE--yes
MCP: data_benchmark, only when the player asks.
horizon-launcher modpack list
The imported packs and their coverage (the default).
horizon-launcher modpack list
MCP: modpack_list.
horizon-launcher modpack import
Import a .mrpack, a CurseForge zip or an instance folder, and write its coverage report.
horizon-launcher modpack import <PATH>
PATH
MCP: modpack_import.
horizon-launcher modpack port
Get the jars of what this computer can port and carry them over.
horizon-launcher modpack port <PACK>
PACK: The pack's folder name, as list shows it--from: A folder with your own jars (an installed instance, a downloads folder)
MCP: modpack_port.
horizon-launcher modpack play
Play a ported pack as its own profile.
horizon-launcher modpack play <PACK>
PACK
MCP: modpack_play.
horizon-launcher modpack remove
Remove an imported pack: its jars, ports and the profile's saves.
horizon-launcher modpack remove <PACK>
PACK
MCP: modpack_remove, needs confirm: true.
horizon-launcher mods list
What the browser installed (the default).
horizon-launcher mods list
MCP: mods_list.
horizon-launcher mods search
Search for packs Horizon loads.
horizon-launcher mods search [TEXT]...
TEXT--kind(mod, resource, modpack, shader)--everything: Also what was made for other versions or runs only partly, each marked--source(modrinth, curseforge, horizon)
MCP: mods_search.
horizon-launcher mods check
Say how well a Java mod runs in Horizon: its jar is downloaded (checksum checked), carried over and read; the answer is kept.
horizon-launcher mods check <PROJECT>
PROJECT--everything: Allow a version made for another Minecraft version (1.21 and later)--source(modrinth, curseforge, horizon)
MCP: mods_check.
horizon-launcher mods install
Install a pack and what it needs, by its id or slug (checksums checked); a Java mod is ported into horizon-mods and turned on; a modpack is imported.
horizon-launcher mods install <PROJECT>
PROJECT--everything: Allow a version made for another Minecraft version--source(modrinth, curseforge, horizon)
MCP: mods_install.
horizon-launcher mods update
Update what the browser installed (or one pack).
horizon-launcher mods update [PROJECT]
PROJECT--check: Only say what is newer
MCP: mods_update.
horizon-launcher mods remove
Remove a pack the browser installed.
horizon-launcher mods remove <PROJECT>
PROJECT
MCP: mods_remove, needs confirm: true.
horizon-launcher mods enable
Turn on a mod the browser installed (horizon-mods.txt, as the game's Options > Mods does).
horizon-launcher mods enable <PROJECT>
PROJECT
MCP: mods_enable.
horizon-launcher mods disable
Turn off a mod the browser installed; it stays installed.
horizon-launcher mods disable <PROJECT>
PROJECT
MCP: mods_disable.
horizon-launcher servers list
The servers, their folder and whether they run.
horizon-launcher servers list
MCP: servers_list.
horizon-launcher servers create
Create a server; with no options it is a new world, survival, normal, 10 players, friends only.
horizon-launcher servers create
--name--seed: The new world's seed (default: random)--copy-world: Start from a copy of this world folder (one of your saves)--mode(survival, creative, adventure, spectator)--difficulty(peaceful, easy, normal, hard)--max-players--open: Let anyone in (no whitelist)--check-accounts: Check players' Minecraft accounts (they must sign in with Microsoft)--player: Who may join (repeatable); the first becomes an operator--accept-eula: Agree to the Minecraft EULA (https://aka.ms/MinecraftEULA)
MCP: servers_create, only when the player asks.
horizon-launcher servers set-up
Copy an installed, prepared version's programs and game files for the servers (again).
horizon-launcher servers set-up
MCP: servers_set_up.
horizon-launcher servers run
Run a horizon-server command on a server, for example: servers run "My server" -- status.
horizon-launcher servers run <SERVER> -- <ARGS>...
SERVER: The server's name or folderARGS
MCP: servers_run.
horizon-launcher servers forget
Take a server off the list (its folder stays).
horizon-launcher servers forget <SERVER>
SERVER
MCP: servers_forget, needs confirm: true.
horizon-launcher mcp
Serve the Model Context Protocol on stdin and stdout, for AI agents (refused while No AI is on).
horizon-launcher mcp
MCP: none: this command is the MCP server.
horizon-launcher agent-config
How to connect an AI agent (Claude Code, Codex, Cursor, any MCP client) to mcp: the config to paste and the command that adds it (refused while No AI is on).
horizon-launcher agent-config
--client(claude-code, codex, cursor, generic): Only this client--test: Start the MCP server as a client would and say whether it answered
MCP: none: it prints how to connect a client to mcp.
horizon-launcher no-ai
Show or set No AI: on hides and turns off every AI feature (the companion, agent control, horizon-ctl and both MCP servers); off, the default, makes them available.
horizon-launcher no-ai [STATE]
STATE(on, off): Omit to show the current state
MCP: none: the player's switch.
horizon-launcher benchmark
Measure the launcher: starts (the first is the cold one), page switching, idle CPU and memory, the release list fetch; writes a benchmark report to benchmarks/ in its data folder.
horizon-launcher benchmark
--repeats: How many times to start it
MCP: benchmark.