# uip or packages

> Syntax and options for `uip or packages`, which manages automation `.nupkg` artifacts uploaded to an Orchestrator feed.

`uip or packages` manages the automation packages (`.nupkg` artifacts) uploaded to an Orchestrator feed. Packages are tenant-scoped — no folder context is needed for any verb on this page. Use [`uip or processes`](./uip-orchestrator-processes.md) to bind a package to a folder as a runnable process.

## Synopsis

```
uip or packages <verb> [options]
```

## Verbs

| Verb | Purpose |
|---|---|
| `list` | List packages in the feed. |
| `get` | Fetch one package version by key. |
| `versions` | List all versions of a package. |
| `entry-points` | List workflow entry points (with input/output schemas) for a package version. |
| `upload` | Upload a `.nupkg` to the feed. |
| `download` | Download a `.nupkg` from the feed. |

## uip or packages list

List packages in the feed. Returns the package version key (format `PackageId:Version`), title, version, and metadata.

### Options

| Short | Long | Value | Default | Description |
|---|---|---|---|---|
| `-t` | `--tenant` | name | session default | Override the tenant. |
| `-s` | `--search` | text | — | Search packages by name. |
| — | `--feed-id` | GUID | tenant feed | Target a specific feed. Use `feeds list` to discover IDs. |
| — | `--all-fields` | flag | off | Return the full API payload. |
| `-l` | `--limit` | number | `50` | Page size. |
| — | `--offset` | number | `0` | Skip count. |
| — | `--order-by` | field | `Id desc` | OData sort. |

### Examples

```bash
uip or packages list
uip or packages list --search Invoice --limit 20
uip or packages list --output-filter 'Data[].{id:Id, v:Version}'
```

### Data shape (--output json)

```json
{
  "Code": "PackageList",
  "Data": [
    {
      "Key": "InvoiceProcessing:1.0.2",
      "Title": "InvoiceProcessing",
      "Version": "1.0.2",
      "Description": "",
      "IsLatestVersion": true,
      "IsActive": true,
      "PackageType": "Process",
      "TargetFramework": "Windows",
      "Authors": "Finance Team",
      "Published": "2025-04-10T08:00:00Z",
      "Id": "InvoiceProcessing"
    }
  ],
  "Pagination": { "Returned": 1, "Limit": 50, "Offset": 0, "HasMore": false }
}
```

## uip or packages get

Fetch a specific package version. The key format is `PackageId:Version`.

### Arguments

| Name | Required | Purpose |
|---|---|---|
| `<key>` | yes | Package version key (for example, `MyProcess:1.0.0`). |

### Options

| Short | Long | Value | Default | Description |
|---|---|---|---|---|
| `-t` | `--tenant` | name | session default | Override the tenant. |
| — | `--feed-id` | GUID | tenant feed | Target a specific feed. |
| — | `--all-fields` | flag | off | Return the full API payload. |

### Examples

```bash
uip or packages get InvoiceProcessing:1.0.2
uip or packages get InvoiceProcessing:1.0.2 --all-fields
uip or packages get InvoiceProcessing:1.0.2 --output-filter 'Data.ReleaseNotes'
```

### Data shape (--output json)

```json
{
  "Code": "PackageGet",
  "Data": {
    "Key": "InvoiceProcessing:1.0.2",
    "Title": "InvoiceProcessing",
    "Version": "1.0.2",
    "Description": "Processes vendor invoices",
    "IsLatestVersion": true,
    "IsActive": true,
    "PackageType": "Process",
    "TargetFramework": "Windows",
    "Authors": "Finance Team",
    "Published": "2025-04-10T08:00:00Z",
    "ReleaseNotes": "Fix amount rounding bug",
    "Id": "InvoiceProcessing"
  }
}
```

## uip or packages versions

List all versions of a package. Use this before calling `processes create --package-version`.

### Arguments

| Name | Required | Purpose |
|---|---|---|
| `<package-id>` | yes | Package ID (for example, `MyProcess`). |

### Options

| Short | Long | Value | Default | Description |
|---|---|---|---|---|
| `-t` | `--tenant` | name | session default | Override the tenant. |
| — | `--feed-id` | GUID | tenant feed | Target a specific feed. |
| `-l` | `--limit` | number | `50` | Page size. |
| — | `--offset` | number | `0` | Skip count. |
| — | `--order-by` | field | `Id desc` | OData sort. |

### Examples

```bash
uip or packages versions InvoiceProcessing
uip or packages versions InvoiceProcessing --limit 5
uip or packages versions InvoiceProcessing \
    --output-filter 'Data[?IsLatestVersion].Version | [0]'
```

### Data shape (--output json)

