# uip solution list

> Syntax and options for `uip solution list`, which lists Studio Web solutions or scans a directory for local ones.

:::note Preview
`uip solution list` is a Preview command — it may change without a MAJOR version bump. See [Versioning](./versioning.md).
:::

`uip solution list` has two modes. By default, it lists the Studio Web solutions you own or that are shared with you — the `SolutionId`s it returns are what [`uip solution download`](./uip-solution-download.md) and `uip solution delete` take. With `--local`, it instead scans a directory tree for local solutions (`.uipx` manifests) and flags stale or ambiguous ones.

## Synopsis

```
uip solution list [-l <n>] [--offset <n>] [--name <pattern>] [--sort-by <column>] [--sort-order <Ascending|Descending>]
uip solution list --local [directory] [--check-cloud]
```

## Cloud mode (default)

Lists Studio Web solutions. Requires an authenticated session with an organization name resolved.

### Options

| Short | Long | Value | Default | Description |
|---|---|---|---|---|
| `-l` | `--limit` | number (1–100) | `50` | Maximum solutions to return. |
| — | `--offset` | number | `0` | Number of solutions to skip. |
| — | `--name` | text | — | Server-side keyword filter on solution name. |
| — | `--sort-by` | column | server default | Column to sort by. |
| — | `--sort-order` | `Ascending` \| `Descending` | — | Sort direction. |
| — | `--login-validity` | minutes | `10` | Minimum minutes before token expiration to trigger a refresh. |

The cloud-only options above are rejected with an error if passed together with `--local` or `--check-cloud`.

### Examples

```bash
uip solution list --limit 2
```

### Data shape (--output json)

```json
{
  "Code": "SolutionsList",
  "Data": [
    {
      "Id": "a1b2c3d4-0000-0000-0000-000000000001",
      "Name": "Examples",
      "LastModifiedTime": "2025-04-15T10:30:00Z",
      "PublishStatus": "draft",
      "Projects": []
    }
  ]
}
```

## Local mode (--local)

Scans a directory tree for local solutions by finding `.uipx` manifests, instead of calling Studio Web.

### Options

| Long | Value | Default | Description |
|---|---|---|---|
| `--local [directory]` | path | current dir | Scan this directory tree for `.uipx` manifests. Bare `--local` scans the current directory. |
| `--check-cloud` | flag | off | Also resolve each local solution's `SolutionId` against Studio Web and report `OK` / `NotFound`. Implies `--local` and requires authentication. |

### Examples

```bash
uip solution list --local ./workspace

uip solution list --local ./workspace --check-cloud
```

### Data shape (--output json)

```json
{
  "Code": "LocalSolutionsList",
  "Data": [
    {
      "Path": "Examples",
      "Name": "Examples",
      "UipxFile": "Examples.uipx",
      "SolutionId": "a1b2c3d4-0000-0000-0000-000000000001",
      "ProjectCount": 2,
      "Warnings": []
    }
  ]
}
```

With `--check-cloud`, each row adds a `CloudStatus` field (`OK` or `NotFound`). If the scan couldn't enter some subtree, the response's `Instructions` field names which ones were skipped — the list may be incomplete in that case.

## Exit codes

See [Exit codes](./exit-codes.md) for the shared contract.

## Related commands

- [`uip solution download`](./uip-solution-download.md) — download a solution found here by `Id`.

## See also

- [Global options](./global-options.md), [Exit codes](./exit-codes.md), and [Versioning](./versioning.md) — contracts shared by every verb.
