# Packing projects into a package

> * Create projects.
* Run the CLI `exe` (for Windows Legacy) or `dll` (for Windows/Linux/macOS) file.
* Add the required Orchestrator [API access application scopes](https://docs.uipath.com/cicd-integrations/standalone/2025.10/user-guide/executing-uipath-cli-tasks).

## Prerequisites

* Create projects.
* Run the CLI `exe` (for Windows Legacy) or `dll` (for Windows/Linux/macOS) file.
* Add the required Orchestrator [API access application scopes](https://docs.uipath.com/cicd-integrations/standalone/2025.10/user-guide/executing-uipath-cli-tasks).

:::note
You can also create the package locally without the need for Orchestrator scopes.
:::

To pack a project into a package, take the following steps:

1. Run the `package` task, using `uipcli package`. You can notice a list of the available sub-tasks.
2. Specify the required parameters and run the `pack` sub-task.
   The following table describes the required parameters.

:::note
Project validation and Workflow Analyzer both run by default as part of the `pack` task. To opt out, use the `--skipValidate` and `--skipAnalyze` flags.
:::

**Legend**: (*) - Optional, useful only when you have dependencies from a library in Orchestrator.

| Parameter | Description |
| --- | --- |
| `Project(s) Path (pos. 0)` (**Required**) | The path to a `project.json` file, or to a folder that contains `project.json` files. |
| `-o`, or `--output` (**Required**) | Destination folder path. |
| `-v`, or `--version` | Set the package version. |
| `--autoVersion` | Auto-generates a package version. |
| `--outputType` | Forces the output to be a specific type. |
| `--splitOutput` | Enables the output split to runtime and design libraries. |
| `--repositoryUrl` | The repository URL where the project is versioned. |
| `--repositoryCommit` | The repository commit where the project was built from. |
| `--repositoryBranch` | The repository branch where the project was built from. |
| `--repositoryType` | VCS system repository type. |
| `--projectUrl` | Automation Hub idea URL. |
| `--releaseNotes` | Add release notes. |
| `--author` | The package author. |
| `--nugetConfigFilePath` | Path to the NuGet.Config file containing feeds. The `<clear />` tag from the specified file will be ignored and only sources will be taken into consideration. |
| `--disableBuiltInNugetFeeds` | Disable built in nuget feeds. |
| `--excludeConfiguredSources` | Excludes the built-in feeds and the NuGet sources configured at the user and machine level on the host running the CLI. The CLI resolves packages only from the feeds defined in `--nugetConfigFilePath`. See [Managing NuGet feeds](https://docs.uipath.com/cicd-integrations/standalone/2025.10/user-guide/managing-nuget-feeds#restricting-to-custom-feeds-only-with---excludeconfiguredsources). |
| `-u`, `--libraryOrchestratorUsername` (*)  (**Required** if you use **Basic Authentication**, through a username and a password) | The username used for authenticating to Orchestrator. You must pair it with the corresponding password.  This is required if your package references libraries from Orchestrator feed |
| `-p`, `--libraryOrchestratorPassword` (*)  (**Required** if you use **Basic Authentication**, through a username and a password) | The password used for authenticating to Orchestrator. You must pair it with the corresponding username.  This is required if your package references libraries from Orchestrator feed |
| `-t`, `--libraryOrchestratorAuthToken` (*)  (**Required** if you use [token-based authentication](https://docs.uipath.com/automation-cloud/automation-cloud/latest/api-guide/api-keys)) | The **OAuth2 refresh token** used for authenticating to Orchestrator. You must pair it with the **Account Name** and **Client ID**.  This is required if your package references libraries from Orchestrator feed |
| `-a`, `--libraryOrchestratorAccountName` (*)  (**Required** if you use [token-based authentication](https://docs.uipath.com/automation-cloud/automation-cloud/latest/api-guide/api-keys)) | The Orchestrator CloudRPA account name. You must pair it with the **OAuth2 refresh token** and **Client ID**.  This is required if your package references libraries from Orchestrator feed |
| `-A`, `--libraryOrchestratorAccountForApp` (*) | The Orchestrator CloudRPA account name(organization name). You must pair it with the **Application ID**,**Application Secret**, and **Application scope** for external application  This is required if your package references libraries from Orchestrator feed. |
| `-I` ,`--libraryOrchestratorApplicationId` (*)  (**Required** if you use [external application authentication](https://docs.uipath.com/automation-cloud/automation-cloud/latest/admin-guide/managing-external-applications)) | The external Application ID. You must pair it with the **Application Account**, **Application Secret**, and **Application scope**. This is required if your package references libraries from Orchestrator feed. |
| `-S`, `--libraryOrchestratorApplicationSecret` (*)  (**Required** if you use [external application authentication](https://docs.uipath.com/automation-cloud/automation-cloud/latest/admin-guide/managing-external-applications)) | The external Application Secret. You must pair it with the **Application Account**, **Application ID**, and **Application scope**.  This is required if your package references libraries from Orchestrator feed. |
| `--libraryOrchestratorApplicationScope` (*)  (**Required** if you use [external application authentication](https://docs.uipath.com/automation-cloud/automation-cloud/latest/admin-guide/managing-external-applications)) | The list of application scopes, separated by single spaces. You must pair it with the **Application Account**, **Application ID**, and **Application Secret** for external application.  This is required if your package references libraries from Orchestrator feed. |
| `--libraryOrchestratorFolder` (*) | The name of the target Orchestrator folder.  To input subfolders make sure to input both the parent folder name and the name of the subfolder. For instance, use `AccountingTeam\TeamJohn`. |
| `--libraryOrchestratorUrl` (*) | The URL of the Orchestrator instance. |
| `--libraryOrchestratorTenant` (*) | The tenant of the Orchestrator instance. |
| `--libraryIdentityUrl` | The URL of your identity server. Required when the library Orchestrator runs on **UiPath Automation Suite** or **standalone Orchestrator** (on-premises MSI). Not needed for **Automation Cloud** — the CLI resolves the identity server from the cloud URL. |
| `--traceLevel` | Display the trace of the events. |
| `-l`, or `--language` | The language used in the Orchestrator user interface. |
| `--activitiesRootCategory` | The root category prefix applied to every activity exposed by the published library. Has effect only when packing a library project; ignored for process, tests and objects projects. When omitted, defaults to the library project name. |
| `--skipAnalyze` | Skip running Workflow Analyzer during the pack step. Use only when you run `package analyze` as a separate pipeline stage; release pipelines should leave analyzer enabled. |
| `--skipValidate` | Skip the project validation step during the pack step. Use only when the project has already been validated earlier in the pipeline. |
| `--ca-cert` | One or more trusted root CA certificate files (PEM, DER, or PKCS#7) used when validating the Orchestrator and Identity Server TLS certificates. Repeat the flag or comma-separate multiple paths. See [Trusting custom certificates](https://docs.uipath.com/cicd-integrations/standalone/2025.10/user-guide/trusting-custom-certificates) for details. |
| `--pinnedpubkey` | Pin the server leaf certificate's public key. Format: `sha256//<base64>`. Checked in addition to standard certificate validation. See [Trusting custom certificates](https://docs.uipath.com/cicd-integrations/standalone/2025.10/user-guide/trusting-custom-certificates) for details. |

:::tip Trusting custom certificates
For Orchestrator instances signed by a private Certificate Authority (such as UiPath Automation Suite), this command also accepts `--ca-cert` and `--pinnedpubkey` parameters. See [Trusting custom certificates](https://docs.uipath.com/cicd-integrations/standalone/2025.10/user-guide/trusting-custom-certificates) for scenarios and examples.
:::

:::note Default Application Scopes
When using external application authentication without specifying the `--applicationScope` parameter, the CLI automatically applies these default Orchestrator scopes:

`OR.Assets OR.BackgroundTasks OR.Execution OR.Folders OR.Robots.Read OR.Machines.Read OR.Jobs OR.TestSets OR.TestSetExecutions OR.Monitoring OR.Settings.Read`
:::

## Usage

```
uipcli package pack <project_path> -o <destination_folder> [-v <version>] [--autoVersion] [--outputType <Process|Library|Tests|Objects>] [--libraryOrchestratorUrl <orchestrator_url> --libraryOrchestratorTenant <orchestrator_tenant>] [--u <orchestrator_user> --p <orchestrator_pass>] [--t <auth_token> --a <account_name>] [-A <organization_name> -I <application_id> -S <application_secret> --libraryOrchestratorApplicationScope <application_scope>] [--libraryIdentityUrl <identity_url>] [--libraryOrchestratorFolder <folder_name>] [-l <language>] [--splitOutput] [--skipAnalyze] [--skipValidate] [--activitiesRootCategory <root_category>] [--repositoryUrl <repository_url>] [--repositoryCommit <repository_commit>] [--repositoryBranch <repository_branch>] [--repositoryType <repository_type>] [--projectUrl <automation_hub_idea_url>] [--releaseNotes <release_notes>] [--disableBuiltInNugetFeeds] [--excludeConfiguredSources]  [--traceLevel <None|Critical|Error|Warning|Information|Verbose>]
```

## Examples

* `uipcli package pack "C:\userprofile\AutomationProject\project.json" --traceLevel Information -o "C:\userprofile\Packages\Output"`
* `uipcli package pack "C:\userprofile\AutomationProject\project.json" --traceLevel Information -o "C:\userprofile\Packages\Output"
  --libraryOrchestratorUrl "https://orch-23-10-paas.cloudapp.azure.com/" --libraryOrchestratorTenant "TenantName" -u "orchestratorUsername"
  -p "********" --orchestratorFolder "FolderName" --author ExampleAuthor`
* `uipcli package pack "C:\userprofile\AutomationProject\project.json" --traceLevel Information -o "C:\userprofile\Packages\Output"
  --libraryOrchestratorUrl "https://orch-23-10-paas.cloudapp.azure.com/" --libraryOrchestratorTenant "TenantName" -A "organizationName"
  -I "76000552-3e4f-4590-9317-cdb420001f1d" -S '********' --libraryOrchestratorApplicationScope "OR.Folders OR.BackgroundTasks
  OR.TestSets OR.TestSetExecutions OR.TestSetSchedules OR.Settings.Read OR.Robots.Read OR.Machines.Read OR.Execution OR.Assets
  OR.Users.Read OR.Jobs OR.Monitoring" --libraryOrchestratorFolder "FolderName" --libraryIdentityUrl "https://orch-23-10-paas.cloudapp.azure.com/identity"`
* `uipcli package pack "C:\userprofile\AutomationProject\project.json" --traceLevel Information -o "C:\userprofile\Packages\Output"
  --libraryOrchestratorUrl "https://automation-suite.base.url.com/" --libraryOrchestratorTenant "TenantName" -A "organizationName"
  -I "3f6239b9-e0e8-465e-a429-d9ffd1d9e57a" -S '********' --libraryOrchestratorApplicationScope "OR.Folders OR.BackgroundTasks
  OR.TestSets OR.TestSetExecutions OR.TestSetSchedules OR.Settings.Read OR.Robots.Read OR.Machines.Read OR.Execution OR.Assets
  OR.Users.Read OR.Jobs OR.Monitoring" --libraryOrchestratorFolder "FolderName"`
* `uipcli package pack "C:\userprofile\AutomationProject\project.json" --traceLevel Information -o "C:\userprofile\Packages\Output"
  --libraryOrchestratorUrl "https://cloud.uipath.com/" --libraryOrchestratorTenant "TenantName" -A "organizationName" -I "becc663c-8f1e-409a-a75f-c00330d80bc8"
  -S '********' --libraryOrchestratorApplicationScope "OR.Folders OR.BackgroundTasks OR.TestSets OR.TestSetExecutions OR.TestSetSchedules
  OR.Settings.Read OR.Robots.Read OR.Machines.Read OR.Execution OR.Assets OR.Users.Read OR.Jobs OR.Monitoring" --libraryOrchestratorFolder
  "FolderName"`

## Library pack with a custom activities root category

* `uipcli package pack "C:\userprofile\MyLibrary\project.json" --traceLevel Information -o "C:\userprofile\Packages\Output" --outputType Library --activitiesRootCategory "MyCompany.Finance.Invoicing"`

## Pack with analyzer and validation skipped (faster local builds, CI separate-analyze stages)

* `uipcli package pack "C:\userprofile\AutomationProject\project.json" --traceLevel Information -o "C:\userprofile\Packages\Output" --skipAnalyze --skipValidate`

## Hermetic pack — ignore user/machine NuGet sources on the build agent

* `uipcli package pack "C:\userprofile\AutomationProject\project.json" --traceLevel Information -o "C:\userprofile\Packages\Output" --nugetConfigFilePath "C:\ci\nuget.config" --excludeConfiguredSources`
