---
name: uloop-launch
description: "Use when Unity Editor is not running or needs a clean restart."
---

# 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

```bash
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` | boolean | Kill running Unity and restart |
| `-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) |
| `-a, --add-unity-hub` | boolean | Add to Unity Hub only (does not launch) |
| `-f, --favorite` | boolean | Add to Unity Hub as favorite (does not launch) |

## Examples

```bash
# Search for Unity project in current directory and launch
uloop launch

# Launch specific project
uloop launch /path/to/project

# Restart Unity (kill existing and relaunch)
uloop launch -r

# Launch with build target
uloop launch -p Android

# Add project to Unity Hub without launching
uloop launch -a
```

## Output

- Prints detected Unity version
- Prints project path
- If Unity is already running, focuses the existing window
- If launching, waits until Unity finishes startup and the CLI can connect to the project
