- Overview
- Get started
- Installing UiPath CLI
- First commands (quickstart)
- Your first pipeline
- 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
Installation requirements and steps for UiPath CLI on Windows, macOS, and Linux, including Node.js prerequisites and npm global install.
UiPath CLI is distributed on npm as @uipath/cli and installs the uip command globally. It runs on any platform supported by Node.js 22 or later — Windows, macOS, and Linux, on both x64 and ARM64.
Prerequisites
- Node.js 22 or later. Node.js ships with
npm, which is sufficient to install and runuip. - Any platform — Windows (x64, ARM64), macOS (x64, ARM64), Linux (x64, ARM64).
Check your Node version:
node --version
node --version
If Node.js is older than 22 or not installed, download it from nodejs.org or use a version manager such as nvm (macOS/Linux) or nvm-windows — or let the one-liner installer below provision Node for you.
Install
Quick install (one-liner)
The fastest way to get a working uip. It ensures Node.js, installs the CLI, runs uip skills install (auto-detecting whichever coding agents — Claude Code, Cursor, Copilot, and so on — are present on the machine), and installs the .NET SDK 8.0 and Python. Every step is idempotent, so the script is safe to re-run — it skips whatever is already in place.
# macOS / Linux
curl -fsSL https://download.uipath.com/uipath-cli/install.sh | bash
# macOS / Linux
curl -fsSL https://download.uipath.com/uipath-cli/install.sh | bash
# Windows (PowerShell)
irm https://download.uipath.com/uipath-cli/install.ps1 | iex
# Windows (PowerShell)
irm https://download.uipath.com/uipath-cli/install.ps1 | iex
Skip parts you don't want. Each option has a matching environment variable, which is useful for the piped form (bash -s -- --flag doesn't always play well with every shell):
| macOS/Linux flag | Windows PowerShell switch | Environment variable | Effect |
|---|---|---|---|
--dry-run | -DryRun | UIP_DRY_RUN | Prints what would run; changes nothing. |
--skip-runtimes | -SkipRuntimes | UIP_SKIP_RUNTIMES | Skips the .NET SDK and Python install. |
--skip-node | -SkipNode | UIP_SKIP_NODE | Leaves Node.js untouched. |
--skip-skills | -SkipSkills | UIP_SKIP_SKILLS | Skips uip skills install. |
--skip-dotnet | -SkipDotnet | UIP_SKIP_DOTNET | Skips the .NET SDK install. |
--skip-python | -SkipPython | UIP_SKIP_PYTHON | Skips the Python install. |
# Preview first — prints what it would do, changes nothing
curl -fsSL https://download.uipath.com/uipath-cli/install.sh | bash -s -- --dry-run
# CLI + skills only, no .NET / Python
curl -fsSL https://download.uipath.com/uipath-cli/install.sh | bash -s -- --skip-runtimes
# Preview first — prints what it would do, changes nothing
curl -fsSL https://download.uipath.com/uipath-cli/install.sh | bash -s -- --dry-run
# CLI + skills only, no .NET / Python
curl -fsSL https://download.uipath.com/uipath-cli/install.sh | bash -s -- --skip-runtimes
Manual install
If you already manage Node yourself, or want just the CLI without the one-liner's skills/.NET/Python provisioning:
npm install -g @uipath/cli
npm install -g @uipath/cli
Or with another package manager:
pnpm add -g @uipath/cli
pnpm add -g @uipath/cli
bun add -g @uipath/cli
bun add -g @uipath/cli
All three package managers install the same @uipath/cli package from the public npm registry. Use whichever one your team already has in place. If your .npmrc scopes the @uipath package namespace to a private feed (GitHub Packages, an Artifactory proxy, …), that scope wins over the default registry and you'll get that feed's build instead of the public stable one. Force the public registry for this install with:
npm install -g @uipath/cli --@uipath:registry=https://registry.npmjs.org/
npm install -g @uipath/cli --@uipath:registry=https://registry.npmjs.org/
Homebrew (macOS / Linux)
UiPath maintains a Homebrew tap. This is a fully independent install path from the one-liner and npm/pnpm/bun above — Homebrew manages the uip binary and its Node.js dependency itself.
brew install uipath/tap/uip
brew install uipath/tap/uip
Or tap it explicitly first:
brew tap uipath/tap
brew install uip
brew tap uipath/tap
brew install uip
Upgrade and uninstall follow normal Homebrew conventions:
brew upgrade uip
brew uninstall uip
brew upgrade uip
brew uninstall uip
Tools installed via uip tools install <tool> are written to npm's global prefix (npm root -g), not into Homebrew's cellar — they persist across brew upgrade uip. To fully remove everything: brew uninstall uip && rm -rf "$(npm root -g)/@uipath".
The installation places the uip executable on your PATH. On Windows the uip.cmd / uip.ps1 launcher lives under %APPDATA%\npm\; on macOS and Linux the uip launcher (a small shim around node ./dist/index.js) lives under the prefix reported by npm config get prefix (commonly /usr/local/bin or ~/.npm-global/bin).
Verify the installation
uip --version
uip --version
You should see the installed version number (for example, 1.0.0).
uip --help
uip --help
You should see a list of core commands — login (with the status, tenant list, tenant set subcommands), logout, tools, skills, mcp, completion — followed by the tools that have been installed or registered on your machine.
To confirm where the uip launcher and its tools live:
npm root -g # directory holding @uipath/cli and installed tools
npm config get prefix # parent directory whose bin/ folder holds the uip launcher
npm root -g # directory holding @uipath/cli and installed tools
npm config get prefix # parent directory whose bin/ folder holds the uip launcher
First command
UiPath CLI ships with only the host and a small set of core commands. No tools are preinstalled. The first time you invoke a command whose prefix matches a tool on the auto-install whitelist, the host downloads and installs that tool from npm automatically.
For example, the first time you run an Orchestrator command, uip installs @uipath/orchestrator-tool:
uip or folders list
uip or folders list
Installing @uipath/orchestrator-tool...
✓ Installed @uipath/orchestrator-tool
...
Installing @uipath/orchestrator-tool...
✓ Installed @uipath/orchestrator-tool
...
Subsequent uip or ... invocations use the installed tool directly. You can also install tools explicitly — useful on CI runners and restricted networks — with uip tools install:
uip tools install @uipath/orchestrator-tool
uip tools install @uipath/solution-tool
uip tools install @uipath/orchestrator-tool
uip tools install @uipath/solution-tool
See Tools (plugins) for the full whitelist and Managing tools and skills for day-to-day tool management.
Controlling tool auto-install
Auto-install runs whenever the invoked verb is on the whitelist and the tool is not yet installed. CI=true has no effect on it — that variable is not consulted anywhere in the auto-install path. The real opt-out is UIPATH_CLI_DISABLE_AUTOINSTALL=true, which turns off implicit tool installs entirely, including the daily per-tool freshness check described in Versioning and stability. On stateless CI runners, without either pre-installing or setting this variable, the first command in a build downloads its tool and later commands in the same job reuse the already-installed copy — making the first command slower than subsequent ones.
To keep CI build times deterministic, pre-install the tools you use as a separate step, so every later uip call finds them already present:
uip tools install @uipath/orchestrator-tool @uipath/solution-tool
uip tools install @uipath/orchestrator-tool @uipath/solution-tool
Auto-install is a no-op when the tool is already installed, so the pre-install step is the only behavior change you need. On an air-gapped runner where you want a hard guarantee that nothing tries to reach npm mid-build, set UIPATH_CLI_DISABLE_AUTOINSTALL=true as well — a command for a tool that isn't already present then fails immediately instead of attempting a download.
Enable shell completion
UiPath CLI ships tab completion for bash, zsh, fish, and pwsh. Completion is installed from within the CLI itself:
uip completion
uip completion
In a terminal, uip completion detects your shell from $SHELL / $PSModulePath / platform, prints the target rc file it will modify, and asks for confirmation. Accept the prompt and reopen your shell — uip <TAB> now completes subcommands and options.
For scripted setup, pipe the completion script into your rc file directly:
# zsh
uip completion zsh >> ~/.zshrc
# bash
uip completion bash >> ~/.bashrc
# fish
uip completion fish > ~/.config/fish/completions/uip.fish
# PowerShell
uip completion pwsh >> $PROFILE
# zsh
uip completion zsh >> ~/.zshrc
# bash
uip completion bash >> ~/.bashrc
# fish
uip completion fish > ~/.config/fish/completions/uip.fish
# PowerShell
uip completion pwsh >> $PROFILE
Other options:
uip completion --print— preview the target path and the block that would be written, without modifying the filesystem.uip completion --uninstall— remove the managed completion block.
Dynamic flag-value completion (for example, uip or packages upload --package-name <TAB>) is zsh-only and requires the jq utility on your PATH. Without jq, dynamic candidates are suppressed; static subcommand and option-name completion still works on all four shells.
Re-run completion after every CLI or tool upgrade
The completion script is a static snapshot of the subcommands and option names known at the time uip completion was run. After npm install -g @uipath/cli@<new-version>, uip tools install <new-tool>, or uip tools update, re-run uip completion so newly added commands and flags are indexed:
uip completion # interactive — refreshes the existing block
uip completion zsh >> ~/.zshrc # or pipe into the rc file directly
uip completion # interactive — refreshes the existing block
uip completion zsh >> ~/.zshrc # or pipe into the rc file directly
Without a refresh, new verbs (for example, a verb added in a tool MINOR release) will not autocomplete even though they work on the command line.
Platform notes
Windows
Run commands from PowerShell, Windows Terminal, or cmd. If uip is not recognized after installation, open a new terminal window so the updated PATH takes effect, or run:
npm config get prefix
npm config get prefix
and confirm that the returned directory is on your PATH.
macOS and Linux
Most package managers place the uip executable on the default PATH. If you install npm globals into a user-local directory (as recommended — avoids sudo), make sure that directory is on your PATH. For example, with a ~/.npm-global prefix:
export PATH="$HOME/.npm-global/bin:$PATH"
export PATH="$HOME/.npm-global/bin:$PATH"
Add the line to your shell profile (~/.zshrc, ~/.bashrc, etc.) to persist it.
Behind a corporate proxy
UiPath CLI respects standard HTTP proxy environment variables for both the CLI itself and tool auto-installation:
| Variable | Purpose |
|---|---|
HTTP_PROXY / http_proxy | Proxy for HTTP requests |
HTTPS_PROXY / https_proxy | Proxy for HTTPS requests |
NO_PROXY / no_proxy | Comma-separated list of hosts that bypass the proxy |
Examples:
# macOS / Linux
export HTTPS_PROXY=http://proxy.example.com:8080
export NO_PROXY=localhost,127.0.0.1,.internal.corp
uip login
# macOS / Linux
export HTTPS_PROXY=http://proxy.example.com:8080
export NO_PROXY=localhost,127.0.0.1,.internal.corp
uip login
# Windows PowerShell
$env:HTTPS_PROXY = "http://proxy.example.com:8080"
$env:NO_PROXY = "localhost,127.0.0.1,.internal.corp"
uip login
# Windows PowerShell
$env:HTTPS_PROXY = "http://proxy.example.com:8080"
$env:NO_PROXY = "localhost,127.0.0.1,.internal.corp"
uip login
:: Windows cmd
set HTTPS_PROXY=http://proxy.example.com:8080
set NO_PROXY=localhost,127.0.0.1,.internal.corp
uip login
:: Windows cmd
set HTTPS_PROXY=http://proxy.example.com:8080
set NO_PROXY=localhost,127.0.0.1,.internal.corp
uip login
Proxies with basic authentication are supported by including credentials in the URL: http://user:password@proxy.example.com:8080.
The CLI bundles a proxy-aware fetch implementation, so HTTPS_PROXY / HTTP_PROXY are honored without extra configuration on Node.js.
Telemetry
UiPath CLI sends anonymous usage telemetry to UiPath to help improve the product. No command arguments, file contents, or credentials are transmitted.
| Variable | Behavior |
|---|---|
UIPATH_TELEMETRY_DISABLED | Set to 1 or true to opt out. |
UIPATH_AI_CONNECTION_STRING | Override the Application Insights connection string — for example, to route telemetry to your own instance. |
# Opt out for the current shell
export UIPATH_TELEMETRY_DISABLED=1
# Or just for one command
UIPATH_TELEMETRY_DISABLED=1 uip login
# Opt out for the current shell
export UIPATH_TELEMETRY_DISABLED=1
# Or just for one command
UIPATH_TELEMETRY_DISABLED=1 uip login
Installing in CI/CD
Install the CLI as a step in your pipeline. Because uip has no tools preinstalled, either let tools auto-install on first use or pre-install them explicitly — the latter is faster on stateless runners because the tool download happens once per step rather than on every command.
GitHub Actions
steps:
- uses: actions/setup-node@v4
with:
node-version: '22'
- name: Install UiPath CLI
run: npm install -g @uipath/cli
- name: Pre-install tools
run: uip tools install @uipath/orchestrator-tool @uipath/solution-tool
- name: Authenticate
run: uip login --client-id env.UIPATH_CLIENT_ID --client-secret env.UIPATH_CLIENT_SECRET
env:
UIPATH_CLIENT_ID: ${{ secrets.UIPATH_CLIENT_ID }}
UIPATH_CLIENT_SECRET: ${{ secrets.UIPATH_CLIENT_SECRET }}
- name: Run CLI commands
run: uip or folders list --output json
steps:
- uses: actions/setup-node@v4
with:
node-version: '22'
- name: Install UiPath CLI
run: npm install -g @uipath/cli
- name: Pre-install tools
run: uip tools install @uipath/orchestrator-tool @uipath/solution-tool
- name: Authenticate
run: uip login --client-id env.UIPATH_CLIENT_ID --client-secret env.UIPATH_CLIENT_SECRET
env:
UIPATH_CLIENT_ID: ${{ secrets.UIPATH_CLIENT_ID }}
UIPATH_CLIENT_SECRET: ${{ secrets.UIPATH_CLIENT_SECRET }}
- name: Run CLI commands
run: uip or folders list --output json
Azure DevOps
steps:
- task: NodeTool@0
inputs:
versionSpec: '22.x'
displayName: 'Use Node.js 22'
- script: npm install -g @uipath/cli
displayName: 'Install UiPath CLI'
- script: uip tools install @uipath/orchestrator-tool @uipath/solution-tool
displayName: 'Pre-install UiPath CLI tools'
- script: uip login --client-id env.UIPATH_CLIENT_ID --client-secret env.UIPATH_CLIENT_SECRET
displayName: 'Authenticate'
env:
UIPATH_CLIENT_ID: $(UIPATH_CLIENT_ID)
UIPATH_CLIENT_SECRET: $(UIPATH_CLIENT_SECRET)
steps:
- task: NodeTool@0
inputs:
versionSpec: '22.x'
displayName: 'Use Node.js 22'
- script: npm install -g @uipath/cli
displayName: 'Install UiPath CLI'
- script: uip tools install @uipath/orchestrator-tool @uipath/solution-tool
displayName: 'Pre-install UiPath CLI tools'
- script: uip login --client-id env.UIPATH_CLIENT_ID --client-secret env.UIPATH_CLIENT_SECRET
displayName: 'Authenticate'
env:
UIPATH_CLIENT_ID: $(UIPATH_CLIENT_ID)
UIPATH_CLIENT_SECRET: $(UIPATH_CLIENT_SECRET)
Jenkins (declarative pipeline)
stage('Install UiPath CLI') {
steps {
sh 'npm install -g @uipath/cli'
sh 'uip tools install @uipath/orchestrator-tool @uipath/solution-tool'
}
}
stage('Authenticate') {
steps {
withCredentials([
string(credentialsId: 'UIPATH_CLIENT_ID', variable: 'UIPATH_CLIENT_ID'),
string(credentialsId: 'UIPATH_CLIENT_SECRET', variable: 'UIPATH_CLIENT_SECRET')
]) {
sh 'uip login --client-id env.UIPATH_CLIENT_ID --client-secret env.UIPATH_CLIENT_SECRET'
}
}
}
stage('Install UiPath CLI') {
steps {
sh 'npm install -g @uipath/cli'
sh 'uip tools install @uipath/orchestrator-tool @uipath/solution-tool'
}
}
stage('Authenticate') {
steps {
withCredentials([
string(credentialsId: 'UIPATH_CLIENT_ID', variable: 'UIPATH_CLIENT_ID'),
string(credentialsId: 'UIPATH_CLIENT_SECRET', variable: 'UIPATH_CLIENT_SECRET')
]) {
sh 'uip login --client-id env.UIPATH_CLIENT_ID --client-secret env.UIPATH_CLIENT_SECRET'
}
}
}
See CI/CD recipes for full pipeline examples including pack, publish, and test stages.
Cache the npm global directory between builds to avoid reinstalling @uipath/cli and its tools on every run. On GitHub Actions, use actions/cache keyed on the CLI version you pin.
Installing from the GitHub npm registry
Most users don't need this section — the one-liner and manual installs above pull @uipath/cli and every whitelisted tool from the public npm registry. It exists for two narrower cases, both served by the same GitHub npm registry (https://npm.pkg.github.com):
- Alpha/internal builds of
@uipath/skills(versions like@uipath/skills@<version>-alpha.*), installed transitively whenuip skills installneeds a build newer than what's on public npm. - Preview/internal builds of a handful of core packages —
cli,solution-tool,codedagent-tool,orchestrator-tool— published to GitHub Packages ahead of their public npm release.
Before uip tools install (or uip skills install) can resolve one of these, configure npm to route the @uipath scope through GitHub's registry.
Create (or update) ~/.npmrc (user-level) or ./.npmrc (project-level) with:
@uipath:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=${GH_NPM_REGISTRY_TOKEN}
@uipath:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=${GH_NPM_REGISTRY_TOKEN}
GH_NPM_REGISTRY_TOKEN is a GitHub personal access token (classic) with at least the read:packages scope, authorized for SSO against the UiPath org.
export GH_NPM_REGISTRY_TOKEN=<your-pat>
npm install -g @uipath/cli
export GH_NPM_REGISTRY_TOKEN=<your-pat>
npm install -g @uipath/cli
Once configured, uip tools install and uip tools update pick up GitHub-registered packages the same way they pick up public ones.
This is unrelated to @uipath/rpa-tool, whose real source and distribution live in a separate repository (UiPath/Studio) — the GitHub npm registry described here only carries the alpha/preview builds listed above.
Running without a global install
For ad-hoc use or pipelines that prefer not to install globally, you can run the CLI through npx:
npx -y @uipath/cli <command>
npx -y @uipath/cli <command>
For example:
npx -y @uipath/cli login
npx -y @uipath/cli or folders list
npx -y @uipath/cli login
npx -y @uipath/cli or folders list
The first invocation downloads the package; subsequent invocations reuse the npm cache.
Upgrading
The CLI upgrades itself automatically, once a day. The first eligible uip command each day checks for a newer version on your configured channel (stable by default — see core.updateChannel in uip config), installs it if one exists, and re-executes your original command on the new version. It detects how you installed uip (Homebrew keg, npm, pnpm, or bun global) and dispatches the matching upgrade command automatically — brew upgrade uip for a Homebrew install, the equivalent add/install command otherwise. This self-update will never cross into a new MAJOR version on its own — that always requires an explicit uip update or a version pin. A separate check runs per tool, on that tool's first use each day, refreshing it to the latest version on the CLI's own line. Both checks are disabled entirely by setting UIPATH_CLI_DISABLE_VERSION_SYNC=true — useful for air-gapped runners or pipelines that require a fully deterministic, network-free uip invocation.
The manual commands below still work at any time — to jump to a specific version immediately, to pin, or with the daily sync disabled. Use the one matching how you installed uip:
# npm
npm install -g @uipath/cli@latest # latest release
npm install -g @uipath/cli@1.0.0 # pinned version
# pnpm
pnpm add -g @uipath/cli@latest
# bun
bun add -g @uipath/cli@latest
# Homebrew
brew upgrade uip
# npm
npm install -g @uipath/cli@latest # latest release
npm install -g @uipath/cli@1.0.0 # pinned version
# pnpm
pnpm add -g @uipath/cli@latest
# bun
bun add -g @uipath/cli@latest
# Homebrew
brew upgrade uip
Homebrew always upgrades to whatever version the tap currently publishes — pinning an exact version isn't a Homebrew concept, so use one of the other methods if you need to pin.
Pin an exact version in CI. @uipath/cli follows semantic versioning, but the shape of Data in JSON output is command-specific and may change between MINOR releases (see Versioning and stability). Pinning avoids build-time surprises on pipelines that parse JSON. When you bump, re-validate scripts that depend on specific field names.
See the release notes for what changed between versions.
Upgrading the host does not automatically upgrade installed tools. To update tools:
uip tools update # update all installed tools
uip tools update --name <package> # update a single tool
uip tools update --name <package> --version <version> # pin to a specific version
uip tools update # update all installed tools
uip tools update --name <package> # update a single tool
uip tools update --name <package> --version <version> # pin to a specific version
By default, each tool version tracks the CLI's MAJOR.MINOR line, so running uip tools update after a CLI upgrade brings every installed tool into step. See Tools (plugins) for the pinning contract.
Uninstalling
Remove the CLI with the method you used to install it:
npm uninstall -g @uipath/cli
# or
pnpm remove -g @uipath/cli
# or
bun remove -g @uipath/cli
# or, if installed via Homebrew
brew uninstall uip
npm uninstall -g @uipath/cli
# or
pnpm remove -g @uipath/cli
# or
bun remove -g @uipath/cli
# or, if installed via Homebrew
brew uninstall uip
This removes the uip executable. Installed tools (@uipath/orchestrator-tool and the like) live in npm's global prefix regardless of which method installed the host, and are not removed automatically — run uip tools uninstall <tool> first, or delete $(npm root -g)/@uipath afterward to clear everything at once.
Remove credentials and data
Uninstalling the package leaves several pieces of on-disk state behind. Clean them up manually when you want a fresh start or need to decommission a machine.
Session credentials
uip login persists the session inside ~/.uipath/ in your home directory by default. When the CLI starts, it walks up from the current directory looking for a .uipath/ folder first — so a project folder can carry its own session without modifying the user's home directory. Check both locations when cleaning up:
# macOS / Linux
rm -rf ~/.uipath
# Windows PowerShell
Remove-Item -Recurse -Force "$env:USERPROFILE\.uipath"
# macOS / Linux
rm -rf ~/.uipath
# Windows PowerShell
Remove-Item -Recurse -Force "$env:USERPROFILE\.uipath"
Check each project you worked in for a local .uipath/ as well. See Sessions and credentials for the full layout.
Shell completion
If you ran uip completion, the completion block is still in your shell rc file after uninstall. Remove it before uninstalling @uipath/cli, or clean it up manually from ~/.zshrc, ~/.bashrc, or $PROFILE:
# Before uninstalling, while uip is still available:
uip completion --uninstall
# Before uninstalling, while uip is still available:
uip completion --uninstall
npm global cache
npm keeps a local cache of downloaded tarballs at the path reported by npm config get cache. This does not need to be cleaned for most users; clean it only to recover disk space or to troubleshoot a corrupt download:
npm cache clean --force
npm cache clean --force
Troubleshooting
uip: command not found after installation
The npm global directory is not on your PATH. Run npm config get prefix to see where npm placed the uip launcher, then add that directory's bin subfolder to your PATH and open a new terminal.
EACCES or permission errors on install
On macOS and Linux, avoid sudo npm install. Configure npm to use a user-local prefix once:
mkdir -p ~/.npm-global
npm config set prefix ~/.npm-global
export PATH="$HOME/.npm-global/bin:$PATH"
mkdir -p ~/.npm-global
npm config set prefix ~/.npm-global
export PATH="$HOME/.npm-global/bin:$PATH"
Then reinstall: npm install -g @uipath/cli.
Tool auto-install hangs or times out
You may be behind a proxy that blocks npm. Configure HTTPS_PROXY as described in Behind a corporate proxy, or pre-install the tools on a machine with internet access and copy the global node_modules to the target machine.
Node version too old
uip requires Node.js 22 or later. Upgrade Node.js or switch versions with nvm use 22.
See Troubleshooting for more errors and their resolutions.
Next steps
- Quickstart — log in, list Orchestrator folders, and run a job in five minutes.
- Your first pipeline — pack a project and deploy it from CI.
- Authentication — interactive login, External App client credentials, federated/workload-identity, and environment-variable authentication for CI.
- Using UiPath CLI with Coding Agents — install skills into Claude Code, Cursor, GitHub Copilot, and other supported AI coding agents.
- Prerequisites
- Install
- Quick install (one-liner)
- Manual install
- Homebrew (macOS / Linux)
- Verify the installation
- First command
- Controlling tool auto-install
- Enable shell completion
- Platform notes
- Windows
- macOS and Linux
- Behind a corporate proxy
- Telemetry
- Installing in CI/CD
- GitHub Actions
- Azure DevOps
- Jenkins (declarative pipeline)
- Installing from the GitHub npm registry
- Running without a global install
- Upgrading
- Uninstalling
- Remove credentials and data
- Session credentials
- Shell completion
- npm global cache
- Troubleshooting
- uip: command not found after installation
- EACCES or permission errors on install
- Tool auto-install hangs or times out
- Node version too old
- Next steps