# uip tm project

> Syntax and options for `uip tm project`, which manages Test Manager projects as the top-level containers for test cases and sets.

`uip tm project` manages Test Manager projects on the current tenant. A Test Manager project is the top-level container for test cases, test sets, and executions; every other `uip tm` verb scopes to a project via `--project-key`.

## Synopsis

```text
uip tm project list [--limit <n>] [--offset <n>]
uip tm project create --name <name> --project-key <key> [--description <text>]
uip tm project update --project-key <key> [--name <name>] [--description <text>]
uip tm project delete --project-key <key> [-y]
uip tm project set-default-folder --project-key <key> --folder-key <uuid>
uip tm project clear-default-folder --project-key <key>
uip tm project owners list --project-key <key...>
```

All verbs honor the [global options](./global-options.md) and the standard [exit codes](./exit-codes.md). Every verb accepts `-t, --tenant <name>` to target a tenant other than the one in the active session, and `--log-level <level>` for verbosity (`debug`, `info`, `warn`, `error`; default `Information`).

## uip tm project list

List every Test Manager project on the current tenant.

### Arguments

None.

### Options

- `--limit <n>` — maximum number of projects to return per page. Defaults to `50`.
- `--offset <n>` — number of results to skip. Defaults to `0`.

### Example

```bash
uip tm project list --limit 20 --offset 0
```

### Data shape

```json
{
  "Code": "ProjectsList",
  "Data": [
    {
      "ProjectKey": "DEMO",
      "Name": "Demo Project",
      "Description": "Smoke tests",
      "Active": true
    }
  ]
}
```

## uip tm project create

Create a new Test Manager project. The project is created as **active**.

### Arguments

None.

### Options

- `--name <name>` *(required)* — project name.
- `--project-key <key>` *(required)* — project key / prefix (for example, `MYPROJ`). Test case and test set object keys will be prefixed with this value (for example, `MYPROJ:1`).
- `--description <text>` — free-form project description. Defaults to empty.

### Example

```bash
uip tm project create \
  --name "Demo Project" \
  --project-key DEMO \
  --description "Smoke tests"
```

### Data shape

```json
{
  "Code": "ProjectCreate",
  "Data": {
    "ProjectKey": "DEMO",
    "Id": "a1b2c3d4-0000-0000-0000-000000000001",
    "Name": "Demo Project",
    "Description": "Smoke tests"
  }
}
```

## uip tm project update

Update a project's name or description. Provide at least one of `--name` or `--description`.

### Arguments

None.

### Options

- `--project-key <key>` *(required)* — the project to update.
- `--name <name>` — new name. Omit to leave unchanged.
- `--description <text>` — new description. Omit to leave unchanged.

### Example

```bash
uip tm project update --project-key DEMO --name "Demo Project (2026)"
```

### Data shape

```json
{
  "Code": "ProjectUpdate",
  "Data": {
    "ProjectKey": "DEMO",
    "Id": "a1b2c3d4-0000-0000-0000-000000000001",
    "Name": "Demo Project (2026)",
    "Description": "Smoke tests"
  }
}
```

## uip tm project delete

Delete a Test Manager project by its key. This is unconditional and permanent — all test cases, test sets, and execution history are removed.

### Arguments

None.

### Options

- `--project-key <key>` *(required)* — the project to delete.
- `-y, --yes` — skip the confirmation prompt. Required in non-interactive environments (CI pipelines, scripts).

### Example

```bash
uip tm project delete --project-key DEMO --yes
```

### Data shape

```json
{
  "Code": "ProjectDelete",
  "Data": {
    "ProjectKey": "DEMO",
    "Id": "a1b2c3d4-0000-0000-0000-000000000001",
    "Result": "Deleted"
  }
}
```

## uip tm project set-default-folder

Set the default Orchestrator folder for the project. Test sets created afterwards inherit this folder unless overridden.

### Arguments

None.

### Options

- `--project-key <key>` *(required)* — Test Manager project key.
- `--folder-key <uuid>` *(required)* — Orchestrator folder key (UUID). Get it from `uip or folders list`.

### Example

```bash
uip tm project set-default-folder \
  --project-key DEMO \
  --folder-key f0f0f0f0-0000-0000-0000-000000000001
```

### Data shape

```json
{
  "Code": "ProjectSetDefaultFolder",
  "Data": {
    "ProjectKey": "DEMO",
    "FolderKey": "f0f0f0f0-0000-0000-0000-000000000001",
    "Result": "Updated"
  }
}
```

## uip tm project clear-default-folder

Remove the default Orchestrator folder from a project. After clearing, new test sets do not inherit a folder automatically.

### Arguments

None.

### Options

- `--project-key <key>` *(required)* — Test Manager project key.

### Example

```bash
uip tm project clear-default-folder --project-key DEMO
```

### Data shape

```json
{
  "Code": "ProjectClearDefaultFolder",
  "Data": {
    "ProjectKey": "DEMO",
    "Result": "Cleared"
  }
}
```

## uip tm project owners list

List the owners of one or more Test Manager projects. Pass multiple project keys to get ownership info for several projects in one call.

### Arguments

None.

### Options

- `--project-key <key...>` *(required)* — one or more project keys. Repeat the flag or space-separate values.

### Example

```bash
uip tm project owners list --project-key DEMO
```

### Data shape

```json
{
  "Code": "ProjectOwnersList",
  "Data": [
    {
      "ProjectKey": "DEMO",
      "ProjectId": "a1b2c3d4-0000-0000-0000-000000000001",
      "Owners": [
        {
          "Identifier": "b2c3d4e5-0000-0000-0000-000000000001",
          "IdentityName": "john.doe@uipath.com",
          "DisplayName": "John Doe",
          "Email": "john.doe@uipath.com",
          "ObjectType": "user"
        }
      ]
    }
  ]
}
```

## Related

- [testcases](./uip-test-manager-testcases.md) — create test cases inside a project.
- [testsets](./uip-test-manager-testsets.md) — group test cases into executable suites.

## See also

- [Test Manager overview](./uip-test-manager.md)
- [Authentication](./authentication.md)
- [`uip or folders list`](./uip-orchestrator-folders.md) — source of the folder UUID used by `set-default-folder`.
