- Overview
- Get started
- Concepts
- Using UiPath CLI
- How-to guides
- CI/CD recipes
- Command reference
- Overview
- Exit codes
- Global options
- uip codedagent
- uip coder
- uip context-grounding
- uip docsai
- uip function
- uip guardrails
- uip llm-configuration
- uip llm-gateway
- uip model-hub
- add-test-data-entity
- add-test-data-queue
- add-test-data-variation
- analyze
- build
- create-project
- diff
- find-activities
- get-analyzer-rules
- get-default-activity-xaml
- get-errors
- get-manual-test-cases
- get-manual-test-steps
- get-library-object-repository
- get-object-repository
- get-versions
- get-workflow-example
- indicate-application
- indicate-element
- inspect-package
- install-data-fabric-entities
- install-or-update-packages
- list-data-fabric-entities
- list-instances
- list-workflow-examples
- pack
- publish
- remote
- restore
- run, debug & execution
- run-file
- search-templates
- start-studio
- stop-execution
- tm
- uia
- uip tasks
- uip traces
- uip traces feedback
- Migration
- Reference & support
Syntax and options for `uip maestro flow init`, which scaffolds a new Flow project with a minimal manifest and starter `.flow` file.
uip maestro flow init scaffolds a new Flow project directory with a minimal manifest and a starter .flow file containing a single manual-trigger node.
Synopsis
uip maestro flow init <name> [--force] [--skip-solution-registration]
uip maestro flow init <name> [--force] [--skip-solution-registration]
Honors global options. Exit codes follow the standard contract.
Arguments
<name>(required) — project folder name. Validated againstVALID_PROJECT_NAME_REGEX: letters, numbers, underscores (_), and hyphens (-) only.
Options
--force— initialize even if the target directory exists and is non-empty. Existing files are not cleared — files are written alongside; this is useful for reinitializing inside a pre-created folder.--skip-solution-registration— do not auto-register this project in the surrounding solution (see Behavior below).
Behavior
The command writes two files into <name>/:
project.uiproj—{ "Name": "<name>", "ProjectType": "Flow" }<name>.flow— seed Flow JSON containing:- One
core.trigger.manualstart node wired to a generatedentryPointId - The matching node definition in
definitions[] - Empty
edges,bindings,variables - Canvas
layout.nodes.startposition
- One
Solution auto-registration. Unless --skip-solution-registration is passed:
- If the current directory is already inside a solution,
<name>/is created there and registered as a project in that solution's.uipxmanifest. - If the current directory is not inside a solution, a parent solution named
<name>Solutionis scaffolded automatically — the Flow project ends up nested at<name>Solution/<name>/, not at<name>/in the current directory as a literal reading of the synopsis might suggest.
If <name> already exists and is non-empty and --force is not set, the command fails with an error prompting the user to pass --force.
Examples
# Create a new project in ./invoice-flow
uip maestro flow init invoice-flow
# Reinitialize into an existing non-empty folder (e.g. a Git repo)
uip maestro flow init invoice-flow --force
# Create a new project in ./invoice-flow
uip maestro flow init invoice-flow
# Reinitialize into an existing non-empty folder (e.g. a Git repo)
uip maestro flow init invoice-flow --force
Data shape (--output json)
{
"Code": "FlowInit",
"Data": {
"Status": "Created successfully",
"Path": "/workspace/my-flow-projectSolution/my-flow-project",
"SolutionRegistration": {
"Status": "Registered",
"Message": "Project registered in parent solution.",
"Solution": "/workspace/my-flow-projectSolution/my-flow-projectSolution.uipx",
"Project": "my-flow-project/project.uiproj",
"ProjectId": "00000000-0000-0000-0000-000000000000",
"Instructions": "The project is listed in the parent solution manifest.
Packing or uploading the solution will sync solution resources automatically."
},
"AutoCreatedSolution": {
"Name": "my-flow-projectSolution",
"Path": "/workspace/my-flow-projectSolution",
"SolutionFile": "/workspace/my-flow-projectSolution/my-flow-projectSolution.uipx"
},
"ProjectArtifacts": { "Created": true },
"NextSteps": "The project is listed in the parent solution manifest.
Packing or uploading the solution will sync solution resources automatically."
}
}
{
"Code": "FlowInit",
"Data": {
"Status": "Created successfully",
"Path": "/workspace/my-flow-projectSolution/my-flow-project",
"SolutionRegistration": {
"Status": "Registered",
"Message": "Project registered in parent solution.",
"Solution": "/workspace/my-flow-projectSolution/my-flow-projectSolution.uipx",
"Project": "my-flow-project/project.uiproj",
"ProjectId": "00000000-0000-0000-0000-000000000000",
"Instructions": "The project is listed in the parent solution manifest.
Packing or uploading the solution will sync solution resources automatically."
},
"AutoCreatedSolution": {
"Name": "my-flow-projectSolution",
"Path": "/workspace/my-flow-projectSolution",
"SolutionFile": "/workspace/my-flow-projectSolution/my-flow-projectSolution.uipx"
},
"ProjectArtifacts": { "Created": true },
"NextSteps": "The project is listed in the parent solution manifest.
Packing or uploading the solution will sync solution resources automatically."
}
}
AutoCreatedSolution is present only when a parent solution was scaffolded automatically (i.e. the command wasn't run inside an existing solution). SolutionRegistration is absent entirely when --skip-solution-registration is passed.
On failure, Code is absent and the response carries Result: "Failure", Message, and Instructions.
See also
uip maestro flow pack— pack the scaffolded projectuip maestro flow node— add nodes to the starter.flowfileuip maestro flow registry— discover node types to add- Flow overview