UiPath Documentation
robot
2026.10
false
Robot admin guide

Robot Command Line Interface

Robot Command Line Interface (UiRobot.exe) for starting automations, connecting to Orchestrator, and managing the Robot from a terminal.

The UiPath Robot Command Line Interface is a tool that allows you to interact with the Robot from a command line terminal. It uses the UiRobot.exe file to start automations, install processes, connect and disconnect the Robot from Orchestrator, and manage logs, tracing, the Robot session (PiP), proxy credentials, and the NuGet cache directly from the command line.

How it works​

To use the CLI, make sure of the following aspects:

  • The Robot service is running
  • You are in the directory in which the Robot is installed.

Then enter instructions or commands that refer to the UiRobot.exe program along with the necessary parameters, depending on what you want your automation to achieve.

UiRobot.exe is in the Robot installation folder: %ProgramFiles%\UiPathPlatform\Robot\<version> for a per-machine installation, or %LocalAppData%\Programs\UiPathPlatform\Robot\<version> for a per-user installation.

Command and option names aren't case-sensitive.

When the Robot runs in service mode, the connect, disconnect, and flushlogs commands require an elevated command prompt (run as administrator).

For example, to start a process from the command line, you would use the following command:

UiRobot.exe execute --file "C:\UiPath\Projects\YourProject\project.1.0.0.nupkg"
UiRobot.exe execute --file "C:\UiPath\Projects\YourProject\project.1.0.0.nupkg"

Common UiRobot.exe commands​

Execute​

Use this command to start the execution of a project file of the following types:

  • NUPKG
  • JSON (legacy projects only)
  • XAML (legacy projects only)
Note:

With Robot version 2023.4 and onwards, UiPath refreshes the process list at the same time a process executes. If a process update is available at the job start, the job uses the older version of the process. Subsequent runs apply the updated process.

The execute command uses the following arguments:

UiRobot.exe execute (--package-id <Package_ID> | --process-name <Process_Name> | --file <File_Path>) [--input <Input_Parameters>] [--folder <Orchestrator_Folder_Path>] [--entry <Entry_Point_Path>]
UiRobot.exe execute (--package-id <Package_ID> | --process-name <Process_Name> | --file <File_Path>) [--input <Input_Parameters>] [--folder <Orchestrator_Folder_Path>] [--entry <Entry_Point_Path>]

Use exactly one of --package-id, --process-name, and --file.

  • -p, --package-id <Package_ID> - Starts the process with this package ID, from the Orchestrator feed or the local feed. The Robot uses the available version of the package.

    Examples:

    UiRobot.exe execute --package-id UiPathDemo
    UiRobot.exe execute --package-id UiPathDemo
    
    UiRobot.exe execute -p UiPathDemo
    UiRobot.exe execute -p UiPathDemo
    
  • -r, --process-name <Process_Name> - Starts the process with this name, as defined in Orchestrator.

    Example:

    UiRobot.exe execute --process-name UiPathDemoProcess
    UiRobot.exe execute --process-name UiPathDemoProcess
    
  • -f, --file <File_Path> - Starts the execution of a local project file. The target file can be NUPKG, or JSON or XAML for legacy projects only.

    Example:

    UiRobot.exe execute --file "C:\UiPath\Automation\project.1.0.0.nupkg"
    UiRobot.exe execute --file "C:\UiPath\Automation\project.1.0.0.nupkg"
    
  • --folder <Orchestrator_Folder_Path> (optional) - The path of the Orchestrator folder from which to install and execute the target process, such as Product/Development/QA. Required when the process is deployed in more than one folder.

    Example:

    UiRobot.exe execute --package-id UiPathDemo --folder "Product/Development/QA"
    UiRobot.exe execute --package-id UiPathDemo --folder "Product/Development/QA"
    
  • -i, --input <Input_Parameters> (optional) - Input arguments for the execution, in JSON format.

    Examples:

    UiRobot.exe execute --package-id UiPathDemo --input "{\"intArg\" : 3, \"strArg\" : \"hello\"}"
    UiRobot.exe execute --package-id UiPathDemo --input "{\"intArg\" : 3, \"strArg\" : \"hello\"}"
    
    UiRobot.exe execute --file "C:\UiPath\Automation\project.1.0.0.nupkg" --input "{\"intArg\" : 3, \"strArg\" : \"hello\"}"
    UiRobot.exe execute --file "C:\UiPath\Automation\project.1.0.0.nupkg" --input "{\"intArg\" : 3, \"strArg\" : \"hello\"}"
    

    In PowerShell, enclose the JSON in single quotes: --input '{\"intArg\" : 3, \"strArg\" : \"hello\"}'.

  • --entry <Entry_Point_Path> (optional) - Selects the entry point of the process. It applies to .nupkg files and --package-id. It is ignored when --file points to a .xaml or .json file, and you can't use it with --process-name.

    Example:

    UiRobot.exe execute --file "C:\UiPath\Project\project.1.0.3.nupkg" --entry "OtherEntryPoint.xaml"
    UiRobot.exe execute --file "C:\UiPath\Project\project.1.0.3.nupkg" --entry "OtherEntryPoint.xaml"
    
    Important:
    • The following commands are not supported for Windows or cross-platform projects:
      UiRobot.exe execute --file "C:\UiPath\Automation\Main.xaml"
      UiRobot.exe execute --file "C:\UiPath\Automation\Main.xaml"
      
      UiRobot.exe execute --file "C:\UiPath\Automation\Project.json"
      UiRobot.exe execute --file "C:\UiPath\Automation\Project.json"
      
    • The --process argument of earlier versions still works as an alias of --package-id.

