- Overview
- Get started
- 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
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 family | Operates on | Purpose |
|---|---|---|
init | Local filesystem | Scaffold an empty .uipx solution directory. |
projects | Local .uipx / cloud | Add, import, list, remove, publish, or resync projects registered in the solution manifest. |
resources | Local solution | List, get, add, remove, edit, and refresh the resource declarations (queues, assets, buckets, processes, connections, and more) inside a solution. |
pack | Local solution | Produce a deployable .zip package from a solution directory or .uis file. Also validates via --dry-run, signs packages, and stamps source-traceability metadata. |
publish | Tenant feed / Personal Workspace / folder feed | Upload a packed .zip to a UiPath solution feed. |
upload | Studio Web | Upload a solution for browser-based editing in Studio Web. |
download | Studio Web | Download and optionally extract a Studio Web solution by ID. |
list (Preview) | Studio Web / local filesystem | List your Studio Web solutions, or scan a directory for local ones. |
delete | Studio Web | Delete a Studio Web solution by ID (requires -y, --yes). |
cleanup | Local filesystem | Remove unused items from every project in a solution. |
restore | Local filesystem | Resolve NuGet dependencies for every project in a solution. |
feeds | Tenant / Personal Workspace / folders | List the feeds (publish locations) you can publish or deploy to. |
packages | Tenant feed / Personal Workspace / folder feed | List, download, and delete published solution packages (delete requires -y, --yes). |
deploy | Orchestrator | Install 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).
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) │
└──────────┘ └────────────┘ └──────────┘ └──────────────┘ └──────────────────┘
- Scaffold.
uip solution init my-solutioncreates a directory with an empty.uipxmanifest (plusAGENTS.md/CLAUDE.mdbriefing files). - Populate.
uip solution projects add ./my-solution/my-projectregisters a project subfolder, oruip solution projects import --source ./externalcopies an external project in. - Pack.
uip solution pack ./my-solution ./dist --version 1.0.0produces./dist/my-solution_1.0.0.zip. - Publish.
uip solution publish ./dist/my-solution_1.0.0.zipuploads the.zipto a solution feed. - Deploy.
uip solution deploy run --name my-deployment --package-name my-solution --package-version 1.0.0 --folder-name MySolution --parent-folder-path Sharedcreates 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
uip solution feeds— list feeds forpublish --feed.uip solution list,uip solution download— find and retrieve Studio Web solutions.uip solution cleanup,uip solution restore— local project maintenance before packing.- Your first pipeline — hands-on walkthrough of pack → publish → deploy run.
- Tools (plugins) — how the solution tool is distributed and versioned.
- Authentication and Configuration — session setup and per-tenant defaults.
- Global options and Exit codes — contracts shared by every verb.
uip or— Orchestrator resource CRUD (assets, buckets, queues, libraries, triggers, webhooks), alongside jobs, processes, and folders.