UiPath Documentation
uipath-cli
latest
false
UiPath CLI user guide

uip tools

Syntax and options for `uip tools`, which installs, updates, and removes the npm-based tools that extend UiPath CLI.

uip tools manages the installable tools that extend the CLI. See Tools (plugins) for the concept.

For how to control auto-install on CI runners, see Controlling tool auto-install.

Synopsis

uip tools list
uip tools search [<query>]
uip tools install <package-spec>
uip tools update [--name <package>]
uip tools uninstall [<package>] [--all]
uip tools list
uip tools search [<query>]
uip tools install <package-spec>
uip tools update [--name <package>]
uip tools uninstall [<package>] [--all]

All uip tools subcommands honor the global options (--output, --output-filter, --log-level, --log-file). Exit codes follow the standard contract.

uip tools list

List the tools currently installed alongside the CLI.

Arguments

None.

Options

None.

Example

uip tools list --output table
uip tools list --output table

Data shape (--output json)

{
  "Code": "ToolList",
  "Data": [
    {
      "name": "@uipath/orchestrator-tool",
      "version": "1.0.2",
      "commandPrefix": "or"
    },
    {
      "name": "@uipath/solution-tool",
      "version": "1.0.1",
      "commandPrefix": "solution"
    }
  ]
}
{
  "Code": "ToolList",
  "Data": [
    {
      "name": "@uipath/orchestrator-tool",
      "version": "1.0.2",
      "commandPrefix": "or"
    },
    {
      "name": "@uipath/solution-tool",
      "version": "1.0.1",
      "commandPrefix": "solution"
    }
  ]
}

commandPrefix is the top-level alias you type — for example, or for Orchestrator. Use it to confirm what uip <prefix> … will actually run.

Search the UiPath tool catalog for tools you can install. Results are filtered to the allowlisted @uipath/ tools (including rpa-legacy, which requires explicit install). Third-party packages are not returned.

Arguments

  • <query> (optional) — substring match against package name and description. Without it, all allowlisted tools are listed.

Options

None.

Example

uip tools search orchestrator
uip tools search orchestrator

Data shape (--output json)

{
  "Code": "SearchResult",
  "Data": [
    {
      "name": "@uipath/orchestrator-tool",
      "latestVersion": "1.0.2",
      "description": "Orchestrator jobs, folders, processes, packages, and resources",
      "availableVersions": ["1.0.0", "1.0.1", "1.0.2"]
    }
  ]
}
{
  "Code": "SearchResult",
  "Data": [
    {
      "name": "@uipath/orchestrator-tool",
      "latestVersion": "1.0.2",
      "description": "Orchestrator jobs, folders, processes, packages, and resources",
      "availableVersions": ["1.0.0", "1.0.1", "1.0.2"]
    }
  ]
}