Install process​

Use this command to install a process. If the robot is connected to Orchestrator, it searches for the process in the Orchestrator feed. Without an Orchestrator connection, the robot uses the local feed.

The install process command uses the following arguments:

UiRobot.exe installprocess --process-name <process_name> [--folder <orchestrator_folder_path>]
UiRobot.exe installprocess --process-name <process_name> [--folder <orchestrator_folder_path>]
  • -p, --process-name <process_name> (mandatory) - The name of the process you want to install. The -p short form means process name here, but package ID in the execute command.

    Example:

    UiRobot.exe installprocess --process-name MyProcess
    UiRobot.exe installprocess --process-name MyProcess
    
  • --folder <orchestrator_folder_path> (optional) - The full path of the Orchestrator folder containing the process you want to install, such as Product/Development/QA. This argument applies only when the connection to Orchestrator is active. If only one folder contains the process for installation, skip this parameter.

    Example:

    UiRobot.exe installprocess --process-name MyProcess --folder "Product/Development/QA"
    UiRobot.exe installprocess --process-name MyProcess --folder "Product/Development/QA"
    

Connect​

Use this command to connect your Robot to an Orchestrator instance. If your Robot is already connected to a different Orchestrator instance or with different credentials, the command returns the "Orchestrator already connected" message. Run disconnect first to switch. Running it again with the same URL and credentials succeeds and changes nothing.

The connect command uses the following arguments:

UiRobot.exe connect --url <Orchestrator_Server_URL> --clientId <Client_ID> --clientSecret <Client_Secret>
UiRobot.exe connect --url <Orchestrator_Server_URL> --clientId <Client_ID> --clientSecret <Client_Secret>
  • connect - Establishes the connection to Orchestrator. Must be used together with the --url, --clientId, and --clientSecret arguments.

    Example:

    UiRobot.exe connect --url https://cloud.uipath.com/<Organization_Name>/<Tenant_Name>/orchestrator_ --clientId <Client_ID> --clientSecret <your-client-secret>
    UiRobot.exe connect --url https://cloud.uipath.com/<Organization_Name>/<Tenant_Name>/orchestrator_ --clientId <Client_ID> --clientSecret <your-client-secret>
    

    The command also accepts --url with --key <Machine_Key> for a machine key connection. Robots connected with a machine key don't run agents, functions, or API workflows by default, and the command prints a message that calls machine key connections deprecated. For the differences, refer to Connecting the Robot to Orchestrator.

Disconnect​

Use this command to disconnect the Robot from the current Orchestrator instance.

The disconnect command uses the following arguments:

UiRobot.exe disconnect [--force | --wait]
UiRobot.exe disconnect [--force | --wait]
  • disconnect - Disconnects the Robot from Orchestrator only when there are no running jobs on the robot machine.

    Example:

    UiRobot.exe disconnect
    UiRobot.exe disconnect
    
  • --force - Kills all running jobs on the machine and then disconnects the Robot from Orchestrator.

    Example:

    UiRobot.exe disconnect --force
    UiRobot.exe disconnect --force
    
  • --wait - Waits for running jobs to complete before disconnecting the Robot from Orchestrator.

    Example:

    UiRobot.exe disconnect --wait
    UiRobot.exe disconnect --wait
    

You can't use --force and --wait together. The disconnectandsignout command takes the same arguments, and also signs out the current user.

Trace​

Use this command to enable or disable low-level tracing of the UiPath drivers and the browser extension. Tracing of the Robot Executor and Service is always on, and the command prints a warning about it.

The trace command uses the following arguments:

UiRobot.exe trace --enableLowLevel | --disableLowLevel
UiRobot.exe trace --enableLowLevel | --disableLowLevel
  • --enableLowLevel - Starts low-level tracing of the UiPath drivers and the browser extension. Requires administrator rights.

    Example:

    UiRobot.exe trace --enableLowLevel
    UiRobot.exe trace --enableLowLevel
    
  • --disableLowLevel - Stops it and saves the trace as UiPathTrace-<id>.etl on the Desktop of the user who runs the command. Requires administrator rights. Without them, the command shows an error but still returns exit code 0.

    Example:

    UiRobot.exe trace --disableLowLevel
    UiRobot.exe trace --disableLowLevel
    

