Files
horizon-airdef/docs/launcher-commands.md
T
Ludovic Marie 8beaa57331 launcher: an accent colour and a picture behind Home
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>
2026-10-27 05:07:38 +01:00

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

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.

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]
  • NAME
  • FILE: 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>
  • INSTANCE
  • NAME

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>
  • INSTANCE
  • ICON

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]
  • INSTANCE
  • GROUP

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>
  • WORLD
  • FILE
  • --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>
  • WORLD
  • PACK: 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.

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 folder
  • ARGS

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.