Skip to content

Commit a5efb43

Browse files
gabrielavaduvaclaude
authored andcommitted
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>
1 parent 8e38ee0 commit a5efb43

8 files changed

Lines changed: 123 additions & 74 deletions

File tree

skills/uipath-rpa/SKILL.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,11 @@ Before doing any work, check if `.claude/rules/project-context.md` exists in the
4343
- `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
4444
4. Then proceed with the skill workflow
4545

46-
## Step 0: Resolve PROJECT_DIR and Environment
46+
## Step 0: Resolve PROJECT_DIR
4747

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.
4949

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`.
5151

5252
## Project Type Detection
5353

@@ -86,7 +86,7 @@ For the full decision flowchart, InvokeCode extraction rules, and detailed hybri
8686

8787
### Common Rules (Both Modes)
8888

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.
9090
2. **ALWAYS use `uip rpa create-project`** to create new projects — never write `project.json` or scaffolding manually.
9191
- **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[*]`:
9292
- **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.

skills/uipath-rpa/references/cli-reference.md

Lines changed: 37 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,28 @@ CLI reference for `uip rpa` -- communicates with UiPath Studio over named pipes
44

55
> **Installation is automatic.** Do NOT attempt to install `uip` manually or instruct the user to install it.
66
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+
729
> **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:
830
931
```bash
@@ -21,22 +43,22 @@ Every `uip rpa` invocation accepts these flags:
2143
| Option | Description | Default |
2244
|--------|-------------|---------|
2345
| `--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` |
2648
| `--verbose` | Enable verbose/debug logging | Off |
2749
| `--output <format>` | Output format: `json`, `table`, `yaml`, `plain` | `table` |
2850

2951
> **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.
3052
3153
### STUDIO_DIR Resolution
3254

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:
3456

3557
1. Environment variable `UIPATH_STUDIO_DIR` if set.
3658
2. Default install: `C:\Program Files\UiPath\Studio` (or `x86` variant) if `UiPathStudio.exe` exists there.
3759
3. Dev build: Studio source tree build output (e.g. `<repo-root>\Output\bin\Debug`).
3860

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.
4062
4163
### PROJECT_DIR Resolution
4264

@@ -59,22 +81,24 @@ Located at `{projectRoot}/.local/docs/packages/{PackageId}/`.
5981

6082
---
6183

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.
6387
6488
### list-instances
6589

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.
6791

6892
```bash
6993
uip rpa list-instances --output json```
7094
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.
7296
7397
---
7498
7599
### start-studio
76100
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:
78102
1. Match by `--project-dir` -- reuse if available, wait if busy
79103
2. Use an idle instance (no project loaded)
80104
3. Start a new instance via `--studio-dir` -- poll until available
@@ -129,7 +153,7 @@ Returns `Data[*]` with `packageId`, `version`, `title`, `description`, `authors`
129153
130154
### open-project
131155
132-
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.
133157
134158
```bash
135159
uip rpa open-project --project-dir "<PROJECT_DIR>" --output json```
@@ -499,11 +523,11 @@ When `uip` commands fail, diagnose by error category:
499523
500524
| Error Pattern | Cause | Recovery |
501525
|---------------|-------|----------|
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`. |
504528
| `"not authenticated"`, `401`, `403` | Auth required for cloud features | Run `uip login` and re-try |
505529
| `"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` |
507531
| `"file not found"` in `get-errors` | Wrong `--file-path` (must be relative to project) | Use path relative to project root, not absolute |
508532
| `"Studio is busy"`, `"operation in progress"` | Studio is processing a previous request | Wait a few seconds and retry the command |
509533
| Any unrecognized error | Unknown | Check `--verbose` flag: `uip rpa --verbose <command>` for debug details, inform the user |
@@ -577,7 +601,7 @@ uip rpa get-workflow-example --key "<BLOB_PATH>" --output json```
577601
578602
### focus-activity
579603
580-
Focus an activity in the Studio designer view.
604+
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.
581605
582606
```bash
583607
uip rpa focus-activity --activity-id "<IDREF>" --output jsonuip rpa focus-activity --output json```

skills/uipath-rpa/references/coded/coding-guidelines.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ if (system.PathExists(@"C:\Reports\report.pdf", PathType.File, out ILocalResourc
120120
- **Escape backslashes in paths** — Use `C:\\path\\file.txt` not `C:\path\file.txt` in input arguments
121121

122122
### Validation Loop (Critical Rule #14)
123-
uip rpa get-errors --file-path "<FILE>" --project-dir "<PROJECT_DIR>" --studio-dir "<STUDIO_DIR>" --output json
123+
uip rpa get-errors --file-path "<FILE>" --project-dir "<PROJECT_DIR>" --output json
124124
@../validation-guide.md
125125

126126
### Error Handling
@@ -197,12 +197,12 @@ C) <user-driven approach>
197197

198198
| Issue | Cause | Fix |
199199
|-------|-------|-----|
200-
| **"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 |
203203
| **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`) |
204204
| **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` |
206206
| **"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 |
207207
| **"Cannot select item. It was not found among existing items"** | `SelectItem` fails on web dropdowns | Use `TypeInto` instead of `SelectItem` for web `<select>` elements |
208208
| **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/` |

skills/uipath-rpa/references/coded/operations-guide.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ Creates a complete UiPath coded automation project from scratch. **ALWAYS use `u
1111
**1. Create the project with `uip rpa create-project`:**
1212

1313
```bash
14-
uip rpa create-project --name "<NAME>" --location "<PARENT_DIR>" --studio-dir "<STUDIO_DIR>" --output json```
14+
uip rpa create-project --name "<NAME>" --location "<PARENT_DIR>" --output json```
1515
1616
**Template options:**
1717
- `--template-id BlankTemplate` (default) — standard process project

0 commit comments

Comments
 (0)