# uip rpa pack

> `uip rpa pack` packages a UiPath Studio project directory into a `.nupkg` archive that can be uploaded to Orchestrator or published to a feed. It is the modern replacement for `uipcli package pack` from the legacy .NET CLI — see [Migration — package pack](./migration-command-map.md#package-pack) for the full flag-to-flag map.

`uip rpa pack` packages a UiPath Studio project directory into a `.nupkg` archive that can be uploaded to Orchestrator or published to a feed. It is the modern replacement for `uipcli package pack` from the legacy .NET CLI — see [Migration — package pack](./migration-command-map.md#package-pack) for the full flag-to-flag map.

:::warning
**Runtime requirements**

- **.NET runtime** must be available on the runner — the Studio packager is .NET-backed. See [Breaking changes — .NET runtime](./migration-breaking-changes.md#runtime-change-nodejs-18-replaces-net-as-the-cli-runtime-rpa-tool-keeps-a-net-dependency).
- **Windows runner for Windows projects.** Cross-platform Studio projects (`targetFramework: "Portable"`) can be packed on any OS. **Windows projects** (`targetFramework: "Windows"`) require a Windows runner — the Linux and macOS workflow compilers cannot resolve Windows-only references. **Windows - Legacy projects** require [`uip rpa-legacy`](./uip-rpa-legacy.md), which is Windows-only by design. See [uip rpa overview](./uip-rpa.md) for details.
:::

## Synopsis

```
uip rpa pack <project> [options]
```

- `<project>` — path to the Studio project (a directory containing `project.json`).

For the complete option list on your installed tool version, run:

```bash
uip rpa pack --help
```

The flag set is the same in concept as legacy `uipcli package pack`: output directory, package version override, project properties, include/exclude filters, output-type (`Process` / `Library` / `Tests`), auto-version, and signing material. Flag names are kebab-case (`--output-type`, `--auto-version`, `--certificate-path`) rather than the PascalCase used by `uipcli`; see [Migration — package pack](./migration-command-map.md#package-pack) for the legacy-to-new flag map.

## Migration from the legacy .NET CLI

| Legacy .NET CLI | Modern CLI |
|---|---|
| `uipcli package pack <project>` | `uip rpa pack <project>` |

See [Migration — package pack](./migration-command-map.md#package-pack) for the full flag-level map.

## Related

- [uip rpa analyze](./uip-rpa-analyze.md) — run the workflow analyzer before packing.
- [uip rpa restore](./uip-rpa-restore.md) — ensure dependencies are present on disk before packing.
- [uip or packages upload](./uip-orchestrator-packages.md) — upload the resulting `.nupkg` to Orchestrator.

## See also

- [RPA tool overview](./uip-rpa.md)
- [Global options](./global-options.md)
- [Exit codes](./exit-codes.md)