Use this command to enable or disable the Robot session or picture-in-picture capability on the machine. This setting modifies existing installations and applies to all users on the local machine. Requires administrator privileges.

The PiP command uses the following arguments:

UiRobot.exe pip --enable | --disable
UiRobot.exe pip --enable | --disable
  • --enable - Enables the Robot session (PiP functionality) of the machine.

    Example:

    UiRobot.exe pip --enable
    UiRobot.exe pip --enable
    
  • --disable - Disables the Robot session (PiP functionality) of the machine.

    Example:

    UiRobot.exe pip --disable
    UiRobot.exe pip --disable
    

Clean NuGet cache​

Use this command to clean the NuGet caches: the global-packages cache (where restored .nupkg contents live) and the HTTP cache (NuGet feed response cache). Jobs should not be running during this operation.

The clean NuGet cache command uses the following arguments:

UiRobot.exe cleannugetcache [--period <period_in_days>] [--timeout <timeout_in_minutes>] [--allow-unsafe]
UiRobot.exe cleannugetcache [--period <period_in_days>] [--timeout <timeout_in_minutes>] [--allow-unsafe]
  • -p, --period <period_in_days> (optional, default 30) - Deletes global-packages entries whose .nupkg.metadata file has not been accessed in the last X days. Stale or corrupt package folders (missing .nupkg.metadata) are removed regardless of this value, unless they are listed in nugetclean.ignore. The HTTP cache is wiped in full regardless of this value. Must be greater than 0.

    Example:

    UiRobot.exe cleannugetcache --period 60
    UiRobot.exe cleannugetcache --period 60
    
  • -t, --timeout <timeout_in_minutes> (optional, default 10) - Maximum time, in minutes, to wait for the cleanup. Press Ctrl+C to cancel the cleanup; the command then prints a partial summary.

    Example:

    UiRobot.exe cleannugetcache --timeout 20
    UiRobot.exe cleannugetcache --timeout 20
    
  • --allow-unsafe (optional, default false) - By default, the command refuses to run if the Robot packages folder (PackagesInstallationFolder in UiPath.config) differs from the default NuGet global-packages folder (a folder that may be shared with other users). Use this flag to force cleanup of the Robot packages folder.

    Important:

    Cleaning a shared packages folder may break running jobs or apps belonging to other users sharing the folder.

    Example:

    UiRobot.exe cleannugetcache --period 30 --allow-unsafe
    UiRobot.exe cleannugetcache --period 30 --allow-unsafe
    

The command prints a summary of the cleanup, broken down by global-packages and http-cache, including how many entries were deleted out of the total that matched.

To protect package folders from the cleanup, list them in a nugetclean.ignore file in the global-packages folder. Write one package folder per line, as an absolute path or a path relative to the global-packages folder. A line with only a package ID keeps every version of that package. Blank lines and lines that start with # are ignored.

Set proxy basic authentication credentials​

Use this command to set proxy basic authentication credentials for the current user. The credentials are persisted locally and used by the Robot when communicating through a proxy that requires basic authentication.

The set proxy command uses the following arguments:

UiRobot.exe setproxy --username <user> --password <password> [--domain <domain>]
UiRobot.exe setproxy --username <user> --password <password> [--domain <domain>]
  • --username <user> (mandatory) - The username for proxy basic authentication.

  • --password <password> (mandatory) - The password for proxy basic authentication.

    Example:

    UiRobot.exe setproxy --username myuser --password <your-password>
    UiRobot.exe setproxy --username myuser --password <your-password>
    
  • --domain <domain> (optional) - The domain for proxy basic authentication. Use this when the proxy requires domain-qualified credentials.

    Example:

    UiRobot.exe setproxy --username myuser --password <your-password> --domain MYDOMAIN
    UiRobot.exe setproxy --username myuser --password <your-password> --domain MYDOMAIN
    
Important:

Running the command overwrites any previously stored proxy credentials.

Other arguments​

The following arguments are purely informative and have no impact on your automation projects:

  • version - Displays information about the Robot version. The --version form also works.
  • --help - Displays the list of supported commands, as well as corresponding information and examples.
  • flushlogs [--timeout <timeout_in_seconds>] - Sends all pending logs to Orchestrator. The default timeout is 30 seconds.

Exit codes​

UiRobot.exe returns the following exit codes:

Exit codeMeaning
0The command succeeded. For execute, the job completed successfully.
1For execute, the job failed. For cleannugetcache, the cleanup didn't complete successfully.
2For execute, the job suspended. The command prints the resumeId of the suspended job.
-1The command was used incorrectly (invalid or missing arguments), or it failed with an error.

Was this page helpful?

Connect

Need help? Support(opens in new window)

Want to learn? UiPath Academy(opens in new window)

Have questions? UiPath Forum(opens in new window)

Stay updated