uloop launch
Launch Unity Editor with the correct version for a project.
uloop launch is not fire-and-forget. When Unity needs to start or restart, the command waits
until Unity is actually ready for CLI operations before it exits.
Usage
uloop launch [project-path] [options]
Parameters
| Parameter | Type | Description |
|---|---|---|
project-path |
string | Optional. Use only when the target Unity project is not in the current directory. |
-r, --restart |
flag | Kill running Unity and restart |
-q, --quit |
flag | Kill an existing Unity process for the project without launching |
--editor-version <version> |
string | Use this Unity Editor version instead of ProjectVersion.txt |
-p, --platform <P> |
string | Build target (e.g., StandaloneOSX, Android, iOS) |
--max-depth <N> |
number | Search depth when project-path is omitted (default: 3, -1 for unlimited) |
Output
May print status/progress lines before the final JSON payload, such as project path, detected Unity version, or readiness wait messages.
The final JSON payload includes:
Success: whether the command completedReady: whether Unity CLI Loop is ready for commandsServerReady: whether the Unity CLI Loop server accepted requestsProjectIpcReady: whether the project IPC path accepted tool requestsAlreadyRunning: whether an existing Unity process was reusedLaunched: whether this command launched a Unity processRestarted: whether this command stopped an existing process and launched a new oneQuit: whether this command stopped Unity without launching a new processPreviousProcessId: process ID stopped by restart or quit, when availableCurrentProcessId: current Unity process ID, when availableProjectRoot: resolved project rootMessage: readiness summary
When not to use
A single failed, cancelled, or busy command (e.g. right after a domain reload) is not a reason to launch — retry the command instead. Running launch while the Editor is up brings the Unity window to the foreground, which disrupts the user. Reach for launch only when Unity is not running, or still does not respond after retries.
Notes
- If Unity is already running, focuses the existing window and verifies tool readiness
- If process scan is blocked (e.g. sandboxed
ps), plain launch falls back to IPC probing;--restartand--quitstill fail because they need the process id - New Unity processes ignore project compiler errors during Editor startup by default when run by dispatcher 3.0.1-beta.8 or newer; run
uloop updatefirst if an older dispatcher is installed --editor-versiononly affects new Unity processes; use it with--restartto replace an already-running Editor- The command waits until Unity finishes startup and the CLI can connect before returning