UiPath Documentation
uipath-cli
latest
false
UiPath CLI user guide

Migration: flag renames

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 with uip 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.VARNAME prefix form on uip login to 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 flagLegacy purposeuip flagWhere it livesNotes
-A, --accountForApp <name>Organization name for external app--organization <name>Flag on uip loginOften 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 loginPrefer 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 loginAlways 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, --scopeFlag on uip loginSame 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 loginRenamed; 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 loginOnce 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 itNot a session-level concept in uip; pass it on each jobs/processes/resource * call. Config file can pin defaults.

User/pass authentication — removed

Legacy flagStatus 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 flagStatus 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 flagLegacy purposeuip flagWhere it livesNotes
--traceLevel <None|Critical|Error|Warning|Information|Verbose>Log verbosity--log-level <debug|info|warn|error>Global flag on every commandValue range narrowed to four levels; default info. Verbosedebug, Informationinfo, Warningwarn, everything else → error. See Global options.
(legacy text stdout; no flag)Structured output--output <json|table|yaml|plain>Global flagDefault 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 flagNew in uip. Lets pipelines extract specific fields without piping through jq.
(no equivalent)Duplicate logs to a file--log-file <path>Global flagNew 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 flaguip rpa packNotes
<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-packagesNot 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-typeVCS metadata.
--projectUrl <url>--project-url <url>Automation Hub idea URL.
--certificatePath, --certificatePassword, --timestampServerUrl--signing-certificate-path, --signing-certificate-password, --signing-timestamp-serverNot 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 loginAll 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 flaguip 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 flaguip equivalentNotes
<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 loginDefaults 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 createRenamed; 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 createNo -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 createSingle 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 flaguip 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 flagsSession from uip login

Job flags (uipcli job run → uip or jobs start)

Legacy flaguip or jobs startNotes
<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 loginDefaults 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 flaguip targetNotes
-s, --testset <name>--test-set-key <key> on uip tm testsets runKey, 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 packuip 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 getDifferent 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 listUsed 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 downloadDownload after the run.
-w, --timeout <seconds>--timeout <seconds> on uip tm waitSame semantics, different verb.
-i, --input_path <file>--input-path <file> on uip tm testsets runExact 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 flaguip 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 flaguip equivalentNotes
<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 equivalentNotes
-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 runNames 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 flagStatus
-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

Was this page helpful?

Connect

Need help? Support

Want to learn? UiPath Academy

Have questions? UiPath Forum

Stay updated