- Overview
- Get started
- Concepts
- Using UiPath CLI
- How-to guides
- CI/CD recipes
- Command reference
- Overview
- Exit codes
- Global options
- uip codedagent
- uip coder
- uip context-grounding
- uip docsai
- uip function
- uip guardrails
- uip llm-configuration
- uip llm-gateway
- uip model-hub
- 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-library-object-repository
- get-object-repository
- get-versions
- get-workflow-example
- indicate-application
- indicate-element
- inspect-package
- install-data-fabric-entities
- install-or-update-packages
- list-data-fabric-entities
- list-instances
- list-workflow-examples
- pack
- publish
- remote
- restore
- run, debug & execution
- run-file
- search-templates
- start-studio
- stop-execution
- tm
- uia
- uip tasks
- uip traces
- uip traces feedback
- Migration
- Reference & support
Flag rename reference for migrating from `uipcli` to UiPath CLI, grouped by domain.
This page maps individual uipcli flags to their uip counterparts. Use it alongside the Command map — the Command map shows what verb to call; this page shows what to do with each flag on that verb.
Flags are grouped by domain. Auth is first because it changes for every command at once. The rest of the page covers the flags that differ per verb — package/solution output, job execution, test runner output, tracing, and so on.
Legacy flag entries reflect the public uipcli flag surface documented for 2025.10 and earlier. The uip column matches the current reference pages.
How to read the "Where it lives" column
uip gives you three places to put a value that was a flag in uipcli:
- Flag on each command — pass it literally every time (
--tenant <name>,--folder-path Shared). - Session state from
uip login— the flag has become something you set once withuip login; subsequent commands pick it up automatically. - Environment variable — read by the CLI at runtime. Where applicable, prefer the
--client-id env.VARNAME/--client-secret env.VARNAMEprefix form onuip loginto keep the secret out of the command line.
The "Where it lives" column tells you which of those applies.
Authentication
This is the block that changes most. The legacy CLI accepted three credential modes per command (user/pass, refresh token, external app). The new CLI accepts only external-app credentials and interactive OAuth — user/pass and refresh-token auth are removed. See Breaking changes — auth modes removed.
External Application (the CI flow)
| Legacy flag | Legacy purpose | uip flag | Where it lives | Notes |
|---|---|---|---|---|
-A, --accountForApp <name> | Organization name for external app | --organization <name> | Flag on uip login | Often optional — the organization is inferred from the External App record. Pass it when you need to disambiguate. |
-I, --applicationId <id> | External app client ID | --client-id <id> (or --client-id env.VARNAME) | Flag on uip login | Prefer env.VARNAME to read from an environment variable. |
-S, --applicationSecret <secret> | External app client secret | --client-secret <secret> (or --client-secret env.VARNAME) | Flag on uip login | Always use the env. prefix in CI to avoid leaking the secret into shell history and ps output. |
--applicationScope "<space-separated>" | OAuth scopes | --scope "<space-separated>" / -s, --scope | Flag on uip login | Same space-separated format. Legacy calls typically list all OR.* scopes; keep the same list. |
--identityUrl <url> | Custom identity authority (Automation Suite / PaaS) | --authority <url> | Flag on uip login | Renamed; semantics identical. Omit for Automation Cloud. |
(positional) <orchestrator_url> | Orchestrator base URL | (implicit from session) | Flag on uip login is not needed — the CLI resolves the Orchestrator URL from the tenant/organization chosen at login. | |
(positional) <orchestrator_tenant> | Tenant name | -t, --tenant <name> | Flag on uip login | Once set at login, every subsequent command uses this tenant. Switch it mid-session with uip login tenant set <name>, without re-authenticating. |
-o, --organizationUnit <folder> | Default folder for the command | --folder-path <path> or --folder-key <guid> | Flag on the command that needs it | Not a session-level concept in uip; pass it on each jobs/processes/resource * call. Config file can pin defaults. |
User/pass authentication — removed
| Legacy flag | Status in uip |
|---|---|
-u, --username <user> | Removed. Create an External Application and use --client-id. |
-p, --password <pass> | Removed. Use --client-secret. |
The legacy CLI supported user/password auth against Orchestrator for environments where an External App was not yet provisioned. uip does not; see Breaking changes — auth modes removed.
Refresh-token authentication — removed
| Legacy flag | Status in uip |
|---|---|
-t, --token <refresh-token> | Removed. Legacy -t was the short form for --token; in uip, -t is the short form for --tenant. |
-a, --accountName <name> | Removed. Use --organization with an External Application instead. |
If a legacy pipeline used refresh-token auth, migrate to External Application. Automation Cloud no longer provisions the refresh-token flow for new workloads.
Token-in-hand (new — no legacy equivalent)
For containers or runners that already hold a UiPath access token and do not need to exchange credentials, uip supports environment-variable auth: set UIPATH_CLI_ENABLE_ENV_AUTH=true and pass the token + org + tenant via env vars. See Authentication — Flow 3. No file is written; the token is not refreshed.
env.VAR_NAME prefix
uip login accepts a literal secret on --client-id / --client-secret, or the env.VAR_NAME prefix form that reads the value from an environment variable at runtime:
# Resolves at runtime from $UIPATH_CLIENT_SECRET; the secret never appears on the command line.
uip login \
--client-id env.UIPATH_CLIENT_ID \
--client-secret env.UIPATH_CLIENT_SECRET \
--tenant "$UIPATH_TENANT"
# Resolves at runtime from $UIPATH_CLIENT_SECRET; the secret never appears on the command line.
uip login \
--client-id env.UIPATH_CLIENT_ID \
--client-secret env.UIPATH_CLIENT_SECRET \
--tenant "$UIPATH_TENANT"
Unlike uipcli, uip does not implicitly read UIPATH_CLIENT_ID / UIPATH_CLIENT_SECRET; you must reference them through the env. prefix (or pass literal values). See Authentication — env.VAR_NAME prefix and Breaking changes — implicit env-var reading removed.
Output, logging, and tracing
Applies to every uipcli verb.
| Legacy flag | Legacy purpose | uip flag | Where it lives | Notes |
|---|---|---|---|---|
--traceLevel <None|Critical|Error|Warning|Information|Verbose> | Log verbosity | --log-level <debug|info|warn|error> | Global flag on every command | Value range narrowed to four levels; default info. Verbose → debug, Information → info, Warning → warn, everything else → error. See Global options. |
| (legacy text stdout; no flag) | Structured output | --output <json|table|yaml|plain> | Global flag | Default is json on every command. Legacy printed human-readable text; uip prints JSON. Use --output table for the human view. See Output formats. |
| (no equivalent) | Post-filter output | --output-filter "<JMESPath>" | Global flag | New in uip. Lets pipelines extract specific fields without piping through jq. |
| (no equivalent) | Duplicate logs to a file | --log-file <path> | Global flag | New in uip. Appends JSON Lines. |
-l, --language <locale> | Log language | (no equivalent) | Removed. | Log output is English in uip. |
--captureCommandToJsonFile <path> | Serialize the invocation to JSON | (no equivalent) | Removed. | Used to drive uipcli run, which is also removed. See Command map — run. |
Package flags
Most legacy PascalCase flags become kebab-case in uip rpa (for example, --outputType → --output-type), but several are renamed outright or dropped entirely rather than just re-cased - see the notes column in each table below. Run uip rpa pack --help for the complete list on your installed tool version.
package pack
Several flags do not follow the simple camelCase to kebab-case rule below, verified against real source (rpa-tool/src/commands/packager/pack.ts) rather than assumed:
| Legacy flag | uip rpa pack | Notes |
|---|---|---|
<workspace_path> (positional) | [project-dir] (positional, optional) | Path to the project directory, project.json, or a .uip archive. Defaults to --project-dir or the current directory. |
-o, --output <dir> | [output-path] (positional) or --output-path <path> | No -o short alias. Required, pass it as the second positional or via --output-path; the command errors if both are omitted. |
-v, --version <semver> | --package-version <version> | No -v short alias, and the flag itself is --package-version, not --version. |
--autoVersion | (no equivalent, this flag does not exist) | There is no auto-generate-version flag on uip rpa pack. Compute the version yourself and pass --package-version. |
--outputType <Process|Library|Tests|Objects> | --output-type <Process|Library|Tests|Objects> | Force the output type. |
--splitOutput | --split-packages | Not a pure kebab-case rename - the flag itself is renamed to --split-packages. |
--releaseNotes <text> | --release-notes <text> | Embedded in the .nupkg metadata. |
--repositoryUrl, --repositoryCommit, --repositoryBranch, --repositoryType | --repository-url, --repository-commit, --repository-branch, --repository-type | VCS metadata. |
--projectUrl <url> | --project-url <url> | Automation Hub idea URL. |
--certificatePath, --certificatePassword, --timestampServerUrl | --signing-certificate-path, --signing-certificate-password, --signing-timestamp-server | Not pure kebab-case - all three gain a signing- prefix. |
--author <name> | --package-author <name> | Not --author - the flag is --package-author. |
--governanceFilePath <policy> | --governance-file-path <policy> | Run analyzer as part of pack. --governance-file-type <type> is also available (choices enum) if the file format cannot be inferred. |
| (no legacy equivalent) | --package-id <id>, --package-description <desc>, --skip-analyze, --skip-dependency-optimization, --include-sources / --no-include-sources, --detailed-log-path <path> | New flags with no legacy uipcli package pack counterpart. |
Library auth (--libraryOrchestratorUrl, --libraryOrchestratorTenant, -u/-p/-t/-a/-A/-I/-S, --libraryOrchestratorApplicationScope, --libraryOrchestratorFolder, --libraryIdentityUrl, --libraryOrchestratorAccountForApp, --libraryOrchestratorAccountName, --libraryOrchestratorApplicationId, --libraryOrchestratorApplicationSecret, --libraryOrchestratorUsername, --libraryOrchestratorPassword, --libraryOrchestratorAuthToken) | Session from uip login | All the library* auth flags collapse into the single session configured by uip login. Pack is offline except when it needs to resolve library dependencies from a private feed; in that case the CLI uses the active session. |
package analyze
Verified against real source (rpa-tool/src/commands/packager/analyze.ts), several legacy flags have no equivalent at all, rather than merely being undocumented:
| Legacy flag | uip rpa analyze |
|---|---|
<workspace_path> (positional) | [project-dir] (positional, optional, defaults to --project-dir or the current directory) |
--governanceFilePath <policy> | --governance-file-path <policy> (alias: --policy-file <path>) |
--analyzerTraceLevel <Off|Error|Warning|Info|Verbose> | (no equivalent, this flag does not exist) |
--stopOnRuleViolation | (no equivalent, this flag does not exist). The closest available control is --default-severity <level>, which sets the default severity for rules that do not specify their own. |
--treatWarningsAsErrors | (no equivalent, this flag does not exist) |
--resultPath <path> | (no equivalent, this flag does not exist). uip rpa analyze writes its findings to stdout in the selected --format; redirect it yourself (uip rpa analyze ... > result.json). |
--ignoredRules <id1,id2> | (no equivalent, this flag does not exist) |
| (no legacy equivalent) | --governance-file-type <type>, --policy-file-type <type> (alias for --governance-file-type, defaults to AutomationOps when a policy/governance file is given), --repository-path <path> (Pipeline Analyze parity), --detailed-log-path <path>, --skip-analyze |
package deploy
Legacy deploy is now two uip calls; see Command map — package deploy. Per-flag:
| Legacy flag | uip equivalent | Notes |
|---|---|---|
<packages_path> (positional) | <file> (positional on uip or packages upload) | Single file. For a folder of .nupkgs, loop in the shell. |
<orchestrator_url> (positional) | (session) | Drop it; provided by uip login. |
<orchestrator_tenant> (positional) | -t, --tenant on uip login | Defaults to session. |
-c, --createProcess <true|false> | (implicit) | uip or packages upload never creates the process. Call uip or processes create after upload if you want a process. |
--processName <name> | --name <name> on uip or processes create | Renamed; note: --process <name> does not exist on the new CLI. |
--processNames <csv> | (loop in shell — no direct equivalent) | Script the CSV iteration; call processes create per row. |
--processDescription <text> | --description <text> on uip or processes create | No -d short alias on create — that alias exists only on uip or processes update. |
--use-package-description | (default behavior) | processes create inherits the package description by default on create. |
--ignoreLibraryDeployConflict | (no equivalent) | Library uploads via uip or libraries upload fail cleanly on duplicate version; adjust pipeline logic to skip if the version already exists. |
-e, --environments <csv> | (no equivalent; modern folders only) | The legacy classic-folder "environments" concept is not represented in the modern folder model. |
-h, --entryPointsPath <csv> | --entry-point <path> on uip or processes create | Single entry point per call; loop for multi-entry-point packages. |
package restore
uip rpa restore takes only the common packager options below plus its two positionals, there are no restore-specific flags at all (verified against rpa-tool/src/commands/packager/restore.ts):
| Legacy flag | uip rpa restore |
|---|---|
<workspace_path> (positional) | [project-dir] (positional, optional) |
--restoreFolder <dir> | [output-path] (positional, optional, must be OUTSIDE the project directory tree; omit to restore into the shared NuGet cache only) |
--nugetConfigFilePath <path> | --nuget-sources-config-path <path> |
| (no legacy equivalent) | --exclude-configured-sources, --feed-folder <name> (resolve library dependencies from one Orchestrator folder feed instead of every tenant feed) |
| Library auth flags | Session from uip login |
Job flags (uipcli job run → uip or jobs start)
| Legacy flag | uip or jobs start | Notes |
|---|---|---|
<process_name> (positional) | <process-key> (positional) | GUID, not name. Resolve with uip or processes list --name <name> --output-filter 'Data[0].Key' --output plain. |
<orchestrator_url> (positional) | (session) | — |
<orchestrator_tenant> (positional) | -t, --tenant on uip login | Defaults to session. |
-i, --input_path <file> | --input-file <path> (file) or --input-arguments '<json>' (inline) | Two alternatives, mutually exclusive. |
-P, --priority <Low|Normal|High> | --job-priority <Low|Normal|High> | — |
-j, --jobscount <n> | --jobs-count <n> | — |
-r, --robots <csv> | (no direct equivalent) | Classic-folder-only in legacy. Use --machine-keys or --user-keys (GUIDs) for modern folders. |
-U, --user <user> | --user-keys <guid[,guid]> | Must resolve the username to a user GUID first (uip or users list). |
-M, --machine <hostname> | --machine-keys <guid[,guid]> | Must resolve the hostname to a machine GUID first (uip or machines list). |
-R, --result_path <file> | (redirect stdout, or use --output-filter) | uip prints the job envelope to stdout. uip or jobs start <key> --wait-for-completion > result.json writes the full envelope. |
-W, --timeout <seconds> | --timeout <seconds> | Requires --wait-for-completion. |
-f, --fail_when_job_fails <true|false> | (always-on) | With --wait-for-completion, exit code is 1 if the job ends Faulted. No opt-out. |
-w, --wait <true|false> | --wait-for-completion (flag) | The new form is a boolean flag (no value). |
-b, --job_type <Unattended|NonProduction> | --runtime-type <Unattended|Headless|Serverless|NonProduction|Development|TestAutomation> | Wider enum. |
-o, --organizationUnit <folder> | --folder-path <path> or --folder-key <guid> | Or omit — uip infers the folder from the process key. |
Test flags
uipcli test run → uip tm testsets run + uip tm wait + uip tm report get
| Legacy flag | uip target | Notes |
|---|---|---|
-s, --testset <name> | --test-set-key <key> on uip tm testsets run | Key, not name. Format PROJECT:NN. Resolve with uip tm testsets list --project-key <key>. |
-t, --testsetkey <key> | --test-set-key <key> | Same value. Note: legacy -t clashes with the new CLI's -t, --tenant; use the long form. |
-P, --project-path <project.json> | (rework) | The legacy pack-and-test-on-the-fly flow is split: uip rpa pack → uip or packages upload → author test set in Test Manager → uip tm testsets run. Authoring the test set is a one-time setup. |
-a, --projectKey <key> | --project-key <key> on uip tm wait / uip tm report get | Different projectKey: the legacy flag set projectKey for Test Manager; the new flag scopes the wait/report to a Test Manager project. Same underlying value. |
-e, --environment <name> | (no equivalent) | Classic-folder concept. |
-o, --organizationUnit <folder> | --folder-key <uuid> on uip tm testsets list | Used to find the test set; not on execute. Takes a folder GUID (from uip or folders list), not a path string — there is no --folder-path option on testsets list. |
--out <junit|uipath> | (no equivalent) | uip tm result download has no --output-format option — only JUnit XML is supported today. |
-r, --result_path <file> | --result-path <path> on uip tm result download | Download after the run. |
-w, --timeout <seconds> | --timeout <seconds> on uip tm wait | Same semantics, different verb. |
-i, --input_path <file> | --input-path <file> on uip tm testsets run | Exact same flag; schema for the JSON file is unchanged. |
--attachRobotLogs | (use uip tm attachment download after the run) | |
--retryCount <n> | uip tm executions retry --execution-id <id> | Re-runs failed cases. No auto-retry at launch. |
--repositoryUrl, --repositoryCommit, --repositoryBranch, --repositoryType, --projectUrl, --releaseNotes, --disableBuiltInNugetFeeds, --nugetConfigFilePath, --author | (not on uip tm) | These were pack-side inputs when test run had to pack first. They belong on uip rpa pack. |
uipcli test parallel
| Legacy flag | uip equivalent |
|---|---|
--testsConfigurationFilePath <file> | (no equivalent) — write a shell loop over uip tm testsets run |
--projectsRootDirectoryPath <dir> | (no equivalent) |
--executionArtifactsDirectoryPath <dir> | --result-path <path> on uip tm result download and uip tm attachment download, run per execution |
--cliDirectoryPath <uipcli.dll> | (no equivalent) |
--out <junit|uipath> | (no equivalent) — uip tm result download has no --output-format option; only JUnit XML is supported today |
--disableBuiltInNugetFeeds | (not on uip tm; use on uip rpa pack when packing test projects) |
--projectKey <key> | --project-key <key> |
--author <name> | (not on uip tm) |
Asset flags
Both legacy verbs (asset deploy and asset delete) consumed a CSV file; the new CLI has no bulk deploy — loop over CSV rows and call uip or assets create / delete per row. See Command map — asset.
| Legacy flag | uip equivalent | Notes |
|---|---|---|
<assets_file> (positional) | (parse the CSV in the shell) | — |
<orchestrator_url> (positional) | (session) | — |
<orchestrator_tenant> (positional) | -t, --tenant on uip login | — |
CSV column name | <name> (positional) on uip or assets create | — |
CSV column value | <value> (positional) | — |
CSV column type | --type <Text|Bool|Integer|Credential|Secret> | Case-insensitive. |
CSV column description | -d, --description <text> | — |
Solution flags
The verb structure is largely preserved; flag names were normalized to kebab-case and the auth block was collapsed to the session.
| Legacy flag (across verbs) | uip equivalent | Notes |
|---|---|---|
-o, --output <dir> on solution pack | (positional <outputPath>) | — |
-v, --version <semver> on solution pack | --version <semver> | — |
-n, --name <name> on solution pack | --name <name> | — |
Auth block (on every solution verb that touches Orchestrator) | Session from uip login | — |
--packageName <n> on solution deploy | --package-name <n> on uip solution deploy run | — |
--packageVersion <v> on solution deploy | --package-version <v> | — |
--folderName <n> on solution deploy | --folder-name <n> | — |
--deploymentParentFolder <path> on solution deploy | --parent-folder-path <path> (or --parent-folder-key <guid>) on uip solution deploy run | Names the parent folder the deployment folder is created under. |
Positional <deploymentName> on solution deploy-activate / solution deploy-uninstall | <deployment-name> on uip solution deploy activate / uip solution deploy uninstall | — |
Telemetry and hidden flags
| Legacy flag | Status |
|---|---|
-y, --disableTelemetry (hidden) | Replaced by env var UIPATH_TELEMETRY_DISABLED=1. See What's new — Telemetry. |
--origin (hidden) | Removed. |
--captureCommandToJsonFile (hidden) | Removed along with uipcli run. |
See also
- Command map — per-verb mapping with before/after snippets.
- Breaking changes — auth, env vars, exit codes, stdout format.
- Authentication — the three supported auth flows.
- Configuration — environment variables and flag precedence.
- Global options —
--output,--output-filter,--log-level,--log-file.
- How to read the "Where it lives" column
- Authentication
- External Application (the CI flow)
- User/pass authentication — removed
- Refresh-token authentication — removed
- Token-in-hand (new — no legacy equivalent)
- env.VAR_NAME prefix
- Output, logging, and tracing
- Package flags
- package pack
- package analyze
- package deploy
- package restore
- Job flags (uipcli job run → uip or jobs start)
- Test flags
- uipcli test run → uip tm testsets run + uip tm wait + uip tm report get
- uipcli test parallel
- Asset flags
- Solution flags
- Telemetry and hidden flags
- See also