uipath-platform
UiPath platform ops via the uip CLI — use this skill for ANY task hitting UiPath Cloud / Orchestrator / Studio Web / Integration Service / LLM Gateway. Load BEFORE writing any code that calls a UiPath API. Covers auth, folders, assets, queues, storage buckets, bucket files, libraries, webhooks, triggers, processes, jobs, machines, users, roles, sessions, calendars, IS connectors/connections/activities, BYO LLM product configurations (`uip llm-configuration byo-connections` — register / audit / re-probe / troubleshoot tenant-owned OpenAI / Azure OpenAI / Bedrock / Vertex / Anthropic keys against UiPath products), traces, licensing. For `uip solution` lifecycle and PDD/SDD authoring→uipath-solution. For workflow code (.xaml/.cs)→uipath-rpa, .flow→uipath-maestro-flow, .bpmn→uipath-maestro-bpmn, agents (.py/agent.json)→uipath-agents, Test Manager→uipath-test.
Skill body
UiPath Platform — uip CLI Assistant
Comprehensive guide for UiPath Cloud / Orchestrator / Studio Web / Integration Service, end-to-end via the uip CLI. For uip solution lifecycle and PDD/SDD authoring, load uipath-solution.
Use the CLI. Don’t roll your own REST.
Always reach for uip CLI commands first. The CLI covers auth, Orchestrator (folders, processes, jobs, machines, users, roles, sessions, calendars, settings, audit logs, credential stores, feeds, attachments), resources (assets, queues, queue items, storage buckets, bucket files, libraries, webhooks, triggers), Integration Service (connectors, connections, activities, IS triggers), traces, and licensing end-to-end.
Hand-rolling HTTP calls — reading ~/.uipath/.auth and POSTing to /odata/... or /orchestrator_/... — almost always misses something the CLI gets right: the X-UIPATH-OrganizationUnitId folder header, OData filter shape (Key eq '...' with escaped single quotes), pagination envelope, retry semantics, validation error shape, or Result/Code/Data output contract. Reach for raw REST only after you’ve searched references/uip-commands.md for your task and confirmed no uip command covers it. The CLI is the source of truth.
If you find yourself about to curl https://cloud.uipath.com/... — stop. Search the command index first. Examples of what people often miss:
- “upload a file to a storage bucket” →
uip resource bucket-files upload(NOT aPUT /buckets/.../signedUrldance) - “create an asset” →
uip resource assets create(NOT aPOST /odata/Assets) - “start a job for a process” →
uip or jobs start <process-key>(NOTPOST /odata/Jobs/UiPath.Server.Configuration.OData.StartJobs) - “configure an Integration Service connection” →
uip is connections create <connector-key>(NOT a hand-rolled OAuth flow)
When to Use This Skill
Load this skill BEFORE writing any code that talks to UiPath. Specific triggers:
- Auth & tenant: login, logout, switch tenant,
~/.uipath/.auth, OAuth token, organization - Orchestrator core: folders (
list/get/create/edit/move/delete/runtimes), processes/releases, jobs (start/stop/logs/traces/healing-data), packages (upload/download/versions), machines, users / roles / sessions (incl. DirectoryUser/DirectoryGroup/DirectoryRobot/DirectoryExternalApplication), licenses, calendars, settings, audit logs, credential stores, feeds, attachments - Resources (Orchestrator-scoped): assets (text/integer/bool/credential), queues + queue items, storage buckets + bucket files (
upload/download/get-download-url/get-upload-url), libraries (.nupkg), webhooks (HMAC signing), triggers (time/queue/api) - Integration Service: connectors, connections (OAuth flow), activities, IS triggers, agent-workflow reference resolution
- LLM Gateway — BYO product configurations:
uip llm-configuration byo-connections(list / get / create / update / delete / list-product-configs). Register tenant-owned OpenAI / Azure OpenAI / AWS Bedrock / Google Vertex / Anthropic / OpenAI-compatible keys against UiPath product features (agents, agenthub, jarvis, IXP, agent builder, ECS). Two input shapes: single-mapping (forAnyModelWithOwnAdditionsfeatures) and repeated--mapping(required forAllModels/AnyModel). Server-side validation is mandatory. - LLM Gateway — diagnose a failing BYO config: re-probe the underlying IS connection with
byo-connections get <id> --force-refresh, force a fresh server-side probe with an idempotentupdate, audit the tenant withlist --include-connection-detailsfiltered onconnectionState != Enabled, check catalog drift withlist-product-configs, and cross-reference trace evidence withuip traces spans get <trace-id>. The gateway does not expose per-request invocation logs via CLI — diagnosis is current-state + trace evidence only. Seereferences/llmgateway/byo-connections.md§ Diagnostics. For tenant-wide AI Trust Layer policy that may be overriding routing, see uipath-governance. - Traces:
uip traces spans get [trace-id](LLM/agentic execution observability) - Platform licensing: tenant license allocations, user/group bundle assignments, consumables reporting (
uip platform tenants licenses,users licenses,groups rules,licenses consumables) - CLI tooling itself:
uip tools list/search/install,uip mcp serve
For uip solution lifecycle (init / pack / publish / deploy / activate / upload) and CI/CD pipelines that build and deploy UiPath solutions, load uipath-solution.
Auth token location
The CLI stores credentials at ~/.uipath/.auth after login:
UIPATH_URL=https://alpha.uipath.com
UIPATH_ORG_NAME=my_org
UIPATH_TENANT_NAME=my_tenant
UIPATH_ACCESS_TOKEN=eyJ...
UIPATH_ORGANIZATION_ID=...
UIPATH_TENANT_ID=...
This token can be reused for direct Orchestrator REST API calls when CLI commands don’t cover a use case.
Quick Start
Step 1 — Authenticate
Before interacting with Orchestrator, solutions, or Integration Service, the user must be logged in.
Interactive login (browser OAuth2):
uip login --output json
For a custom authority (e.g., alpha.uipath.com):
uip login --authority "https://alpha.uipath.com/identity_" --it --output json
For non-interactive (CI/CD) scenarios, use client credentials:
uip login --client-id "<ID>" --client-secret "<SECRET>" --tenant "<TENANT>" --output json
Check login status:
uip login status --output json
Step 2 — Select a Tenant
List available tenants and set the active one:
uip login tenant list --output json
uip login tenant set "<TENANT_NAME>" --output json
Step 3 — Explore Orchestrator
List folders to orient yourself:
uip or folders list --output json
Step 4 — Work with Orchestrator Resources
Choose the appropriate operation from the Task Navigation table below. For uip solution ops, load uipath-solution.
Task Navigation
Resolving UiPath Studio
Some operations (creating projects, validating, running workflows, packing) require UiPath Studio. When Studio is needed:
- Check for a running instance first:
rpa-tool list-instances --output json - If no instance is running, try the standard install location:
rpa-tool start-studio --output json - If that fails (version too old, not found, etc.) — ASK THE USER where their Studio build is located. Do NOT search the entire filesystem. Common locations include:
C:\Program Files\UiPath\Studio- A dev build directory (e.g.,
dev4/Studio/Output/bin/Debug) - A custom install path
- Once you have the path, pass it explicitly:
rpa-tool start-studio --studio-dir "<STUDIO_DIR>" --output json
Never spend time searching for Studio automatically. If the default doesn’t work, ask immediately — the user knows where their build is.
Key Concepts
UiPath Platform Hierarchy
Organization
└── Tenant(s)
└── Folder(s) ← Orchestrator folders (logical containers)
├── Processes ← Published automation packages
├── Assets ← Key-value configuration (Text, Bool, Integer, Credential, Secret)
├── Queues ← Work item queues for distributed processing
├── Jobs ← Running/completed process executions
├── Triggers ← Event-based or queue-based job triggers
├── Schedules ← Time-based job scheduling (cron)
├── Storage Buckets ← File storage for automation data
├── Machines ← Robot execution environments
└── Robots ← Attended/Unattended execution agents
Robot Types
| Type | Description | Use Case |
|---|---|---|
| Attended | Runs alongside a human user, triggered via UiPath Assistant | Front-office tasks, user-assisted automation |
| Unattended | Runs autonomously in virtual environments, managed by Orchestrator | Back-office tasks, scheduled processing, 24/7 operations |
Folder Types
| Type | Description |
|---|---|
| Standard | Default folder for organizing automations |
| Personal | User-specific workspace |
| Virtual | Logical grouping without physical separation |
| Solution | Folder created by solution deployment |
| DebugSolution | Debug variant of a solution folder |
Asset Types
| Type | Description |
|---|---|
| Text | Plain text value |
| Bool | Boolean (true/false) |
| Integer | Numeric integer value |
| Credential | Username + password pair |
| Secret | Encrypted secret value |
| DBConnectionString | Database connection string |
| HttpConnectionString | HTTP connection string |
| WindowsCredential | Windows credential pair |
CLI Overview
The UiPath CLI (uip) is a unified command-line tool for interacting with the UiPath platform:
| Command Group | Prefix | Description | Status |
|---|---|---|---|
| Authentication | login, logout |
OAuth2, client credentials, PAT, tenant management | Available |
| Orchestrator | or |
Folders, jobs, processes, releases | Available |
| Resource | resource |
Assets, queues, queue items, storage buckets, bucket files | Available |
| Integration Service | is |
Connectors, connections, activities, resources | Available |
| Test Manager | tm |
Test projects, test sets, test cases, executions, reports | Available |
| Tools | tools |
CLI tool extension management | Available |
| MCP | mcp |
Model Context Protocol server | Available |
| Coded Agents | codedagent |
Python agent lifecycle (setup, exec) | Available |
| RPA | rpa |
RPA workflow management (create, compile, validate, execute) | Available |
Global Options
Every uip command accepts:
| Option | Description | Default |
|---|---|---|
--output <format> |
Output format: table, json, yaml, plain |
table (interactive), json (non-interactive) |
--output-filter <expression> |
JMESPath expression to filter JSON output | – |
--verbose |
Enable verbose/debug logging | Off |
--help / -h |
Display help for the command | – |
--version / -v |
Display CLI version | – |
Always use
--output jsonwhen callinguipcommands programmatically. JSON is compact and machine-readable.To narrow
listresults, use the noun’s own filter flag (--state Faulted,--type Text,--status New,--name,--process-name,--search). The backend filters before sending; pagination stays correct. Per-noun flags: references/uip-commands.md. Never list-everything-then-filter-mentally.Use
--output-filter(JMESPath) for output reshaping or for fields with no server-side flag — e.g.,--output-filter "Data[].{id: id, name: name}", or filtering by a derived/computed value. Don’t reach for it when the server already has a filter for that attribute.
Deployment Notes
- Starting jobs requires runtimes. If you get error 2818 “no runtimes configured”, the target folder needs machine templates with Unattended/Development runtimes assigned.
- For
uip solutionpack / publish / deploy / activate flows, loaduipath-solution. This skill owns the auth and Orchestrator surface those flows depend on; the solution skill owns the lifecycle commands. - Fallback: direct REST API. When CLI tools don’t support an operation, use the Orchestrator REST API with the access token from
~/.uipath/.auth. See references/orchestrator/orchestrator.md - REST API.
Orchestrator REST API (Fallback)
When CLI commands are insufficient, use the Orchestrator REST API directly with the stored access token:
source ~/.uipath/.auth
# Upload a .nupkg package
curl -X POST "${UIPATH_URL}/${UIPATH_ORG_NAME}/${UIPATH_TENANT_NAME}/orchestrator_/odata/Processes/UiPath.Server.Configuration.OData.UploadPackage" \
-H "Authorization: Bearer ${UIPATH_ACCESS_TOKEN}" \
-H "X-UIPATH-OrganizationUnitId: <FOLDER_ID>" \
-F "file=@./MyProject.1.0.0.nupkg"
# Create a process (release) from an uploaded package
curl -X POST "${UIPATH_URL}/${UIPATH_ORG_NAME}/${UIPATH_TENANT_NAME}/orchestrator_/odata/Releases" \
-H "Authorization: Bearer ${UIPATH_ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-H "X-UIPATH-OrganizationUnitId: <FOLDER_ID>" \
-d '{"Name":"MyProcess","ProcessKey":"MyProject","ProcessVersion":"1.0.0"}'
# Start a job
curl -X POST "${UIPATH_URL}/${UIPATH_ORG_NAME}/${UIPATH_TENANT_NAME}/orchestrator_/odata/Jobs/UiPath.Server.Configuration.OData.StartJobs" \
-H "Authorization: Bearer ${UIPATH_ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-H "X-UIPATH-OrganizationUnitId: <FOLDER_ID>" \
-d '{"startInfo":{"ReleaseKey":"<RELEASE_KEY>","Strategy":"ModernJobsCount","JobsCount":1,"RuntimeType":"Unattended","InputArguments":"{}"}}'
The X-UIPATH-OrganizationUnitId header is the folder ID (get it from uip or folders list).
References
- CLI Command Reference — Every
uipcommand with workflow links - Orchestrator — Concepts, folders, jobs, processes, machines, users
- Resources — Assets, queues, buckets, triggers, libraries, webhooks
- Solutions — Solution lifecycle (
uip solution init/pack/publish/deploy/activate) and PDD/SDD authoring - Traces — Spans — LLM execution trace observability
- Traces — Feedback — Annotate traces with sentiment and comments
- Integration Service — Connectors, connections, activities, resources
- LLM Gateway — BYO Connections — Register tenant-owned LLM keys against UiPath products
- Licensing — Tenant allocations, user/group bundles, consumables reporting
- Coded Workflows — Building coded automation projects
Trouble? If something didn’t work as expected, use
/uipath-feedbackto send a report.