Search reads from the npm registry configured for the @uipath scope (typically https://registry.npmjs.org/ via the default npm config, or an overridden registry set in your .npmrc). Results are filtered client-side against the allowlist, so any @uipath/ package that is not on the allowlist is omitted.

uip tools install

Install an allowlisted tool from npm.

Arguments

  • <package-spec> (required) — the tool to install. Any of:
    • Command alias: or, solution, tm, is, vss, df, …
    • Short name: orchestrator-tool, solution-tool, …
    • Full npm name: @uipath/orchestrator-tool, @uipath/solution-tool, …
    • With explicit version: orchestrator-tool@1.0.2, @uipath/orchestrator-tool@1.0.2. The value after @ must be a valid semver string (e.g. 1.0.2 or 1.0.0-preview.1) — a bare channel name like @beta is rejected with a ValidationError.

Options

None.

Examples

# by alias — simplest
uip tools install or

# by short name
uip tools install orchestrator-tool

# by full npm name
uip tools install @uipath/orchestrator-tool

# specific version
uip tools install orchestrator-tool@1.0.2

# exact preview build
uip tools install orchestrator-tool@1.0.0-preview.1

# preview channel — switch the channel, then install normally
uip config set updateChannel preview
uip tools install orchestrator-tool
# by alias — simplest
uip tools install or

# by short name
uip tools install orchestrator-tool

# by full npm name
uip tools install @uipath/orchestrator-tool

# specific version
uip tools install orchestrator-tool@1.0.2

# exact preview build
uip tools install orchestrator-tool@1.0.0-preview.1

# preview channel — switch the channel, then install normally
uip config set updateChannel preview
uip tools install orchestrator-tool

Version resolution

  • With an explicit semver version (e.g. @1.0.2 or @1.0.0-preview.1), that version is used as-is. There is no npm-dist-tag shorthand like @beta — the value after @ must parse as semver, or the command fails with a ValidationError.
  • Without a version, the host resolves against the CLI's update channel (stable by default, or preview/dev via uip config set updateChannel <channel>) and its current MAJOR.MINOR line — so a stable CLI 1.0.x installs the latest matching stable tool 1.0.*. This keeps host and tool protocol-compatible. See Versioning and stability and uip config.

Install target: the tool is installed next to the CLI's npm package — globally if the CLI is a global install, locally if the CLI is a project-scoped install. You do not pass a scope flag. Run npm root -g to find the global install path on your machine.

Allowlist enforcement: <package-spec> must resolve to one of the allowlisted @uipath/ packages (or rpa-legacy). Any other value fails with ValidationError and exit code 3 — third-party tools are not supported in 1.x.

Data shape (--output json)

{
  "Code": "Message",
  "Data": { "Message": "Successfully installed @uipath/orchestrator-tool@1.0.2" }
}
{
  "Code": "Message",
  "Data": { "Message": "Successfully installed @uipath/orchestrator-tool@1.0.2" }
}

uip tools update

Update one or more installed tools to the latest compatible version.

Arguments

None.

Options

  • --name <package> — update a single tool. Accepts alias, short name, or full npm name. Without --name, every installed tool is updated.
Important:

There is no --version flag on uip tools update — only --name is registered. Every tool updates to the latest version allowed by the active version policy (normally pinned to the CLI's MAJOR.MINOR line); to pin a specific version instead, use uip config set version <line> or reinstall with an explicit version via uip tools install <package>@<version>.

Examples

# update every installed tool to the latest version within the CLI's major.minor line
uip tools update

# update just the Orchestrator tool
uip tools update --name or
# update every installed tool to the latest version within the CLI's major.minor line
uip tools update

# update just the Orchestrator tool
uip tools update --name or

Data shape (--output json)

{
  "Code": "UpdateResult",
  "Data": [
    {
      "name": "orchestrator-tool",
      "status": "updated",
      "from": "1.2.2",
      "to": "1.2.3"
    },
    {
      "name": "agent-tool",
      "status": "up-to-date",
      "from": "1.2.3",
      "to": "1.2.3"
    }
  ]
}
{
  "Code": "UpdateResult",
  "Data": [
    {
      "name": "orchestrator-tool",
      "status": "updated",
      "from": "1.2.2",
      "to": "1.2.3"
    },
    {
      "name": "agent-tool",
      "status": "up-to-date",
      "from": "1.2.3",
      "to": "1.2.3"
    }
  ]
}

Per-tool results are always emitted, even on partial failure. If any tool fails to update, the command exits with a non-zero exit code and the failing entries carry an error field.

If core.version is pinned to an exact version (not a MAJOR.MINOR line), the update is skipped entirely — the command still exits 0 with an empty Data array and an Instructions note explaining the pin, since a pinned installation intentionally never moves.

uip tools uninstall

Remove one installed tool, or every installed tool at once.

Arguments

  • [package-name] (optional) — alias, short name, or full npm name. Mutually exclusive with --all. Provide exactly one of the argument or --all — omitting both, or passing both, is a ValidationError.

Options

  • --all — uninstall every installed tool. Mutually exclusive with [package-name].

Examples

# uninstall a single tool
uip tools uninstall orchestrator
uip tools uninstall @uipath/solution-tool

# uninstall every installed tool
uip tools uninstall --all
# uninstall a single tool
uip tools uninstall orchestrator
uip tools uninstall @uipath/solution-tool

# uninstall every installed tool
uip tools uninstall --all

Data shape (--output json)

Uninstalling a single tool emits Code: "Message":

{
  "Code": "Message",
  "Data": { "Message": "Successfully uninstalled @uipath/orchestrator-tool" }
}
{
  "Code": "Message",
  "Data": { "Message": "Successfully uninstalled @uipath/orchestrator-tool" }
}

--all emits Code: "UninstallResult" with one row per tool:

{
  "Code": "UninstallResult",
  "Data": [
    { "name": "orchestrator-tool", "status": "uninstalled" },
    { "name": "agent-tool", "status": "uninstalled" }
  ]
}
{
  "Code": "UninstallResult",
  "Data": [
    { "name": "orchestrator-tool", "status": "uninstalled" },
    { "name": "agent-tool", "status": "uninstalled" }
  ]
}

If any tool fails to uninstall in the --all path, its row carries an error field and the command exits with a non-zero exit code — the full per-tool breakdown is still emitted.

After uninstall, invoking uip or … will auto-install the Orchestrator tool again on next use, unless auto-install is blocked (for example, on a runner without network access). Install explicitly to avoid that.

Exit codes

  • 0 — success.
  • 1 — failure (install, update, uninstall, or a tool-level error). For update with multiple tools, at least one failed.
  • 3 — validation error (unknown alias, non-allowlisted package, invalid version string) on install and update.

uninstall's own argument-validation errors (missing package name, or --all combined with a package name) exit 1 rather than 3, even though the response body still reports Result: "ValidationError" — branch on Result/ErrorCode in the JSON body rather than the exit code if you need to distinguish this case from other failures.

See Exit codes for the full table.

See also

Was this page helpful?

Connect

Need help? Support

Want to learn? UiPath Academy

Have questions? UiPath Forum

Stay updated