- 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
uip maestro flow init
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] [--automate] [--sdk-source [file]]
uip maestro flow init <name> [--force] [--skip-solution-registration] [--automate] [--sdk-source [file]]
Honors global options. Exit codes follow the standard contract.
Arguments
<name>(required) — project folder name. Allowed characters: letters, numbers, underscores (_), and hyphens (-).
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).--automate— create a Maestro Automate project. The project and the commands that operate on it are the same as for a standard Flow project; only the runtime profile written intooperate.jsondiffers.--sdk-source [file]— also write the builder-SDK source for the new project: decompile the starter.flowfile into<project>/.flow-sdk/<name>.flow.ts, or into[file](relative to the current directory), creating its folder. The result is the same as runninguip maestro flow decompile <name>.flow -o <file> --no-pipelineafterinit. Requires@uipath/maestro-builder-sdk6.11.1 or later, installed in the project or globally. If[file]already exists, the command fails unless you pass--force.
Behavior
The command writes these files into <name>/:
project.uiproj—{ "Name": "<name>", "ProjectType": "Flow" }operate.json— the project's runtime settings, including the runtime profile that--automateselects<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.
With --sdk-source, the command checks for @uipath/maestro-builder-sdk before it creates anything. If the project is created but writing the SDK source fails, the error names the uip maestro flow decompile command that writes the source for the existing project.
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 Maestro Automate project
uip maestro flow init my-automate --automate
# Create a project inside an existing solution and write its builder-SDK source
cd MySolution && uip maestro flow init my-flow --sdk-source
# 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 Maestro Automate project
uip maestro flow init my-automate --automate
# Create a project inside an existing solution and write its builder-SDK source
cd MySolution && uip maestro flow init my-flow --sdk-source
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 always present; with --skip-solution-registration, its Status is OptedOut. SdkSource (the path of the written builder-SDK source) is present only with --sdk-source.
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