Settings > Launcher picks an accent (violet by default, blue, teal, green, amber, red, pink) and the player's own picture behind Home. An accent turns the violet tokens to its hue and adjusts their lightness until text on the Play button and the accent on every background read as well as the violet's. The picture is checked, copied under a name of its hash and shown cropped under the banner's veils. CLI: settings accent NAME, settings background PATH|default. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
22 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
--instance: The instance to play (its name or id; default: the selected one)--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--server: Join this server at once: an address, or a server of the list by name or position--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, or as one of your offline names.
horizon-launcher account select <WHO>
WHO
MCP: account_select.
horizon-launcher account offline
Play offline, without an account: as NAME (kept to switch back to; 3 to 16 letters, digits or _), or as the name the game made up.
horizon-launcher account offline [NAME]
NAME
MCP: account_offline.
horizon-launcher account forget-offline
Forget one of your offline names.
horizon-launcher account forget-offline <NAME>
NAME
MCP: account_forget_offline.
horizon-launcher account skin
Show or set an offline name's skin and cape: a 64x64 (or 64x32) skin PNG, a 64x32 cape PNG, the model. Kept by the launcher and given to the game when that name plays.
horizon-launcher account skin <NAME> [FILE]
NAMEFILE: The skin's PNG--model: classic or slim arms--cape: The cape's PNG--no-skin: Back to the default skin--no-cape: Take the cape off
MCP: account_skin.
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, proxy http://host:port ("default" removes it), while-playing stay|minimize|hide (what the window does while the game runs), language system|en|fr|ru (the window's language; system follows the computer's), accent violet|blue|teal|green|amber|red|pink, background PATH (a picture behind Home; "default" shows Horizon's landscape).
horizon-launcher settings [KEY] [VALUE]
KEY(selected-version, minecraft-dir, server-dir, install-new-versions, opening-animation, proxy, while-playing, language, accent, background)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 share-log
Upload an instance's latest.log to mclo.gs (a paste service for Minecraft logs) and print its link, for a bug report: only when the player asks. The home folder, the user name and the account names are taken out first; the link expires after 90 days unread.
horizon-launcher share-log
--instance: The instance (default: the selected one)
MCP: share_log, only when the player asks.
horizon-launcher unshare-log
Delete a log shared with share-log: the ":" it printed.
horizon-launcher unshare-log <SHARED>
SHARED
MCP: unshare_log, needs confirm: true.
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 instance list
The instances, each with its game folder (* = the one Play starts).
horizon-launcher instance list
MCP: instance_list.
horizon-launcher instance create
Make an instance: empty but for your options and name, or a copy of another one's worlds, options and packs.
horizon-launcher instance create <NAME>
NAME--copy: The instance to copy (its name or id)
MCP: instance_create.
horizon-launcher instance rename
Rename an instance (its folder stays).
horizon-launcher instance rename <INSTANCE> <NAME>
INSTANCENAME
MCP: instance_rename.
horizon-launcher instance icon
Set an instance's icon: a block or item name from your prepared files (grass_block), a colour (#3fa7d6), or none.
horizon-launcher instance icon <INSTANCE> <ICON>
INSTANCEICON
MCP: instance_icon.
horizon-launcher instance group
Put an instance in a sidebar group, or take it out with no group.
horizon-launcher instance group <INSTANCE> [GROUP]
INSTANCEGROUP
MCP: instance_group.
horizon-launcher instance select
Make Play start this instance.
horizon-launcher instance select <INSTANCE>
INSTANCE
MCP: instance_select.
horizon-launcher instance version
Keep an instance on one installed Horizon version, or "latest" to follow updates again.
horizon-launcher instance version <INSTANCE> <VERSION>
INSTANCE
MCP: instance_version.
horizon-launcher instance export
Export an instance (or a port) to share: its settings, packs, Horizon mods and the worlds named, as a .mrpack (resource packs from Modrinth listed by download) or a zip. Never logs, screenshots or account data; worlds go without their per-player files.
horizon-launcher instance export [INSTANCE]
INSTANCE: The instance (default: the selected one)--format(mrpack, zip)--world: A world to put in it (its name or folder); repeat for more--out: Where to write it (default: ".mrpack" in the current folder)
MCP: instance_export.
horizon-launcher instance launch
Show or set what runs around an instance's game: a shell command before it (the game starts only if it succeeds), a wrapper it runs through (nice -n 5), and environment variables ("NAME=value NAME2=value"). An empty value clears one. On Linux, also GameMode, MangoHud and the dedicated graphics card, when the computer has them.
horizon-launcher instance launch <INSTANCE>
INSTANCE--pre-launch--wrapper--env--gamemode: Linux: run it through GameMode (gamemoderun), on or off--mangohud: Linux: MangoHud's overlay, on or off--dedicated-gpu: Linux: the dedicated graphics card (DRI_PRIME, or NVIDIA's offload), on or off
MCP: instance_launch, needs confirm: true.
horizon-launcher instance shortcut
Put a shortcut on the desktop that plays an instance (play --instance): a .desktop file (also in the applications menu) on Linux, an app on macOS, a .lnk on Windows.
horizon-launcher instance shortcut [INSTANCE]
INSTANCE: The instance (default: the selected one)--remove: Move the instance's shortcuts to the trash instead
MCP: instance_shortcut.
horizon-launcher instance import
Import what a file is, as dropping it on the window does: a shared instance (a .mrpack without mod loaders, such as instance export writes, or a game folder zip) becomes a new instance; a Java modpack goes to the Modpacks import; a resource or shader pack into the instance (default: the selected one).
horizon-launcher instance import <FILE>
FILE--instance: The instance a pack goes into
MCP: instance_import.
horizon-launcher worlds list
The worlds: name, mode, version, last played and size (the default).
horizon-launcher worlds list
--instance: The instance (default: the selected one)
MCP: worlds_list.
horizon-launcher worlds backup
Zip a world into the instance's backups/ folder, as the game's Make Backup does.
horizon-launcher worlds backup <WORLD>
WORLD: Its folder or name--instance
MCP: worlds_backup.
horizon-launcher worlds copy
Copy a world beside it, as " (1)".
horizon-launcher worlds copy <WORLD>
WORLD--instance
MCP: worlds_copy.
horizon-launcher worlds delete
Move a world to the system's trash.
horizon-launcher worlds delete <WORLD>
WORLD--instance
MCP: worlds_delete, needs confirm: true.
horizon-launcher worlds datapack-list
A world's data packs, and which are on.
horizon-launcher worlds datapack-list <WORLD>
WORLD--instance
MCP: worlds_datapack_list.
horizon-launcher worlds datapack-add
Copy a data pack zip into a world (the game turns it on when the world opens).
horizon-launcher worlds datapack-add <WORLD> <FILE>
WORLDFILE--instance
MCP: worlds_datapack_add.
horizon-launcher worlds datapack-remove
Move a world's data pack to the system's trash.
horizon-launcher worlds datapack-remove <WORLD> <PACK>
WORLDPACK: Its file name, with or without .zip--instance
MCP: worlds_datapack_remove, needs confirm: true.
horizon-launcher packs list
The resource and shader packs, and which are on (the default).
horizon-launcher packs list
--kind(resource, shader): Only this kind--instance: The instance (default: the selected one)
MCP: packs_list.
horizon-launcher packs add
Copy a pack file in: a resource pack .zip, a shader pack .zip or a .hshader.
horizon-launcher packs add <FILE>
FILE--instance
MCP: packs_add.
horizon-launcher packs on
Turn a pack on (a resource pack goes on top; a shader pack replaces the one that was on).
horizon-launcher packs on <PACK>
PACK: Its file name or title--kind(resource, shader)--instance
MCP: packs_on.
horizon-launcher packs off
Turn a pack off.
horizon-launcher packs off <PACK>
PACK--kind(resource, shader)--instance
MCP: packs_off.
horizon-launcher packs remove
Turn a pack off and move it to the system's trash.
horizon-launcher packs remove <PACK>
PACK--kind(resource, shader)--instance
MCP: packs_remove, needs confirm: true.
horizon-launcher screenshots list
The screenshots, the newest first, with their files (the default).
horizon-launcher screenshots list
--instance: The instance (default: the selected one)
MCP: screenshots_list.
horizon-launcher screenshots delete
Move a screenshot to the system's trash.
horizon-launcher screenshots delete <SCREENSHOT>
SCREENSHOT: Its file name, with or without .png--instance
MCP: screenshots_delete, needs confirm: true.
horizon-launcher multiplayer list
The servers of the game's Multiplayer screen (the default).
horizon-launcher multiplayer list
--instance: The instance (default: the selected one)
MCP: multiplayer_list.
horizon-launcher multiplayer add
Add a server to the list.
horizon-launcher multiplayer add <ADDRESS>
ADDRESS: Its address, as in the game's Add Server (host or host:port)--name: Its name in the list (default: Minecraft Server)--instance
MCP: multiplayer_add.
horizon-launcher multiplayer remove
Remove a server from the list: its position from 1, name or address.
horizon-launcher multiplayer remove <SERVER>
SERVER--instance
MCP: multiplayer_remove, needs confirm: true.
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 in an instance (the default).
horizon-launcher mods list
--instance: The instance (default: the selected one)
MCP: mods_list.
horizon-launcher mods search
Search for packs Horizon loads.
horizon-launcher mods search [TEXT]...
TEXT--kind(mod, resource, modpack, shader, datapack)--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 into an instance, by its id or slug (checksums checked); a Java mod is ported into horizon-mods and turned on; a modpack is imported as an instance of its own; a data pack goes into the world --world names.
horizon-launcher mods install <PROJECT>
PROJECT--world: Install the project's data pack into this world of the instance (its name or folder)--instance: The instance (default: the selected one)--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--instance: The instance (default: the selected one)
MCP: mods_update.
horizon-launcher mods remove
Remove a pack the browser installed.
horizon-launcher mods remove <PROJECT>
PROJECT--instance: The instance (default: the selected one)
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--instance: The instance (default: the selected one)
MCP: mods_enable.
horizon-launcher mods disable
Turn off a mod the browser installed; it stays installed.
horizon-launcher mods disable <PROJECT>
PROJECT--instance: The instance (default: the selected one)
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.