UiPath Documentation
uipath-cli
latest
false
UiPath CLI user guide

uip solution

Build, publish, and deploy UiPath Solutions using the `uip solution` tool, from scaffold and pack to Orchestrator activation.

uip solution builds, publishes, and deploys solutions — bundles of UiPath projects (RPA workflows, test cases, libraries, agents, Maestro flows, and apps) shipped and versioned as a single artifact. A solution is defined by a .uipx manifest at the root of a solution directory; every project listed in that manifest travels together through pack, publish, and deploy.

Most of your time in this tool is spent on three steps: scaffold or edit a solution locally (init, projects), package it into a .zip (pack), and deploy the packaged version to Orchestrator (publish + deploy run). See Your first pipeline for the end-to-end walkthrough.

Verb taxonomy

Verb familyOperates onPurpose
initLocal filesystemScaffold an empty .uipx solution directory.
projectsLocal .uipx / cloudAdd, import, list, remove, publish, or resync projects registered in the solution manifest.
resourcesLocal solutionList, get, add, remove, edit, and refresh the resource declarations (queues, assets, buckets, processes, connections, and more) inside a solution.
packLocal solutionProduce a deployable .zip package from a solution directory or .uis file. Also validates via --dry-run, signs packages, and stamps source-traceability metadata.
publishTenant feed / Personal Workspace / folder feedUpload a packed .zip to a UiPath solution feed.
uploadStudio WebUpload a solution for browser-based editing in Studio Web.
downloadStudio WebDownload and optionally extract a Studio Web solution by ID.
list (Preview)Studio Web / local filesystemList your Studio Web solutions, or scan a directory for local ones.
deleteStudio WebDelete a Studio Web solution by ID (requires -y, --yes).
cleanupLocal filesystemRemove unused items from every project in a solution.
restoreLocal filesystemResolve NuGet dependencies for every project in a solution.
feedsTenant / Personal Workspace / foldersList the feeds (publish locations) you can publish or deploy to.
packagesTenant feed / Personal Workspace / folder feedList, download, and delete published solution packages (delete requires -y, --yes).
deployOrchestratorInstall a new deployment (run), move an existing one to a new package version in place (upgrade), check status, activate, uninstall (requires -y, --yes), and edit deploy configuration files.

uip solution is provided by the @uipath/solution-tool plugin. If it is not yet installed, uip tools install solution adds it. See Tools (plugins).

Note:

projects was previously documented as project (singular). The singular form still works — it's kept registered as a hidden, deprecated alias for back-compat — but projects is canonical going forward.

Synopsis

uip solution init <solutionName>

uip solution projects add <projectPath> [--solution-folder <path>]
uip solution projects import --source <path> [--solution-folder <path>]
uip solution projects remove <projectPath> [--solution-folder <path>]
uip solution projects list [--solution-folder <path>]
uip solution projects publish --project-name <name> --package-name <name> --package-version <version> [--folder-name <name>]
uip solution projects resync [project-name] [--sync-option <Sync|Reset>]

uip solution resources list [--solution-folder <path>] [--kind <kind>] [--search <term>] [--source <all|local|remote>]
uip solution resources get <resource-key> [--solution-folder <path>]
uip solution resources add --source <local|remote> --kind <kind> --name <name>
uip solution resources remove <resource-key>
uip solution resources edit <resource-key> --patch <json>
uip solution resources refresh [--solution-folder <path>]

uip solution pack <solutionPath> [outputPath] [--name <name>] [--version <version>] [--dry-run]
uip solution publish <packagePath> [--feed <name-or-key> | --personal-workspace] [--wait]
uip solution upload <solutionPath>
uip solution download <solution-id> [-d <destination>] [--extract]
uip solution list [--local [directory]] [--check-cloud]
uip solution delete <solution-id> -y
uip solution cleanup <solutionPath> [--dry-run]
uip solution restore <solutionPath>
uip solution feeds list

uip solution packages list [--personal-workspace | --feed <name-or-key>] [--limit <n>] [--offset <n>]
uip solution packages download <packageName> [packageVersion] [-d <path>]
uip solution packages delete <packageName> <packageVersion> --yes [--personal-workspace | --feed <name-or-key>]

uip solution deploy run --name <n> --package-name <n> --package-version <v> --folder-name <n> [--parent-folder-path <path> | --personal-workspace] [--feed <name-or-key>] [-y]
uip solution deploy upgrade <deployment-key> [--version <v>] [--no-wait]
uip solution deploy status <pipeline-deployment-id>
uip solution deploy activate <deployment-name>
uip solution deploy list [--folder-path <path>] [--operation-status <s>] [--activation-status <s>]
uip solution deploy uninstall <deployment-name> -y
uip solution deploy config get <package-name> [--package-version <v>] [-d <path>] [--format json|yaml]
uip solution deploy config set <file> [--all] <args...>
uip solution deploy config link <file> <resource> --name <n> [--folder-path <path>]
uip solution deploy config unlink <file> <resource>
uip solution init <solutionName>

uip solution projects add <projectPath> [--solution-folder <path>]
uip solution projects import --source <path> [--solution-folder <path>]
uip solution projects remove <projectPath> [--solution-folder <path>]
uip solution projects list [--solution-folder <path>]
uip solution projects publish --project-name <name> --package-name <name> --package-version <version> [--folder-name <name>]
uip solution projects resync [project-name] [--sync-option <Sync|Reset>]

