You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs(uipath-rpa): make headless Studio the default in skill docs (#443)
Recent rpa-tool releases ship a headless Studio (UiPath.Studio.Helm
NuGet) that auto-launches on first call, so the skill no longer needs
to walk agents through list-instances/start-studio as a setup step.
Studio Desktop is now required only for diff and focus-activity (and
the activity-targeted debug commands that depend on focus-activity).
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: skills/uipath-rpa/SKILL.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -43,11 +43,11 @@ Before doing any work, check if `.claude/rules/project-context.md` exists in the
43
43
-`AGENTS.md` at project root — read by UiPath Autopilot in Studio Desktop. If `AGENTS.md` already exists, look for `<!-- PROJECT-CONTEXT:START -->` / `<!-- PROJECT-CONTEXT:END -->` markers and replace only between them; if no markers exist, append the fenced block at the end
44
44
4. Then proceed with the skill workflow
45
45
46
-
## Step 0: Resolve PROJECT_DIR and Environment
46
+
## Step 0: Resolve PROJECT_DIR
47
47
48
-
Before creating or modifying anything, determine which project to work with and ensure Studio is running. See [references/environment-setup.md](references/environment-setup.md) for the full procedure.
48
+
Before creating or modifying anything, determine which project to work with. See [references/environment-setup.md](references/environment-setup.md) for the full procedure.
49
49
50
-
**Quick check:** Find `project.json` to establish `{projectRoot}`, run `uip rpa list-instances --output json` to verify Studio, and `uip rpa open-project` if needed.
50
+
**Quick check:** Find `project.json` to establish `{projectRoot}`. That's it — no Studio Desktop check needed. `uip rpa` auto-launches a headless Studio (UiPath.Studio.Helm NuGet) on first call. Studio Desktop is required only for `diff` and `focus-activity`.
51
51
52
52
## Project Type Detection
53
53
@@ -86,7 +86,7 @@ For the full decision flowchart, InvokeCode extraction rules, and detailed hybri
86
86
87
87
### Common Rules (Both Modes)
88
88
89
-
1.**NEVER create a project without confirming none exists.** Follow Step 0 resolution: check explicit path, project name, running Studio instances, then CWD. Only create when confirmed no project matches AND user explicitly requests creation.
89
+
1.**NEVER create a project without confirming none exists.** Follow Step 0 resolution: check explicit path, project name, then CWD for `project.json`. Only create when confirmed no project matches AND user explicitly requests creation.
90
90
2.**ALWAYS use `uip rpa create-project`** to create new projects — never write `project.json` or scaffolding manually.
91
91
-**Before creating, decide if a template is needed.** If the user names a template ("REFramework", "Robotic Enterprise Framework", "based on the X template"), an industry/domain pattern (SAP, ERP, banking, mainframe), or otherwise hints at a non-blank starter, run `uip rpa search-templates --query "<term>" --output json` first. Selection rule against `Data[*]`:
92
92
-**User named a specific non-Official template** (e.g. "Enhanced REFramework", "Lite ReFrameWork") AND a `Marketplace` item's `title` or `packageId` substring-matches the user's specific qualifier → ask the user (Official + that Marketplace item are both candidates). Do NOT auto-pick.
Copy file name to clipboardExpand all lines: skills/uipath-rpa/references/cli-reference.md
+37-13Lines changed: 37 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,6 +4,28 @@ CLI reference for `uip rpa` -- communicates with UiPath Studio over named pipes
4
4
5
5
> **Installation is automatic.** Do NOT attempt to install `uip` manually or instruct the user to install it.
6
6
7
+
## Studio Desktop vs headless Studio (Helm)
8
+
9
+
`uip rpa` connects to one of two flavors of Studio behind the same IPC contract:
10
+
11
+
-**Headless Studio (Helm) — default.** Ships as a NuGet package (`UiPath.Studio.Helm.{Platform}`) and auto-launches on first use. **No Studio Desktop install needed.** First call on a cold NuGet cache may sit near-silent for 30–90 s while `dotnet restore` runs; raise `--timeout` to ≥ 180 for that call.
12
+
-**Studio Desktop.** The interactive UI. Used automatically only by commands with UI side effects.
13
+
14
+
### Which commands need Studio Desktop
15
+
16
+
Only these two — they do not work headless:
17
+
18
+
| Command | Why |
19
+
|---------|-----|
20
+
|`uip rpa diff`| Opens an interactive diff window in Studio's UI |
21
+
|`uip rpa focus-activity`| Highlights an activity in Studio's active workflow designer |
22
+
23
+
For these, run `uip rpa start-studio --project-dir "<PROJECT_DIR>"` first if Studio Desktop is not already up.
24
+
25
+
Everything else — `create-project`, `open-project`, `close-project`, `run-file`, `stop-execution`, `get-errors`, `build`, `get-analyzer-rules`, `find-activities`, `get-default-activity-xaml`, `get-versions`, `inspect-package`, `install-or-update-packages`, `list-data-fabric-entities`, `install-data-fabric-entities`, `search-templates`, `indicate-application`, `indicate-element`, all `uia` subcommands, all `uip is` subcommands — runs headless with no Studio Desktop required.
26
+
27
+
To force Studio Desktop for any command, set `UIPATH_RPA_TOOL_USE_STUDIO=1`. Not recommended for the standard authoring loop.
28
+
7
29
> **This guide may not list every available command.** The CLI is self-documenting -- append `--help` at any level to progressively discover commands, subcommands, and parameters:
8
30
9
31
```bash
@@ -21,22 +43,22 @@ Every `uip rpa` invocation accepts these flags:
21
43
| Option | Description | Default |
22
44
|--------|-------------|---------|
23
45
|`--project-dir <path>`| Project directory to match against running Studio instances | Current working directory |
24
-
|`--studio-dir <path>`| Path to Studio installation directory| Auto-detected (see below) |
25
-
|`--timeout <seconds>`| Timeout in seconds for Studio resolution |`300`|
46
+
|`--studio-dir <path>`| Path to Studio Desktop installation (only used when Studio Desktop is in use)| Auto-detected (see below) |
47
+
|`--timeout <seconds>`| Timeout in seconds for Studio resolution (raise to ≥ 180 on a cold Helm NuGet cache) |`300`|
26
48
|`--verbose`| Enable verbose/debug logging | Off |
> **Always use `--output json`** when calling `uip rpa` commands programmatically. The `table` format pads columns and can produce extremely large output (100KB+). JSON is compact and machine-readable.
30
52
31
53
### STUDIO_DIR Resolution
32
54
33
-
`--studio-dir` is optional -- omit it by default and let `uip` auto-detect Studio. Only provide it explicitly if auto-detection fails, using the first match:
55
+
`--studio-dir` is **only consulted when Studio Desktop is in use** (i.e. you ran `start-studio`, called `diff`/`focus-activity`, or set `UIPATH_RPA_TOOL_USE_STUDIO=1`). Headless Studio (Helm) ignores it. When Studio Desktop is needed and auto-detection fails, the resolution waterfall is:
34
56
35
57
1. Environment variable `UIPATH_STUDIO_DIR` if set.
3. Dev build: Studio source tree build output (e.g. `<repo-root>\Output\bin\Debug`).
38
60
39
-
> **Error `"Studio X.X.X does not have interop support"` or `"Requires Studio 26.2+"`** means the detected Studio is too old. Stop calling `uip rpa` commands and inform the user to update Studio.
61
+
> **Error `"Studio X.X.X does not have interop support"` or `"Requires Studio 26.2+"`** means the detected Studio Desktop is too old. This affects only the two Studio-only tools (`diff`, `focus-activity`) and any explicitly forced Studio runs. Inform the user to update Studio Desktop.
40
62
41
63
### PROJECT_DIR Resolution
42
64
@@ -59,22 +81,24 @@ Located at `{projectRoot}/.local/docs/packages/{PackageId}/`.
59
81
60
82
---
61
83
62
-
## Commands -- Studio Management
84
+
## Commands -- Studio Desktop Management (edge cases only)
85
+
86
+
> Skip this section unless you need to invoke `diff` or `focus-activity`. Every other command auto-launches headless Studio (Helm) when needed.
63
87
64
88
### list-instances
65
89
66
-
List running UiPath Studio instances and their IPC status.
90
+
List running Studio Desktop instances and their IPC status. Hidden diagnostic command — does **not** report the auto-launched headless Studio (Helm) instances.
67
91
68
92
```bash
69
93
uip rpa list-instances --output json```
70
94
71
-
No command-specific options.
95
+
No command-specific options. An empty `Data` array does NOT mean `uip rpa` won't work — headless Studio starts on demand.
72
96
73
97
---
74
98
75
99
### start-studio
76
100
77
-
Ensure a Studio instance is running. Resolution waterfall:
101
+
Ensure a **Studio Desktop** instance is running. Only required before invoking `diff` or `focus-activity`, or when forcing Studio Desktop with `UIPATH_RPA_TOOL_USE_STUDIO=1`. Resolution waterfall:
78
102
1. Match by `--project-dir` -- reuse if available, wait if busy
79
103
2. Use an idle instance (no project loaded)
80
104
3. Start a new instance via `--studio-dir` -- poll until available
Open an existing project in Studio. Only needed when explicitly loading a project that isn't already open (e.g. after `create-project`, or when switching projects). Most commands (`validate`, `run-file`) auto-resolve a Studio instance, so this is rarely required.
156
+
Open an existing project in Studio. Only needed when explicitly loading a project that isn't already open (e.g. after `create-project`, or when switching projects). Most commands (`validate`, `run-file`) auto-resolve a Studio instance and open the project automatically, so this is rarely required.
@@ -499,11 +523,11 @@ When `uip` commands fail, diagnose by error category:
499
523
500
524
| Error Pattern | Cause | Recovery |
501
525
|---------------|-------|----------|
502
-
| `"connection refused"`, `"EPIPE"`, `"pipe not found"` | Studio IPC not available | Run `uip rpa start-studio`, then `uip rpa open-project --project-dir "..."` |
503
-
| `"timeout"`, `"ETIMEDOUT"` | Command took too long | Increase timeout: `uip rpa --timeout 600 <command>`, or use `--skip-validation` for `get-errors` |
526
+
|`"connection refused"`, `"EPIPE"`, `"pipe not found"`| Studio IPC not available. Headless Studio (Helm): NuGet restore failed or process exited. Studio Desktop: not running. | Re-run the command — headless Studio relaunches automatically. If it persists, raise `--timeout` and check the Helm restore output for NuGet errors. Only run `uip rpa start-studio`if the failing command is `diff`/`focus-activity` or `UIPATH_RPA_TOOL_USE_STUDIO=1` is set.|
527
+
|`"timeout"`, `"ETIMEDOUT"`| Command took too long. Cold Helm NuGet restore can take 30–90 s. | Raise the timeout: `uip rpa --timeout 600 <command>`. For `get-errors`, also try`--skip-validation`.|
504
528
|`"not authenticated"`, `401`, `403`| Auth required for cloud features | Run `uip login` and re-try |
505
529
|`"package not found"`, `"version not available"`| Wrong package ID or version | Verify package name via `uip rpa find-activities`; omit `version` to auto-resolve latest |
506
-
| `"project not found"`, `"no project open"` | Wrong project-dir or project not open | Verify `--project-dir` path, run `uip rpa open-project` |
530
+
|`"project not found"`, `"no project open"`| Wrong project-dir or project not open in Studio | Verify `--project-dir` path, run `uip rpa open-project`|
507
531
|`"file not found"`in`get-errors`| Wrong `--file-path` (must be relative to project) | Use path relative to project root, not absolute |
508
532
|`"Studio is busy"`, `"operation in progress"`| Studio is processing a previous request | Wait a few seconds and retry the command|
509
533
| Any unrecognized error | Unknown | Check `--verbose` flag: `uip rpa --verbose <command>`for debug details, inform the user |
Focus an activity in the Studio Desktop designer view. **Requires a running Studio Desktop instance** — does not work against headless Studio. Run `uip rpa start-studio --project-dir "<PROJECT_DIR>"` first if Studio Desktop is not already up.
|**"Studio X.X.X does not have interop support"**|Auto-detected Studio is too old (< 26.2)| Always pass `--studio-dir "<STUDIO_DIR>"` pointing to the dev build |
201
-
|**No Studio instances found**| Studio is not running | Run `uip rpa start-studio --project-dir "<PROJECT_DIR>" --studio-dir "<STUDIO_DIR>"`|
202
-
|**Stale pipe / ENOENT**| Studio instance crashed or was closed | The tool retries automatically; if persistent, restart Studio |
200
+
|**"Studio X.X.X does not have interop support"**|Surfaces only when running against Studio Desktop and the auto-detected install is too old (< 26.2). Headless Studio is unaffected. | Pass `--studio-dir "<STUDIO_DIR>"` pointing to a 26.2+ build, or drop the Studio Desktop override and let the command run headless|
201
+
|**No Studio instances found**|Only relevant for `diff` / `focus-activity` — they need Studio Desktop. Every other command runs headless and doesn't need a Desktop instance. | Run `uip rpa start-studio --project-dir "<PROJECT_DIR>"` if you actually need Studio Desktop; otherwise re-run the command — headless Studio relaunches automatically|
202
+
|**Stale pipe / ENOENT**| Studio instance crashed or was closed | The tool retries automatically; if persistent, re-run the command (headless) or restart Studio Desktop|
203
203
|**Workflow cannot be found**| Entrypoint not in project.json | Verify project.json entrypoint has the file listed (Process projects only — Tests and Library projects do not use `entryPoints`) |
204
204
|**Service property not available**| Missing package dependency | Add required package to project.json dependencies |
205
-
|**Timeout**| Studio took too long to start | Increase timeout: `--timeout 600`|
205
+
|**Timeout**| Studio took too long to start. First headless call on a cold NuGet cache can take 30–90 s.| Increase timeout: `--timeout 600`|
206
206
|**"Target name 'X' is not part of the current screen"**| Element descriptor used on wrong screen handle | Use the `UiTargetApp` handle from `Open`/`Attach` for the screen that owns the element |
207
207
|**"Cannot select item. It was not found among existing items"**|`SelectItem` fails on web dropdowns | Use `TypeInto` instead of `SelectItem` for web `<select>` elements |
208
208
|**inspect-package cannot find UILibrary package**| Package is on a private/local NuGet feed | Use `--nupkg-path` to inspect the local `.nupkg` directly, or read `.metadata` files manually from `~/.nuget/packages/<name>/<version>/contentFiles/any/any/.objects/`|
0 commit comments