Skip to content

config.json ​

json
{
  "$schema": "node_modules/@thomasfarineau/anvil/src/client/config.schema.json",
  "identifier": "com.mycompany.launcher",
  "app_name": "My Launcher",
  "data_folder": ".my-launcher",
  "java_version": 21,
  "logo": "logo.svg",
  "session": "none",
  "microsoft-client-id": "",
  "update_url": "",
  "target": "dist",
  "window": {
    "decorations": true,
    "resizable": true,
    "width": 1000,
    "height": 660,
    "shadow": true,
    "transparent": false,
    "devtools": true
  },
  "instances": [
    {
      "id": "survival",
      "name": "Survival",
      "mc_version": "1.21.4"
    },
    {
      "id": "modded",
      "name": "Modded",
      "mc_version": "1.21.4",
      "loader": "fabric",
      "loader_version": "0.16.9",
      "mods": [
        {
          "name": "Sodium",
          "url": "https://cdn.modrinth.com/data/AANobbMI/versions/.../sodium-fabric-0.6.5.jar"
        }
      ]
    }
  ]
}

Field reference ​

FieldTypeDescription
identifierstringReverse-domain app identifier (e.g. com.mycompany.launcher)
app_namestringApp name shown in the native window and UI
data_folderstringSub-folder in %APPDATA% / ~/Library for game data
java_version17 | 21Java version to download automatically
logostringPath to the logo (relative to src/) — .svg or .png, auto-converted to app icon
session"none" | "microsoft" | "custom" | "anvil-session"Authentication mode — see Session and Anvil Server
microsoft-client-idstringMicrosoft Entra application ID required by the "microsoft" session
update_urlstringURL of the update manifest (leave empty to disable)
targetstringOutput folder for compiled executables (e.g. dist)
windowobjectNative launcher window settings
window.decorationsbooleanShow the native title bar
window.resizablebooleanAllow the user to resize the window
window.widthintegerInitial launcher width in logical pixels (minimum 800)
window.heightintegerInitial launcher height in logical pixels (minimum 520)
window.shadowbooleanShow the native window shadow
window.transparentbooleanUse a transparent native window background
window.devtoolsbooleanEnable or disable webview developer tools during npm run dev
instancesarrayList of available Minecraft instances (ignored when anvil-server is set)
anvil-serverstringBase URL of an anvil-server: the launcher fetches its enabled instances from it at startup
anvil-keystringAPI key generated in the anvil-server web UI — required to query the server

Instance fields ​

FieldTypeDescription
idstringUnique identifier (used as the folder name)
namestringLabel shown on the play button
mc_versionstringMinecraft version (e.g. "1.21.4")
loader"fabric" | "forge" | "neoforge" | "quilt"Mod loader (optional)
loader_versionstringMod loader version (e.g. "0.16.9")
server_ipstringServer IP for auto-connect on launch
server_portnumberServer port (default: 25565)
modsarrayMods downloaded into the instance — see Mods per instance
filesarrayExtra files ({path, url}) deployed into the instance folder at setup — usually provided by an anvil-server

Next steps ​

Released under the MIT License.