uip solution resources list [--solution-folder <path>] [--kind <kind>] [--search <term>] [--source <all|local|remote>]
uip solution resources get <resource-key> [--solution-folder <path>]
uip solution resources add --source <local|remote> --kind <kind> --name <name>
uip solution resources remove <resource-key>
uip solution resources edit <resource-key> --patch <json>
uip solution resources refresh [--solution-folder <path>]

uip solution pack <solutionPath> [outputPath] [--name <name>] [--version <version>] [--dry-run]
uip solution publish <packagePath> [--feed <name-or-key> | --personal-workspace] [--wait]
uip solution upload <solutionPath>
uip solution download <solution-id> [-d <destination>] [--extract]
uip solution list [--local [directory]] [--check-cloud]
uip solution delete <solution-id> -y
uip solution cleanup <solutionPath> [--dry-run]
uip solution restore <solutionPath>
uip solution feeds list

uip solution packages list [--personal-workspace | --feed <name-or-key>] [--limit <n>] [--offset <n>]
uip solution packages download <packageName> [packageVersion] [-d <path>]
uip solution packages delete <packageName> <packageVersion> --yes [--personal-workspace | --feed <name-or-key>]

uip solution deploy run --name <n> --package-name <n> --package-version <v> --folder-name <n> [--parent-folder-path <path> | --personal-workspace] [--feed <name-or-key>] [-y]
uip solution deploy upgrade <deployment-key> [--version <v>] [--no-wait]
uip solution deploy status <pipeline-deployment-id>
uip solution deploy activate <deployment-name>
uip solution deploy list [--folder-path <path>] [--operation-status <s>] [--activation-status <s>]
uip solution deploy uninstall <deployment-name> -y
uip solution deploy config get <package-name> [--package-version <v>] [-d <path>] [--format json|yaml]
uip solution deploy config set <file> [--all] <args...>
uip solution deploy config link <file> <resource> --name <n> [--folder-path <path>]
uip solution deploy config unlink <file> <resource>

Every subcommand honours the global options (--output, --output-filter, --log-level, --log-file) and returns the standard exit codes. Default output is JSON. deploy run never updates an existing deployment — it either creates a new one or, if --name is already deployed, refuses unless -y, --yes is passed (which installs a second, independent copy); to move an existing deployment to a new package version in place, use deploy upgrade. The pack/publish/packages/deploy synopsis lines above are abbreviated — see each command's own page for the full, verified flag list.

End-to-end flow

┌──────────┐   ┌────────────┐   ┌──────────┐   ┌──────────────┐   ┌──────────────────┐
│ solution │   │ solution   │   │ solution │   │ solution     │   │ solution deploy  │
│ init     │ → │ projects   │ → │ pack     │ → │ publish      │ → │ run              │
│          │   │ add/import │   │          │    (tenant feed) (Orchestrator)   │
└──────────┘   └────────────┘   └──────────┘   └──────────────┘   └──────────────────┘
┌──────────┐   ┌────────────┐   ┌──────────┐   ┌──────────────┐   ┌──────────────────┐
│ solution │   │ solution   │   │ solution │   │ solution     │   │ solution deploy  │
│ init     │ → │ projects   │ → │ pack     │ → │ publish      │ → │ run              │
│          │   │ add/import │   │          │   │ (tenant feed)│   │ (Orchestrator)   │
└──────────┘   └────────────┘   └──────────┘   └──────────────┘   └──────────────────┘
  1. Scaffold. uip solution init my-solution creates a directory with an empty .uipx manifest (plus AGENTS.md/CLAUDE.md briefing files).
  2. Populate. uip solution projects add ./my-solution/my-project registers a project subfolder, or uip solution projects import --source ./external copies an external project in.
  3. Pack. uip solution pack ./my-solution ./dist --version 1.0.0 produces ./dist/my-solution_1.0.0.zip.
  4. Publish. uip solution publish ./dist/my-solution_1.0.0.zip uploads the .zip to a solution feed.
  5. Deploy. uip solution deploy run --name my-deployment --package-name my-solution --package-version 1.0.0 --folder-name MySolution --parent-folder-path Shared creates an Orchestrator folder, provisions resources (queues, assets, processes), and activates the solution.

For interactive authoring, substitute step 3 with uip solution upload ./my-solution to open the solution in UiPath Studio Web instead of packing it for deployment.

Each step of this flow is documented on the page linked in the verb taxonomy table above. The full worked example lives in Your first pipeline.

Authentication and feed model

Commands that talk to Orchestrator or a solution feed — publish, upload, download, list (cloud mode), delete, packages *, feeds list, resources list/add/refresh (remote paths), and every deploy … subcommand — require an active session. Run uip login once. See Authentication.

Several of these commands additionally accept --personal-workspace or --feed <name-or-key> to target a specific solution feed instead of the default tenant feed. Use uip solution feeds list to find a feed's name or key.

Local commands (init, projects add/import/remove/list, pack, cleanup, restore, resources get/remove/edit, list --local) work offline against files on disk.

See also

Was this page helpful?

Connect

Need help? Support

Want to learn? UiPath Academy

Have questions? UiPath Forum

Stay updated