From uipath
UiPath RPA — create, edit, build, run, debug `.cs` coded workflows and `.xaml` workflows. UI automation with Object Repository selectors, test case authoring, Integration Service connector calls. Deploy→uipath-platform. Test reports→uipath-test. Agents→uipath-agents. Legacy→uipath-rpa-legacy.
npx claudepluginhub uipath/skills --plugin uipathThis skill uses the workspace's default tool permissions.
Full assistant for creating, editing, managing, and running UiPath automation projects — both coded workflows (C#) and low-code RPA workflows (XAML).
CLAUDE.mdassets/before-after-hooks-template.mdassets/codedworkflow-template.mdassets/helper-utility-template.mdassets/json-template.mdassets/project-structure-examples.mdassets/testcase-template.mdreferences/activity-docs/UiPath.ActiveDirectory.Activities/1.7/coded/active-directory.mdreferences/activity-docs/UiPath.ActiveDirectory.Activities/1.7/coded/api.mdreferences/activity-docs/UiPath.ActiveDirectory.Activities/1.7/coded/examples.mdreferences/activity-docs/UiPath.AmazonWebServices.Activities/2.9/coded/amazon-web-services.mdreferences/activity-docs/UiPath.AmazonWebServices.Activities/2.9/coded/api.mdreferences/activity-docs/UiPath.AmazonWebServices.Activities/2.9/coded/examples.mdreferences/activity-docs/UiPath.AmazonWorkSpaces.Activities/1.5/coded/amazon-workspaces.mdreferences/activity-docs/UiPath.AmazonWorkSpaces.Activities/1.5/coded/api.mdreferences/activity-docs/UiPath.AmazonWorkSpaces.Activities/1.5/coded/examples.mdreferences/activity-docs/UiPath.Azure.Activities/1.7/coded/api.mdreferences/activity-docs/UiPath.Azure.Activities/1.7/coded/azure.mdreferences/activity-docs/UiPath.Azure.Activities/1.7/coded/examples.mdreferences/activity-docs/UiPath.AzureActiveDirectory.Activities/1.6/coded/api.mdMandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
Full assistant for creating, editing, managing, and running UiPath automation projects — both coded workflows (C#) and low-code RPA workflows (XAML).
Before doing any work, check if .claude/rules/project-context.md exists in the project directory.
If the file exists → check for staleness:
.claude/rules/project-context.md to extract the metadata comment: <!-- discovery-metadata: cs=N xaml=N deps=N -->**/*.cs (excluding .local/ and .codedworkflows/) and **/*.xaml in the project directoryproject.json and count keys in the .dependencies objectabs(current - stored) / max(stored, 1) * 100If the file does NOT exist → run the discovery flow below.
Discovery flow (used for both missing and stale context):
uipath-project-discovery-agent and wait for it to complete.claude/rules/project-context.md (create .claude/rules/ directory if needed) — auto-loaded by Claude Code in future sessionsAGENTS.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 endBefore creating or modifying anything, determine which project to work with. See references/environment-setup.md for the full procedure.
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.
After establishing PROJECT_DIR, determine whether this is a coded or XAML project:
.cs files with [Workflow] or [TestCase] attributes exist AND no .xaml workflow files (beyond scaffolded Main.xaml).xaml workflow files exist AND no coded workflow .cs filesRouting: Once mode is determined, use the Task Navigation table below to find the right reference files. For guidance on choosing between coded and XAML approaches, see coded-vs-xaml-guide.md.
Default to matching the project's existing mode. For new projects or ambiguous cases, default to XAML — it is the more common mode and has the widest activity coverage.
| Scenario | Mode | Why |
|---|---|---|
| Standard RPA (Excel, email, file ops) | XAML (default) | Direct activity support, no code needed |
| UI automation | XAML (default) | Full activity support; coded also works via uiAutomation service |
| Integration Service connectors (XAML) | XAML | IS connector activities use XAML-specific dynamic activity config |
| No matching activity for a subtask | Coded fallback | Small .cs invoked from XAML via Invoke Workflow File |
| Complex data transforms, HTTP, parsing | Coded | C# is more natural than nested XAML activities |
| Custom data models / DTOs | Coded Source File | XAML cannot define types — plain .cs, no CodedWorkflow base |
| Unit tests with assertions | Coded Test Case | [TestCase] with Arrange/Act/Assert |
| User explicitly requests coded/XAML | User's choice | Never second-guess explicit preference |
For any task whose business behavior is "open an app/browser, click, type, scrape visible UI, submit a form, or verify UI state", the interaction layer MUST be UiPath UI Automation — NApplicationCard plus UIA activities (XAML), or uiAutomation.Open/Attach plus Object Repository descriptors (coded). Do NOT substitute InvokeCode, PowerShell, Selenium, Playwright, Chrome DevTools Protocol, raw DOM JavaScript, HTTP form posts, or external browser-driver scripts. The coded fallback rows above apply only to non-UI helper logic (data transforms, parsing, DTOs, calculations, API-only integrations).
If target configuration is unavailable, fall back to the documented UIA indication path — never to an external browser automation shortcut.
See ui-automation-guide.md § Mandatory: Generate Targets Before Writing Any UI Code for the full prohibited-tool list, the UIA-only exploration requirement, and the InvokeJS/InjectJsScript exception scope.
Hybrid pattern — XAML orchestration + coded fallback for logic with no matching activity:
Main.xaml ← orchestration (XAML)
└── InvokeWorkflowFile → ProcessData.cs ← coded logic
For the full decision flowchart, InvokeCode extraction rules, and detailed hybrid patterns, see coded-vs-xaml-guide.md.
When the request is "automate this dialog/form" or "build a UI test from these manual steps" — i.e. the bulk of the work is target capture, not coding — defer authoring-phase prerequisites until target capture is complete. The capture surface is interactive, app-state-sensitive, and time-bound; project-context discovery and analyzer rules add nothing during capture and steal time from it.
Fast-path order for capture-first tasks:
uia-configure-target and screen advancement. See uia-configure-target-workflows.md § Multi-Step UI Flows.Skip this path when the task has no UI surface (data transforms, IS connector calls, headless file/email automation).
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.
ALWAYS use uip rpa create-project to create new projects — never write project.json or scaffolding manually.
uip rpa search-templates --query "<term>" --output json first. Selection rule against Data[*]:
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.source == "Official" match AND user did not name a non-Official template → use it; pass --template-package-id <packageId> --template-package-version <version> to create-project. Proceed without asking.Official matches OR only Marketplace matches → present candidates (packageId, version, source, title) to the user and ask which to use. Never silently pick a Marketplace template.--template-id and tell the user nothing was found.--template-id keywords map without a search: library → LibraryProcessTemplate, test automation / test project → TestAutomationProjectTemplate, otherwise BlankTemplate. When --template-package-id is set, --template-id is ignored. Full decision flow: environment-setup.md § Template selection.Phase-gated validation: analyzer rules run at AUTHORING-phase start, not session start. Three-phase validation:
.cs with [Workflow]/[TestCase], or .xaml): uip rpa get-analyzer-rules --project-dir "<PROJECT_DIR>" --output json to list the enabled Workflow Analyzer rules. Apply every error and warning rule during authoring so generated code passes analyze and build on the first attempt. Run once at this point; re-run only when project dependencies change. DO NOT run at session start — the call can take a minute or more (use --scope <Activity|Workflow|Coded Workflow|Project> to narrow if it times out, see cli-reference.md § get-analyzer-rules). For capture-first tasks (target capture from manual test steps, dialog automation), this prerequisite is deferred until capture is complete — see § Capture-First Fast Path below.uip rpa get-errors --file-path "<FILE>" --project-dir "<PROJECT_DIR>" --output json until 0 errors. Cap at 5 fix attempts.uip rpa build "<PROJECT_DIR>" --output json. Projects returned to the user must compile. get-errors is static analysis and misses compile-time failures — notably attribute-form XAML expressions in projects with expressionLanguage: CSharp. A successful uip rpa run-file smoke test covers this; if no smoke test runs, uip rpa build is mandatory.ALWAYS validate files as you go AND verify the project builds before declaring done. Per-file get-errors after every create or edit; project-level build (or a passing run-file smoke test) before reporting done. See references/validation-guide.md.
Prefer UiPath built-in activities for Orchestrator integration, UI automation, and document handling. Prefer plain .NET / third-party packages for pure data transforms, HTTP calls, parsing.
ALWAYS ensure required package dependencies are in project.json before using their activities or services.
For UI automation workflows, MUST follow the target configuration workflow in references/ui-automation-guide.md. NEVER hand-write selectors — use uia-configure-target exclusively.
7a. [UIA] Verify UIA prerequisites before invoking uia-configure-target. UIA minimum is 26.4.1-preview (source-of-truth: uia-prerequisites.md — kept in sync with that file). Run the prerequisite check in that file. If UiPath.UIAutomation.Activities is below the minimum or {PROJECT_DIR}/.local/docs/packages/UiPath.UIAutomation.Activities/skills/uia-configure-target/SKILL.md is absent: ask the user to upgrade or fall back to indication authoring — never silently route to a non-existent skill path. If the plan header records UI capture: indication-only, skip uia-configure-target entirely and use indication authoring.
Use --output json on all CLI commands whose output is parsed programmatically.
Run to completion — do not declare work done while plan tasks remain. If a plan file exists at docs/plans/*.md referenced by this request (or discoverable there for this feature), read its header before acting and during every checkpoint.
Execution autonomy: autonomous: continue until ALL plan task checkboxes are [x] OR a concrete item from the plan's Stop conditions section is hit.Execution autonomy: interactive, or no plan file exists: use judgment and confirm with the user on material decisions.Stop conditions section count.AskUserQuestion about structure, file count, selector strategy, or capture approach when the plan specifies them — those questions belonged to the planner.CodedWorkflow base class for workflow and test case classes (NOT for Coded Source Files).[Workflow] or [TestCase] attribute on the Execute method.project.json entry points when adding/removing workflow files in Process projects. Tests and Library projects do NOT use entryPoints — skip this step for those project types. Always update fileInfoCollection for test case files.project.json. Sanitize: remove spaces, replace hyphens with _, ensure valid C# identifier.Execute..cs files without CodedWorkflow inheritance, no entry point.{projectRoot}/.local/docs/packages/{PackageId}/ first. Always.project.json, check expression language, scan existing patterns. NEVER generate XAML blind.<Activity>.md is a precondition for get-default-activity-xaml — for every activity, not just complex ones. Workflow: (1) find-activities → class name, (2) read <Activity>.md and extract a property checklist (required + use-case-relevant), (3) get-default-activity-xaml → starter element, (4) diff your checklist against the starter and add what's missing — an empty checklist means you skipped step 2, go back. Doc lookup order: primary {PROJECT_DIR}/.local/docs/packages/<PackageId>/activities/<Activity>.md; fallback skills/uipath-rpa/references/activity-docs/<PackageId>/<closest-version>/<Activity>.md for older package versions where .local/docs is empty. Skip-tax: get-default-activity-xaml omits any property at type default — for NTypeInto that's 2 of 20. Self-exempting "this activity is simple" is the failure mode. Full procedure: xaml/xaml-basics-and-rules.md § Activity Property Surface.expressionLanguage or targetFramework on an existing project. Both fields in project.json are fixed at creation time and apply to every XAML file in the project — flipping expressionLanguage (VisualBasic ↔ CSharp) invalidates every expression, and flipping targetFramework (Windows ↔ Portable/cross-platform, or Legacy) invalidates package references and activity compatibility. Do not attempt in-place conversion. If the user wants to convert an existing project, confirm with them, copy the project to a temporary folder, create a new project via uip rpa create-project --expression-language <VisualBasic|CSharp> --target-framework <Windows|Portable|Legacy>, make sure all the defined workflows in the old project have an equivalent in the new project. Delete the copied project just after the new project has been successfully generated and the user agree with the changes.Coded workflows use standard C# development: create file → write code → validate → run. Activity discovery (find-activities, get-default-activity-xaml) is XAML-specific — for coded mode, check {projectRoot}/.local/docs/packages/{PackageId}/coded/coded-api.md first for service API docs, then fall back to inspect-package. See coded/inspect-package-guide.md.
| Type | Base Class | Attribute | Entry Point | Purpose |
|---|---|---|---|---|
| Coded Workflow | CodedWorkflow | [Workflow] | Process only | Executable automation logic |
| Coded Test Case | CodedWorkflow | [TestCase] | Process only | Automated test with assertions |
| Coded Source File | None (plain C#) | None | No | Reusable models, helpers, utilities, hooks |
Each service on CodedWorkflow requires its NuGet package in project.json. Without it: CS0103.
| Service Property | Required Package |
|---|---|
system | UiPath.System.Activities |
testing | UiPath.Testing.Activities |
uiAutomation | UiPath.UIAutomation.Activities |
excel | UiPath.Excel.Activities |
word | UiPath.Word.Activities |
powerpoint | UiPath.Presentations.Activities |
mail | UiPath.Mail.Activities |
office365 | UiPath.MicrosoftOffice365.Activities |
google | UiPath.GSuite.Activities |
For infrastructure/cloud packages (azure, gcp, aws, azureAD, citrix, hyperv, etc.), see coded/codedworkflow-reference.md.
For IS connectors from coded workflows via ConnectorConnection.ExecuteAsync: UiPath.IntegrationService.Activities — see coded/integration-service-guide.md.
All workflow/test case files inherit from CodedWorkflow, providing built-in methods (Log, Delay, RunWorkflow), service properties, and the workflows property for strongly-typed invocation. Extendable with Before/After hooks via IBeforeAfterRun.
Full reference: coded/codedworkflow-reference.md
XAML workflows follow a discovery-first, phase-based approach: Discovery → Generate/Edit → Validate & Fix → Response. See references/xaml/workflow-guide.md for the full phase workflow.
| Type | When to Use |
|---|---|
| Sequence | Linear step-by-step logic; most common for simple automations |
| Flowchart | Branching/looping logic with multiple decision points |
| State Machine | Long-running processes with distinct states and transitions |
| Long Running Workflow | BPMN-style horizontal flow; event-driven processes with long waits |
Check expressionLanguage in project.json. VB.NET uses [brackets] for expressions; C# uses CSharpValue<T> / CSharpReference<T>. Default for new XAML projects is VB.NET.
| Command | Purpose |
|---|---|
find-activities --query "<keyword>" | Discover activities by keyword |
get-default-activity-xaml --activity-class-name "<class>" | Get starter XAML for an activity |
get-analyzer-rules --project-dir "<dir>" | List enabled Workflow Analyzer rules — run before generating |
get-errors --file-path "<file>" | Validate a workflow file |
| Activity | Package | Purpose |
|---|---|---|
| Use Application/Browser | UiPath.UIAutomation.Activities | Scope for all UI automation actions |
| Click | UiPath.UIAutomation.Activities | Click a UI element |
| Type Into | UiPath.UIAutomation.Activities | Type text into a field |
| Get Text | UiPath.UIAutomation.Activities | Extract text from a UI element |
| If | built-in | Conditional branching |
| Assign | built-in | Set variable/argument values |
| For Each | built-in | Iterate over a collection |
| Invoke Workflow File | built-in | Call another workflow file |
The XAML file anatomy template (namespace declarations, root Activity element, body structure) is in xaml/xaml-basics-and-rules.md — read it before generating or editing any XAML.
For XAML workflows spanning multiple capture screens, add each screen's activities to the workflow as its targets get registered in the OR — validating with get-errors after each batch. See uia-configure-target-workflows.md § Multi-Step UI Flows for the capture loop and the Complete-then-advance rule.
Follow this flow whenever you need to use an activity package:
Check project.json → dependencies for the required package.
uip rpa get-versions --package-id <PackageId> --include-prerelease --project-dir "<PROJECT_DIR>" --output jsonuip rpa install-or-update-packages --packages '[{"id":"<PackageId>"}]' --project-dir "<PROJECT_DIR>" --output json
{PROJECT_DIR}/.local/docs/packages/{PackageId}/ — auto-generated, most accurate. Use Glob + Read (not Grep — .local/ is gitignored).references/activity-docs/{PackageId}/ — pick the version folder closest to what is installed.MUST read references/ui-automation-guide.md before any UI automation work — mode-specific UIA patterns (coded vs XAML).
Additional UIA procedures and guides:
Before reporting "done", verify the plan is complete. If a plan file at docs/plans/*.md drove this work:
[ ] boxes remain AND the plan's header says Execution autonomy: autonomous AND no Stop conditions item was hit — do not report done. Resume execution on the next unchecked task.interactive, proceed to the report format below.When you finish a task, report to the user:
get-errors result (all files passed, or remaining errors) and project-level uip rpa build result. If neither build nor a successful run-file smoke test has run, the project is not verified — say so explicitly rather than claiming success.docs/plans/*.md are now [x]; list any still [ ] and, for each, the Stop-condition item that interrupted it (or "not reached" if execution was cut short another way)uip rpa run-file command (if applicable)/uipath-feedback to send a report."Do NOT use framing like "complete", "done", "finished", or "the automation is built" unless every plan task is checked off. "Partial", "stopped at ", or "blocked by " is the honest framing otherwise.