- Release Notes
- Introduction
- Governance
- Source Control
- CI/CD Pipelines
- Feeds Management
- Logging

Automation Ops user guide
About UiPath CLI
UiPath® offers a command-line interface (CLI) that allows you to execute certain pre-defined tasks for RPA package management and testing. The purpose of the UiPath CLI is to easily integrate those capabilities with third-party tools like GitLab, Jenkins, and many others, without a plugin.
UiPath CLI can be used with Orchestrator deployed via Automation Cloud™ , Automation Suite, or standalone.
Common use cases for the UiPath CLI involve:
- Packing Studio projects into NuGet packages.
- Deploying NuGet packages to Orchestrator.
- Running jobs in Orchestrator.
- Running Test Sets in Orchestrator.
UiPath CLI consists of two types:
-
UiPath.CLI.Windows
- Runs on Windows devices only.
- Builds Windows - Legacy,Windows, and Cross-platform projects.
-
UiPath.CLI
- Runs on Linux devices only.
- Builds only Cross-platform projects.
-
UiPath CLI does not support SSO connection.
-
UiPath CLI cannot be used to build projects that use Local Triggers.
-
UiPath CLI lacks the functionality to sign a package, a feature that is available when you publish the package from Studio. In this case, the only option is to sign the package after it is built using UiPath CLI. For details, see the sign command. This signing option works also for Azure DevOps and Jenkins.
Here you can verify the compatibility between the CLI version, the required .NET version, and the target Robot version.
CLI version |
.NET version required |
Target Robot version for the built automations |
---|---|---|
24.10 |
.NET 8 |
2024.10+ |
23.10 |
.NET 6 |
2023.10+ |
23.4 |
.NET 6 |
2023.4+ |
You can download any version of the UiPath CLI from the UiPath Official Public Feed.
uipcli.exe
(for UiPath.CLI.Windows), or uipcli.dll
(for UiPath.CLI), located in the tools
folder.
The version of the UiPath Studio you are using to create your projects needs to match the version of the UiPath.CLI.Windows.
Legend: - compatible;
- not compatible.
Orchestrator |
Project Type |
UiPath.CLI.Windows 23.10 |
UiPath.CLI.Windows 23.6 |
UiPath.CLI.Windows 22.10 |
---|---|---|---|---|
2023.10.x PaaS | Windows - Legacy |
|
|
|
2023.10.x PaaS | Windows |
|
|
|
2023.10.x PaaS | Cross-platform |
|
|
|
2021.10.x On-premises |
Windows - Legacy |
|
|
|
2021.10.x On-premises |
Windows |
|
|
|
2021.10.x On-premises |
Cross-platform |
|
|
|
2021.10.x PaaS |
Windows - Legacy |
|
|
|
2021.10.x PaaS |
Windows |
|
|
|
2021.10.x PaaS |
Cross-platform |
|
|
|
2022.4.x |
Windows - Legacy |
|
|
|
2022.4.x |
Windows |
|
|
|
2022.4.x |
Cross-platform |
|
|
|
2022.10.x |
Windows - Legacy |
|
|
|
2022.10.x |
Windows |
|
|
|
2022.10.x |
Cross-platform |
|
|
|
2023.4.x | Windows-Legacy |
|
|
|
2023.4.x | Windows |
|
|
|
2023.4.x | Cross-platform |
|
|
|
Cloud |
Windows - Legacy |
|
|
|
Cloud |
Windows |
|
|
|
Cloud |
Cross-platform |
|
|
|
The version of the UiPath Studio you are using to create your projects needs to match the version of the UiPath.CLI. For example, if you create projects using UiPath Studio 2021.10, you need to use the 21.10 version of the UiPath.CLI.
Legend: - compatible;
- not compatible.
Orchestrator | Project Type | UiPath.CLI 23.10 | UiPath.CLI 23.6 | UiPath.CLI 22.10 | UiPath.CLI 22.4 | UiPath.CLI 21.10 |
---|---|---|---|---|---|---|
2023.10.x PaaS | Windows - Legacy |
|
|
|
|
|
2023.10.x PaaS | Windows |
|
|
|
|
|
2023.10.x PaaS | Cross-platform |
|
|
|
|
|
2021.10.x On-premises |
Windows - Legacy |
|
|
|
|
|
2021.10.x On-premises |
Windows |
|
|
|
|
|
2021.10.x On-premises |
Cross-platform |
|
|
|
|
|
2021.10.x PaaS |
Windows - Legacy |
|
|
|
|
|
2021.10.x PaaS |
Windows |
|
|
|
|
|
2021.10.x PaaS |
Cross-platform |
|
|
|
|
|
2022.4.x |
Windows - Legacy |
|
|
|
|
|
2022.4.x |
Windows |
|
|
|
|
|
2022.4.x |
Cross-platform |
|
|
|
|
|
2022.10.x |
Windows - Legacy |
|
|
|
|
|
2022.10.x |
Windows |
|
|
|
|
|
2022.10.x |
Cross-platform |
|
|
|
|
|
2023.4.x | Windows-Legacy |
|
|
|
|
|
2023.4.x | Windows |
|
|
|
|
|
2023.4.x | Cross-platform |
|
|
|
|
|
Cloud |
Windows - Legacy |
|
|
|
|
|
Cloud |
Windows |
|
|
|
|
|
Cloud |
Cross-platform |
|
|
|
|
|
This section describes how you can manage the build-in NuGet feeds. Moreover, it provides information on how you can use custom NuGet feeds according to your specific project requirements.
uipcli
searches for dependencies in the following built-in feeds:
-
C:\Program Files\Microsoft SDKs\NuGetPackages
(if this path is on the current agent) -
C:\Program Files (x86)\Microsoft SDKs\NuGetPackages
(if this path is on the current agent)
uipcli
to not use the built-in feeds by setting the --disableBuiltInNugetFeeds
parameter. This parameter can be used to the following tasks: analyze
, pack
, and test run
.When you run uipcli
with a configuration file, set "disableBuiltInNugetFeeds": true
.
You can use custom feeds when packing an automation.
Using custom nuget.config in UiPath CLI
To use custom feed, take the following steps:
-
Create a custom
nuget.config
file with the following format:<?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <add key="test custom feed" value="custom_feed_url" /> </packageSources> </configuration>
<?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <add key="test custom feed" value="custom_feed_url" /> </packageSources> </configuration> -
Place the custom
nuget.config
file in the folder whereuipcli
is cached:
Using custom nuget.config in Azure DevOps
nuget.config
to $(Agent.ToolsDirectory)/uipcli
, after the InstallPlatform
step, as shown in the following example:
trigger:
- main
pool:
vmImage: ubuntu-latest
stages:
- stage: Demo
jobs:
- job: Demo
steps:
- task: UiPathInstallPlatform@4
inputs:
cliVersion: 'X_23.6.8581.19168'
- task: CopyFiles@2
inputs:
SourceFolder: '$(Build.SourcesDirectory)'
Contents: 'nuget.config'
TargetFolder: '$(Agent.ToolsDirectory)/uipcli'
- task: UiPathPack@4
inputs:
versionType: 'AutoVersion'
projectJsonPath: '$(Build.SourcesDirectory)/AutomationProjects/CrossPlatform/VB/ProjectWithCustomLibraryFromOrchestrator_CrossPlatform_VB/project.json'
outputPath: '$(Build.ArtifactStagingDirectory)/Output'
traceLevel: 'Information'
trigger:
- main
pool:
vmImage: ubuntu-latest
stages:
- stage: Demo
jobs:
- job: Demo
steps:
- task: UiPathInstallPlatform@4
inputs:
cliVersion: 'X_23.6.8581.19168'
- task: CopyFiles@2
inputs:
SourceFolder: '$(Build.SourcesDirectory)'
Contents: 'nuget.config'
TargetFolder: '$(Agent.ToolsDirectory)/uipcli'
- task: UiPathPack@4
inputs:
versionType: 'AutoVersion'
projectJsonPath: '$(Build.SourcesDirectory)/AutomationProjects/CrossPlatform/VB/ProjectWithCustomLibraryFromOrchestrator_CrossPlatform_VB/project.json'
outputPath: '$(Build.ArtifactStagingDirectory)/Output'
traceLevel: 'Information'
Using custom nuget.config in Jenkins
nuget.config
to ${WORKSPACE}/CLI
, after the InstallPlatform
step, as shown in the following example:
pipeline {
agent {
label 'plugins-jenkins-lts-agent-01'
}
stages {
stage('Clone') {
steps {
git (
branch: 'main',
url: 'https://github.com/al3xandru-uipath-qa/CI-Plugins-Customer-Support.git'
)
}
}
stage('Install Platform') {
steps {
UiPathInstallPlatform (
traceLevel: 'Information'
)
}
}
stage('Copy nuget.config') {
steps {
bat 'copy nuget.config CLI\\nuget.config'
}
}
stage('Pack') {
steps {
UiPathPack (
outputPath: '${WORKSPACE}/Output',
projectJsonPath: '${WORKSPACE}/AutomationProjects/CrossPlatform/VB/ProjectWithCustomLibraryFromOrchestrator_CrossPlatform_VB/project.json',
traceLevel: 'Information',
version: AutoVersion()
)
}
}
}
}
pipeline {
agent {
label 'plugins-jenkins-lts-agent-01'
}
stages {
stage('Clone') {
steps {
git (
branch: 'main',
url: 'https://github.com/al3xandru-uipath-qa/CI-Plugins-Customer-Support.git'
)
}
}
stage('Install Platform') {
steps {
UiPathInstallPlatform (
traceLevel: 'Information'
)
}
}
stage('Copy nuget.config') {
steps {
bat 'copy nuget.config CLI\\nuget.config'
}
}
stage('Pack') {
steps {
UiPathPack (
outputPath: '${WORKSPACE}/Output',
projectJsonPath: '${WORKSPACE}/AutomationProjects/CrossPlatform/VB/ProjectWithCustomLibraryFromOrchestrator_CrossPlatform_VB/project.json',
traceLevel: 'Information',
version: AutoVersion()
)
}
}
}
}
This section guides you on obtaining the automation dependencies when planning to transition from an online to an offline, air-gapped environment. If an automation uses custom libraries, these need to be manually transported to the target environment.
UiPath CLI provides an automated way to both secure the dependency NuGet packages and upload them to the target environment.
Before proceeding, ensure you meet the following prerequisites:
-
Make sure to use the latest version of UiPath CLI (at least 24.12).
-
If applicable, make sure to install .NET 8.
-
Create an external app with the following application scope(s) (NOT user scopes):
For more details on setting the external app, see Automation Ops - Executing Tasks.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
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
With the prerequisites in place, follow these steps to facilitate the transition of your automation dependecies to an offline, air-gapped environment:
-
Use the
restore
command. You must provide the project folder, the location for dependency downloads and secure authentication information to access the Orchestrator library feed, as shown in the following example:uipcli package restore "C:\Users\Test_User\OneDrive - UiPath\Documents\UiPath\MathAutomation" --restoreFolder "C:\restoredPackages" --libraryOrchestratorUrl "https://cloud.uipath.com/" --libraryOrchestratorTenant "TENANT_NAME" -A "ORGANIZATION_NAME" -I "EXTERNAL_APPLICATION_ID" -S "EXTERNAL_APPLICATION_SECRET" --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"
uipcli package restore "C:\Users\Test_User\OneDrive - UiPath\Documents\UiPath\MathAutomation" --restoreFolder "C:\restoredPackages" --libraryOrchestratorUrl "https://cloud.uipath.com/" --libraryOrchestratorTenant "TENANT_NAME" -A "ORGANIZATION_NAME" -I "EXTERNAL_APPLICATION_ID" -S "EXTERNAL_APPLICATION_SECRET" --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"Important:Be aware that if even one package from the tenant feed cannot be obtained, no packages will be downloaded.
-
Use the
deploy
command. This command uploads the packages into the tenant library feed.You must provide the folder containing the NuGet packages and the authentication details for the Orchestrator library feed, as shown in the following example:
uipcli.exe package deploy "C:\restoredPackages" "https://alpha.uipath.com/" "TENANT_NAME" -A "ORGANIZATION_NAME" -I "EXTERNAL_APPLICATION_ID" -S "EXTERNAL_APPLICATION_SECRET" --applicationScope "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" -o "BusStop" --ignoreLibraryDeployConflict
uipcli.exe package deploy "C:\restoredPackages" "https://alpha.uipath.com/" "TENANT_NAME" -A "ORGANIZATION_NAME" -I "EXTERNAL_APPLICATION_ID" -S "EXTERNAL_APPLICATION_SECRET" --applicationScope "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" -o "BusStop" --ignoreLibraryDeployConflictDuring the execution of thedeploy
command, you can encounter a task cancelled error message, as shown is the following example:System.Threading.Tasks.TaskCanceledException: A task was canceled. at System.Threading.Tasks.Task.GetExceptions(Boolean includeTaskCanceledExceptions) at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification) at UiPath.CommandLine.Core.AppRunner.Run(String[] args, Func`2 containerBuilderFactory) in C:\ao-ag-eb2c89c4-we\_work\1\s\UiPath.Extensions.CommandLine.Core\AppRunner.cs:line 23 at UiPath.CommandLine.Program.Main(String[] args) in C:\ao-ag-eb2c89c4-we\_work\1\s\UiPath.Extensions.CommandLine\Program.cs:line 10 --- End of stack trace from previous location --- An error was encountered. Please check if everything was configured correctly by visiting https://docs.uipath.com/automation-ops/automation-cloud/latest/user-guide/uipath-command-line-interface
System.Threading.Tasks.TaskCanceledException: A task was canceled. at System.Threading.Tasks.Task.GetExceptions(Boolean includeTaskCanceledExceptions) at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification) at UiPath.CommandLine.Core.AppRunner.Run(String[] args, Func`2 containerBuilderFactory) in C:\ao-ag-eb2c89c4-we\_work\1\s\UiPath.Extensions.CommandLine.Core\AppRunner.cs:line 23 at UiPath.CommandLine.Program.Main(String[] args) in C:\ao-ag-eb2c89c4-we\_work\1\s\UiPath.Extensions.CommandLine\Program.cs:line 10 --- End of stack trace from previous location --- An error was encountered. Please check if everything was configured correctly by visiting https://docs.uipath.com/automation-ops/automation-cloud/latest/user-guide/uipath-command-line-interfaceIf you encounter this error, retry the command. Typically, the command works on the second attempt.