
Security News
White House Authorizes Private Companies to Conduct Offensive Cyber Operations
A new federal program will let vetted U.S. cybersecurity firms help investigate and disrupt foreign cybercrime groups under government direction.
@uipath/flow-tool
Advanced tools
Affected versions:
CLI tool for managing UiPath Flow processes and jobs. This is a uip plugin that provides Flow-related commands.
flow initCreate a new Flow project with boilerplate files.
uip flow init <projectName> [--force]
flow validateValidate a .flow file against the Flow schema (Zod-based) with structural cross-field checks.
uip flow validate <flowFile>
flow packPack a Flow project into a NuGet package (.nupkg).
uip flow pack <projectPath> <outputPath> [-n <name>] [-v <version>]
Solution integration with Flow projects is currently broken.
The
flow init,flow validate, andflow packcommands work correctly on their own. However, when a Flow project is added to a solution viauip solution project addand then packed withuip solution pack, the resulting.nupkginside the solution zip is missing critical files (.bpmn,.flow,entry-points.json,bindings_v2.json).Root cause: The published
@uipath/tool-flownpm package has a non-recursivecopyFiles()method that only copies top-level files from the project directory, silently skipping thecontent/andflow_files/subdirectories. The localflow-pack-service.tscorrectly usescopyDirectory()for recursive copies, but the npm-published tool does not.Workaround: Use
uip flow packdirectly to produce a correct.nupkgfor deployment.
flow process listList available Flow processes.
uip flow process list
flow process getGet Flow process schema and details.
uip flow process get "<process-key>" "<feed-id>"
# Example
uip flow process get "MyFlow.flow.Flow:1.0.0" "6d98ceb8-becb-46ec-80d7-df213fbec06c"
flow process runRun a Flow process.
Syntax:
uip flow process run "<process-key>" "<folder-key>" [options]
Arguments:
<process-key> - Process package key with version (e.g., MyFlow.flow.Flow:1.0.0)<folder-key> - Folder key (GUID)Options:
-i, --inputs <json> - Input parameters as JSON string or @file.json-t, --tenant <name> - Tenant name (defaults to authenticated tenant)--release-key <key> - Release key (GUID, from list command)--folder-id <id> - Folder ID (from list command)--feed-id <id> - Feed ID for package lookup (optional)--robot-ids <ids> - Comma-separated robot IDs (optional)--validate - Validate inputs against project schema before runningExamples:
# Run with JSON inputs
uip flow process run "TestFlow.flow.Flow:1.0.0" "folder-guid-here" \
--release-key "release-guid" \
--folder-id "2553016" \
--inputs '{"name": "John", "age": 30}'
# Run with inputs from file
uip flow process run "TestFlow.flow.Flow:1.0.0" "folder-guid-here" \
--release-key "release-guid" \
--folder-id "2553016" \
--inputs @inputs.json
# Run with piped inputs
echo '{"name": "John", "age": 30}' | \
uip flow process run "TestFlow.flow.Flow:1.0.0" "folder-guid-here" \
--release-key "release-guid" \
--folder-id "2553016"
flow job tracesStream execution traces for a running job.
uip flow job traces "<job-key>" [options]
# Options:
# --poll-interval <ms> - Polling interval in milliseconds (default: 2000)
# --traces-service <name> - Traces service name (default: llmopstenant_)
# Example
uip flow job traces "06478292-f9cf-4234-9d1b-03f4bcd95fed"
flow job statusGet detailed status of a Flow job.
uip flow job status "<job-key>" --folder-id "<id>" [options]
# Options:
# --detailed - Show full response with all fields
# Example
uip flow job status "06478292-f9cf-4234-9d1b-03f4bcd95fed" --folder-id "2553016"
# 1. List available processes
uip flow process list
# 2. Get process schema (to see required inputs)
uip flow process get "MyFlow.flow.Flow:1.0.0" "feed-id-from-list"
# 3. Run the process
JOB_KEY=$(uip flow process run "MyFlow.flow.Flow:1.0.0" "folder-key" \
--release-key "release-key" \
--folder-id "2553016" \
--inputs '{}' 2>/dev/null)
# 4. Watch execution traces
uip flow job traces "$JOB_KEY"
# 5. Check final status
uip flow job status "$JOB_KEY" --folder-id "2553016"
Process list: JSON array with process metadata Process get: JSON with entry points and schemas Process run: Job key on stdout, next steps on stderr Job traces: JSON trace events (one per line) on stdout Job status: JSON with job details (14 fields default, full with --detailed)
Exit codes:
0 - Success1 - Failure or errorflow registry commands let you browse, search, and inspect the Flow node registry — the building blocks used inside UiPath Flow processes. Nodes include OOTB activities (uipath.agent, uipath.http, etc.) and connector nodes that call third-party APIs (Slack, Salesforce, etc.). When logged in, the registry also includes connector nodes installed in your tenant.
| Command | Description |
|---|---|
flow registry pull | Fetch and cache all available nodes from the Flow registry |
flow registry list | List all locally cached nodes |
flow registry search [keyword] | Find nodes by keyword and/or structured filters |
flow registry get <nodeType> | Get full node schema; auto-enriches connector nodes with input/output fields |
flow registry pullFetches the node registry and writes it to local cache. Subsequent commands (list, search, get) read from this cache.
uip flow registry pull
uip flow registry pull --force # bypass 30-minute cache, always refresh
Output fields:
| Field | Description |
|---|---|
NodesCount | Number of nodes cached |
FromCache | true if the cached copy was used without fetching |
AgeMinutes | Cache age in minutes (only when FromCache: true) |
Source | "ootb" (unauthenticated) or "authenticated" (tenant-specific) |
CacheWritten | true if cache was updated on this run |
Message | Human-readable status |
Cache behaviour:
flow registry listLists all nodes in the local cache. If no cache exists, fetches live data first.
uip flow registry list
Output fields: NodesCount, Nodes[]
flow registry searchSearches for nodes by keyword and/or structured filters.
uip flow registry search slack
uip flow registry search slack --filter "displayname:contains=send message"
uip flow registry search --filter "category=connector"
Options:
| Option | Description |
|---|---|
[keyword] | Searches across nodeType, category, tags, display.label |
--filter <expr> | Structured filter (see filter syntax below) |
At least one of keyword or --filter is required.
Output fields: Keyword, Filters, ResultCount, Nodes[]
Filter syntax:
field=value # equality
field:operator=value # operator variant
field1=value1,field2=value2 # AND conditions
| Field aliases | Operators |
|---|---|
category, cat | equals (default), contains, startsWith, endsWith, in |
type, nodetype | |
tags, tag | |
displayname, display_name, name, label |
Examples:
# Connector nodes only
--filter "category=connector"
# Display name contains "slack"
--filter "displayname:contains=slack"
# Tagged with "ai" or "automation"
--filter "tags:in=ai,automation"
# Combined: connector AND display name contains "invite"
--filter "category=connector,displayname:contains=invite"
flow registry getReturns full details for a single node, looked up by nodeType (case-insensitive).
uip flow registry get "uipath.agent"
uip flow registry get "uipath.connector.slack.send-message"
Output fields: Node (enriched FlowNode object)
Connector enrichment:
For nodes tagged "connector", registry get automatically calls the Integration Service API to fetch input and output field definitions and attach them to the result:
inputDefinition.fields[] — fields for the request bodyoutputDefinition.fields[] — fields returned by the actionEach field contains:
| Property | Description |
|---|---|
name | JSON key for the request/response |
displayName | Human-readable label |
type | Data type (string, boolean, integer, etc.) |
required | true if mandatory (input fields only) |
description | What the field does |
enum | Allowed values (if restricted) |
reference | Object reference metadata — field expects an ID, not a plain name |
responseOnly | true on all output fields |
Enrichment requires login. If the IS call fails or the node is not a connector, the node is returned unchanged.
All commands support --output-filter <expression> (global option) to extract specific values from the output. The expression is a JMESPath query evaluated against the Data field of the JSON response, so top-level keys are the output fields listed above.
# List all nodeTypes from a search
uip flow registry search slack --output-filter "Nodes[*].nodeType"
# Get the full enriched node
uip flow registry get "uipath.connector.slack.send-message" \
--output-filter "Node"
# Extract only the input fields
uip flow registry get "uipath.connector.slack.send-message" \
--output-filter "Node.inputDefinition.fields"
# Get the node count after a pull
uip flow registry pull --output-filter "NodesCount"
Combine with --output json to get clean JSON output:
uip flow registry get "uipath.connector.slack.send-message" \
--output-filter "Node.inputDefinition.fields" --output json
# 1. Pull the registry (once per session)
uip flow registry pull
# 2. Search for candidates
uip flow registry search slack --filter "displayname:contains=send" \
--output-filter "Nodes[*].nodeType"
# → uipath.connector.slack.send-message
# uipath.agent.resource.tool.connector.slack.send-message
# Pick the uipath.connector.* variant for direct flow use.
# 3. Inspect the full schema (with IS enrichment if logged in)
uip flow registry get "uipath.connector.slack.send-message" --output json
# 4. Extract just the input fields to build a request body
uip flow registry get "uipath.connector.slack.send-message" \
--output-filter "Node.inputDefinition.fields" --output json
# Build
bun run build
# Test
bun test
# Lint
bun run lint
FAQs
Create, debug, and run UiPath Flow projects and jobs.
The npm package @uipath/flow-tool receives a total of 1,863 weekly downloads. As such, @uipath/flow-tool popularity was classified as popular.
We found that @uipath/flow-tool demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 24 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
A new federal program will let vetted U.S. cybersecurity firms help investigate and disrupt foreign cybercrime groups under government direction.

Research
/Security News
The campaign amassed more than 75,000 installs by targeting Russian-speaking users seeking access to blocked services.

Company News
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.