```json
{
  "Code": "PackageVersionList",
  "Data": [
    {
      "Key": "InvoiceProcessing:1.0.2",
      "Title": "InvoiceProcessing",
      "Version": "1.0.2",
      "Description": "",
      "IsLatestVersion": true,
      "IsActive": true,
      "PackageType": "Process",
      "TargetFramework": "Windows",
      "Authors": "Finance Team",
      "Published": "2025-04-10T08:00:00Z",
      "Id": "InvoiceProcessing"
    }
  ]
}
```

## uip or packages entry-points

List workflow entry points for a package version, including input/output argument schemas. Use the entry-point path with `processes create --entry-point` for multi-entry-point packages.

### Arguments

| Name | Required | Purpose |
|---|---|---|
| `<key>` | yes | Package version key (for example, `MyProcess:1.0.0`). |

### Options

| Short | Long | Value | Default | Description |
|---|---|---|---|---|
| `-t` | `--tenant` | name | session default | Override the tenant. |
| — | `--feed-id` | GUID | tenant feed | Target a specific feed. |

### Examples

```bash
uip or packages entry-points InvoiceProcessing:1.0.2
uip or packages entry-points InvoiceProcessing:1.0.2 \
    --output-filter 'Data[].Path'
uip or packages entry-points InvoiceProcessing:1.0.2 --output table
```

### Data shape (--output json)

```json
{
  "Code": "PackageEntryPoints",
  "Data": [
    {
      "UniqueId": "a1b2c3d4-0000-0000-0000-000000000001",
      "Path": "Main.xaml",
      "DisplayName": "Main",
      "InputArguments": "{\"invoicePath\":\"String\"}",
      "OutputArguments": "{\"result\":\"String\"}"
    }
  ]
}
```

## uip or packages upload

Upload a `.nupkg` package to the feed. After upload, bind it to a folder with `uip or processes create`.

### Arguments

| Name | Required | Purpose |
|---|---|---|
| `<file>` | yes | Path to the `.nupkg` file. |

### Options

| Short | Long | Value | Default | Description |
|---|---|---|---|---|
| `-t` | `--tenant` | name | session default | Override the tenant. |
| — | `--feed-id` | GUID | tenant feed | Upload to a specific feed. |

### Examples

```bash
uip or packages upload ./InvoiceProcessing.1.0.3.nupkg
uip or packages upload ./dist/MyProcess.2.0.0.nupkg --feed-id a1b2c3d4-0000-0000-0000-000000000001
uip or packages upload ./InvoiceProcessing.1.0.3.nupkg --output-filter 'Data[0].body'
```

### Data shape (--output json)

```json
{
  "Code": "PackageUploaded",
  "Data": [
    {
      "key": "InvoiceProcessing.1.0.3.nupkg",
      "status": "Created",
      "body": "InvoiceProcessing:1.0.3"
    }
  ]
}
```

## uip or packages download

Download a `.nupkg` from the feed. Requires `--destination`.

### Arguments

| Name | Required | Purpose |
|---|---|---|
| `<key>` | yes | Package version key (for example, `MyProcess:1.0.0`). |

### Options

| Short | Long | Value | Default | Description |
|---|---|---|---|---|
| `-t` | `--tenant` | name | session default | Override the tenant. |
| — | `--feed-id` | GUID | tenant feed | Target a specific feed. |
| `-d` | `--destination` | path | **required** | Where to save the downloaded `.nupkg`. |

### Examples

```bash
uip or packages download InvoiceProcessing:1.0.2 \
    --destination ./InvoiceProcessing.1.0.2.nupkg

uip or packages download InvoiceProcessing:1.0.2 -d /tmp/ip.nupkg \
    --feed-id a1b2c3d4-0000-0000-0000-000000000001

uip or packages download InvoiceProcessing:1.0.2 -d ./ip.nupkg \
    --output-filter 'Data.SavedTo'
```

### Data shape (--output json)

```json
{
  "Code": "PackageDownloaded",
  "Data": {
    "Key": "InvoiceProcessing:1.0.2",
    "SavedTo": "./InvoiceProcessing.1.0.2.nupkg",
    "Size": "512000 bytes"
  }
}
```

## Exit codes

See [Exit codes](./exit-codes.md). No verb-specific overrides.

## Related commands

- [`uip or processes`](./uip-orchestrator-processes.md) — bind a package to a folder as a process.
- [`uip or feeds`](./uip-orchestrator-feeds.md) — discover available feed IDs.
- [`uip or jobs`](./uip-orchestrator-jobs.md) — especially `jobs start`, which uses the process key (not the package key) from `processes list`.

## See also

- [Global options](./global-options.md).
