UI5 CLI 
Requirements 
Installation 
Install the CLI using the npm package manager:
npm install --global @ui5/cli
# Verify installation
ui5 --helpUsage/Syntax 
 ui5 <command> [options]
The CLI automatically checks for updates using update-notifier. While this is skipped in CI environments, you might also opt-out manually by following the steps described here.
Common options 
These options you can use with each command.
| Option | Description | Details | 
|---|---|---|
| -h, --help | Show help | [boolean] | 
| -v, --version | Show version number | [boolean] | 
| -c, --config | Path to project configuration file in YAML format | [string] | 
| --dependency-definition | Path to a YAML file containing the project's dependency tree. This option will disable resolution of node package dependencies. | [string] | 
| --workspace-config | Path to workspace configuration file in YAML format | [string] | 
| -w, --workspace | Name of the workspace configuration to use | [string] [default: "default"] | 
| --loglevel, --log-level | Set the logging level | [string] [choices: "silent", "error", "warn", "info", "perf", "verbose", "silly"] [default: "info"] | 
| --verbose | Enable verbose logging. | [boolean] [default: false] | 
| --perf | Enable performance measurements and related logging. | [boolean] [default: false] | 
| --silent | Disable all log output. | [boolean] [default: false] | 
Examples 
Execute command using a static dependency tree instead of resolving node package dependencies
ui5 <command> --dependency-definition /path/to/projectDependencies.yamlExecute command using a project configuration from custom path
ui5 <command> --config /path/to/ui5.yamlExecute command using the 'dolphin' workspace of a ui5-workspace.yaml
ui5 <command> --workspace dolphinExecute command with the maximum log output
ui5 <command> --log-level sillyCommands 
ui5 add 
Description
Add SAPUI5/OpenUI5 framework libraries to the project configuration.
Usage
ui5 add [--development] [--optional] <framework-libraries..>
Options
| Option | Description | Details | 
|---|---|---|
| -D, --development, --dev | Add as development dependency | [boolean] [default: false] | 
| -O, --optional | Add as optional dependency | [boolean] [default: false] | 
Positionals
| Positional | Description | Details | 
|---|---|---|
| framework-libraries | Framework library names | [array] [required] [default: []] | 
Examples
Add the framework libraries sap.ui.core and sap.m as dependencies
ui5 add sap.ui.core sap.mAdd the framework library sap.ui.support as development dependency
ui5 add -D sap.ui.supportAdd the framework library themelib_sap_fiori_3 as optional dependency
ui5 add --optional themelib_sap_fiori_3ui5 build 
Description
Build project in current directory
Usage
ui5 build
Child Commands
| Command | Description | 
|---|---|
| ui5 build jsdoc | Build JSDoc resources | 
| ui5 build preload | (default) Build project and create preload bundles | 
| ui5 build self-contained | Build project and create self-contained bundle. Recommended to be used in conjunction with --include-all-dependencies | 
Options
| Option | Description | Details | 
|---|---|---|
| -a, --include-all-dependencies, --all | Include all dependencies in the build result. This is equivalent to '--include-dependency "*"' | [boolean] [default: false] | 
| --include-dependency | A list of dependencies to be included in the build result. You can use the asterisk '*' as an alias for including all dependencies in the build result. The listed dependencies cannot be overruled by dependencies defined in 'exclude-dependency'. The provided name must match with the dependency name shown in 'ui5 ls --flat' | [array] | 
| --include-dependency-regexp | A list of regular expressions defining dependencies to be included in the build result. This list is prioritized like 'include-dependency'. | [array] | 
| --include-dependency-tree | A list of dependencies to be included in the build result. Transitive dependencies are implicitly included and do not need to be part of this list. These dependencies overrule the selection of 'exclude-dependency-tree' but can be overruled by 'exclude-dependency'. | [array] | 
| --exclude-dependency | A list of dependencies to be excluded from the build result. The listed dependencies can be overruled by dependencies defined in 'include-dependency'. The provided name must match with the dependency name shown in 'ui5 ls --flat' | [array] | 
| --exclude-dependency-regexp | A list of regular expressions defining dependencies to be excluded from the build result. This list is prioritized like 'exclude-dependency'. | [array] | 
| --exclude-dependency-tree | A list of dependencies to be excluded from the build result. Transitive dependencies are implicitly included and do not need to be part of this list. | [array] | 
| --dest | Path of build destination | [string] [default: "./dist"] | 
| --clean-dest | If present, clean the destination directory before building | [boolean] [default: false] | 
| --create-build-manifest | Store build metadata in a '.ui5' directory in the build destination, allowing reuse of the build result in other builds | [boolean] [default: false] | 
| --include-task | A list of tasks to be added to the default execution set. This option takes precedence over any excludes. | [array] | 
| --exclude-task | A list of tasks to be excluded from the default task execution set | [array] | 
| --framework-version | Overrides the framework version defined by the project. Takes the same value as the version part of "ui5 use" | [string] | 
| --cache-mode | Cache mode to use when consuming SNAPSHOT versions of framework dependencies. The 'Default' behavior is to invalidate the cache after 9 hours. 'Force' uses the cache only and does not create any requests. 'Off' invalidates any existing cache and updates from the repository | [string] [choices: "Default", "Force", "Off"] [default: "Default"] | 
| --experimental-css-variables | Generate CSS variables (css-variables.css, css-variables.source.less) and skeleton (library-skeleton(-RTL).css) for all themes | [boolean] [default: false] | 
| --output-style | Processes build results into a specific directory structure. | |
| - Flat: Omits the project namespace and the "resources" directory. | ||
| - Namespace: Respects the project namespace and the "resources" directory, maintaining the original structure. | ||
| - Default: The default directory structure for every project type. For applications, this is identical to "Flat", and for libraries, it is "Namespace". Other types have a more distinct default output style. | [string] [choices: "Default", "Flat", "Namespace"] [default: "Default"] | 
Examples
Preload build for project without dependencies
ui5 buildSelf-contained build for project
ui5 build self-containedBuild project but only apply the minify- and generateComponentPreload tasks
ui5 build --exclude-task=* --include-task=minify generateComponentPreloadBuild project by applying all default tasks including the minify task and excluding the generateComponentPreload task
ui5 build --include-task=minify --exclude-task=generateComponentPreloadPreload build with experimental CSS variables artifacts
ui5 build --experimental-css-variablesui5 config 
Description
Get and set UI5 Tooling configuration options
Usage
ui5 config
Child Commands
| Command | Description | 
|---|---|
| ui5 config set <option> [value] | Set the value for a given configuration option. Clear an existing configuration by omitting the value | 
| ui5 config get <option> | Get the value for a given configuration option | 
| ui5 config list | Display the current configuration | 
Examples
Set a value for the ui5DataDir configuration
ui5 config set ui5DataDir /path/to/.ui5Unset the current value of the ui5DataDir configuration
ui5 config set ui5DataDirui5 init 
Description
Initialize the UI5 Tooling configuration for an application or library project.
Usage
ui5 init
ui5 remove 
Description
Remove SAPUI5/OpenUI5 framework libraries from the project configuration.
Usage
ui5 remove <framework-libraries..>
Positionals
| Positional | Description | Details | 
|---|---|---|
| framework-libraries | Framework library names | [array] [required] [default: []] | 
Examples
Remove the framework libraries sap.ui.core and sap.m as dependencies
ui5 remove sap.ui.core sap.mui5 serve 
Description
Start a web server for the current project
Usage
ui5 serve
Options
| Option | Description | Details | 
|---|---|---|
| -p, --port | Port to bind on (default for HTTP: 8080, HTTP/2: 8443) | [number] | 
| -o, --open | Open web server root directory in default browser. Optionally, supplied relative path will be appended to the root URL | [string] | 
| --h2 | Shortcut for enabling the HTTP/2 protocol for the web server | [boolean] [default: false] | 
| --simple-index | Use a simplified view for the server directory listing | [boolean] [default: false] | 
| --accept-remote-connections | Accept remote connections. By default the server only accepts connections from localhost | [boolean] [default: false] | 
| --key | Path to the private key | [string] [default: "/home/runner/.ui5/server/server.key"] | 
| --cert | Path to the certificate | [string] [default: "/home/runner/.ui5/server/server.crt"] | 
| --sap-csp-policies | Always send content security policies 'sap-target-level-1' and 'sap-target-level-3' in report-only mode | [boolean] [default: false] | 
| --serve-csp-reports | Collects and serves CSP reports upon request to '/.ui5/csp/csp-reports.json' | [boolean] [default: false] | 
| --framework-version | Overrides the framework version defined by the project. Takes the same value as the version part of "ui5 use" | [string] | 
| --cache-mode | Cache mode to use when consuming SNAPSHOT versions of framework dependencies. The 'Default' behavior is to invalidate the cache after 9 hours. 'Force' uses the cache only and does not create any requests. 'Off' invalidates any existing cache and updates from the repository | [string] [choices: "Default", "Force", "Off"] [default: "Default"] | 
Examples
Start a web server for the current project
ui5 serveEnable the HTTP/2 protocol for the web server (requires SSL certificate)
ui5 serve --h2Use the project configuration from a custom path
ui5 serve --config /path/to/ui5.yamlUse a static dependency definition file
ui5 serve --dependency-definition /path/to/projectDependencies.yamlListen to port 1337 and launch default browser with http://localhost:1337/test/QUnit.html
ui5 serve --port 1337 --open tests/QUnit.htmlui5 tree 
Description
Outputs the dependency tree of the current project to stdout. It takes all relevant parameters of ui5 build into account.
Usage
ui5 tree
Options
| Option | Description | Details | 
|---|---|---|
| --flat | Output a flat list of all dependencies instead of a tree hierarchy | [boolean] [default: false] | 
| --level | Limit the number of levels shown in the tree hierarchy | [number] | 
| --framework-version | Overrides the framework version defined by the project. Takes the same value as the version part of "ui5 use" | [string] | 
| --cache-mode | Cache mode to use when consuming SNAPSHOT versions of framework dependencies. The 'Default' behavior is to invalidate the cache after 9 hours. 'Force' uses the cache only and does not create any requests. 'Off' invalidates any existing cache and updates from the repository | [string] [choices: "Default", "Force", "Off"] [default: "Default"] | 
ui5 use 
Description
Initialize or update the project's framework configuration.
Usage
ui5 use <framework-info>
Positionals
| Positional | Description | Details | 
|---|---|---|
| framework-info | Framework name, version or both (name@version). Name can be "SAPUI5" or "OpenUI5" (case-insensitive). Version can be "latest" (default), a version or range according to the Semantic Versioning specification (https://semver.org/), or a tag available in the npm registry. For SAP-internal usage the version can also be "latest-snapshot", a version or range ending with -SNAPSHOT, or a simplified range such as "1-SNAPSHOT", "1.x-SNAPSHOT" or "1.108-SNAPSHOT".  | [string] [required] | 
Examples
Use SAPUI5 in the latest available version
ui5 use sapui5@latestUse OpenUI5 in the latest available 1.76 patch version
ui5 use openui5@1.76Use the latest available version of the configured framework
ui5 use latestUse OpenUI5 in the latest available version
ui5 use openui5ui5 versions 
Description
Shows the versions of all UI5 Tooling modules
Usage
ui5 versions
Local vs. Global Installation 
In general, we recommend a global installation of the UI5 CLI (npm install --global @ui5/cli).
However, it makes sense to add the UI5 CLI as a devDependency (npm install --save-dev @ui5/cli) to a project's package.json. This ensures that every developer working on the project uses the same version of the UI5 CLI and your continuous integration environments also uses this version.
In case you have both, a local installation in one of your projects as well as a global installation, the UI5 CLI will always try to invoke the local installation. This is in part because npm scripts defined in your package.json will also always invoke the local installation.
This behavior can be disabled by setting the environment variable UI5_CLI_NO_LOCAL.
Example
 You have a project located in the directory /my-application.
You have installed the UI5 CLI globally. In addition, the project's package.json defines a devDependency to @ui5/cli and a start script "ui5 serve". This means there are at least two installations of @ui5/cli on your system. Their versions might not match.
This table illustrates which of the two installations is used in different scenarios. Note how the UI5 CLI always tries to prefer the version installed in the project.
| Current Working Directory | Command | Global UI5 CLI | Local UI5 CLI | 
|---|---|---|---|
/ | ui5 --version | enabled | |
/my-application | ui5 --version | enabled | |
/my-application | ui5 serve | enabled | |
/my-application | UI5_CLI_NO_LOCAL=X ui5 serve | enabled | |
/my-application | npm start | enabled | |
/my-application | UI5_CLI_NO_LOCAL=X npm start | enabled |