- Overview
- Get started
- Concepts
- Using UiPath CLI
- How-to guides
- CI/CD recipes
- Command reference
- Overview
- Exit codes
- Global options
- uip codedagent
- uip docsai
- add-test-data-entity
- add-test-data-queue
- add-test-data-variation
- analyze
- build
- create-project
- diff
- find-activities
- get-analyzer-rules
- get-default-activity-xaml
- get-errors
- get-manual-test-cases
- get-manual-test-steps
- get-versions
- get-workflow-example
- indicate-application
- indicate-element
- inspect-package
- install-data-fabric-entities
- install-or-update-packages
- list-data-fabric-entities
- list-workflow-examples
- pack
- restore
- run-file
- search-templates
- start-studio
- stop-execution
- uia
- uip traces
- Migration
- Reference & support
UiPath CLI user guide
uip rpa-legacy is a Windows-only wrapper around the legacy uipcli.exe (the 2025.10 .NET CLI) for Studio-side commands that have not been ported to the cross-platform uip rpa tool. Use it for debug, validate, find-activities, find-package, type-definition, and the legacy package path. Cross-platform users — Linux, macOS, or Windows pipelines that do not need these features — should use uip rpa instead.
The tool is published as @uipath/rpa-legacy-tool on the GitHub npm registry. It bundles uipcli.exe under the hood and shells out to it for every verb. Output is shaped to fit the standard uip JSON envelope, so existing scripts that consume uip JSON keep working.
Windows-only
Every uip rpa-legacy verb refuses to run on macOS or Linux with a ConfigError. The bundled uipcli.exe is a Windows-only binary; this is by design and will not change. For cross-platform pipelines, use uip rpa.
Verbs
| Verb | Purpose |
|---|---|
find-activities | Search activities exposed by a project's dependencies. |
type-definition | Inspect a .NET type from project dependencies. |
find-package | Search NuGet packages across configured feeds. |
validate | Validate a XAML file or project for compilation errors. |
debug | Execute a XAML workflow locally via UiRobot. |
package | Pack an RPA project into a .nupkg using the legacy packager. |
When to use this tool
| Need | Use |
|---|---|
| Pack a Studio project on Linux, macOS, or as part of a cross-platform pipeline | uip rpa pack |
| Run the workflow analyzer on Linux/macOS | uip rpa analyze |
| Restore Studio dependencies on Linux/macOS | uip rpa restore |
| Debug a XAML workflow locally via UiRobot | uip rpa-legacy debug |
| Validate a XAML workflow / project for compile errors | uip rpa-legacy validate |
| Inspect a .NET type from project dependencies | uip rpa-legacy type-definition |
| Search activities in project dependencies | uip rpa-legacy find-activities |
| Search NuGet packages across configured feeds | uip rpa-legacy find-package |
Pack with the legacy uipcli packager directly | uip rpa-legacy package |
Prerequisites
- Windows. Every verb verifies the host OS and exits with a
ConfigErroron non-Windows. - .NET runtime. The bundled
uipcli.exerequires .NET;rpa-legacydoes not install .NET for you. - UiRobot installed locally for
debug— the verb invokes the local UiRobot to execute the workflow. - Tool installed:
uip tools install @uipath/rpa-legacy-tool. Auto-install also runs on first invocation.
Synopsis
uip rpa-legacy <verb> [options]
uip rpa-legacy <verb> [options]
All verbs honor the global options (--output, --output-filter, --log-level, --log-file) and the standard exit codes.
Migration from legacy uipcli
If you previously called uipcli debug, uipcli validate, uipcli package, etc., the verbs map directly:
| Legacy invocation | uip equivalent |
|---|---|
uipcli debug <xaml> -i <json> | uip rpa-legacy debug <xaml> --input <json> |
uipcli validate <path> | uip rpa-legacy validate <path> |
uipcli package <project> -o <dir> | uip rpa-legacy package <project> -o <dir> |
uipcli find-activities <project> --query <q> | uip rpa-legacy find-activities <project> --query <q> |
uipcli find-package --query <q> | uip rpa-legacy find-package --query <q> |
uipcli type-definition <project> --type <name> | uip rpa-legacy type-definition <project> --type <name> |
Output is wrapped in the uip JSON envelope; pipelines that parse legacy text output need to adapt or pass --output table for human reading.
See also
uip rpa— the cross-platform replacement for verbs that have been ported.- Global options
- Exit codes