CLI Command Development
SAP-samples/hana-developer-cli-tool-example
Create or update CLI commands, routes, utilities, and tests in this repo.
Run, invoke, and test the @sap-ux/create CLI — generate, add, convert, remove, update, change, list, get commands for SAP Fiori projects.
The automated check flagged lines worth reading first. See the safety section below.
$ npx skills add SAP/open-ux-tools --skill sap-fiori-create-cli -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install SAP/open-ux-tools sap-fiori-create-cli --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/SAP/open-ux-tools.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins-coding-agents/fiori/skills/sap-fiori-create-cli .claude/skills/sap-fiori-create-cli && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "sap-fiori-create-cli" agent skill from https://github.com/SAP/open-ux-tools/tree/main/plugins-coding-agents/fiori/skills/sap-fiori-create-cli into .claude/skills/sap-fiori-create-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sap-fiori-create-cli", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/SAP/open-ux-tools/tree/main/plugins-coding-agents/fiori/skills/sap-fiori-create-cliType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add SAP/open-ux-tools --skill sap-fiori-create-cli -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install SAP/open-ux-tools sap-fiori-create-cli --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/SAP/open-ux-tools.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins-coding-agents/fiori/skills/sap-fiori-create-cli .agents/skills/sap-fiori-create-cli && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "sap-fiori-create-cli" agent skill from https://github.com/SAP/open-ux-tools/tree/main/plugins-coding-agents/fiori/skills/sap-fiori-create-cli into .agents/skills/sap-fiori-create-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sap-fiori-create-cli", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add SAP/open-ux-tools --skill sap-fiori-create-cli -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install SAP/open-ux-tools sap-fiori-create-cli --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/SAP/open-ux-tools.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins-coding-agents/fiori/skills/sap-fiori-create-cli .cursor/skills/sap-fiori-create-cli && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "sap-fiori-create-cli" agent skill from https://github.com/SAP/open-ux-tools/tree/main/plugins-coding-agents/fiori/skills/sap-fiori-create-cli into .cursor/skills/sap-fiori-create-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sap-fiori-create-cli", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/SAP/open-ux-tools.git --path plugins-coding-agents/fiori/skills/sap-fiori-create-cli--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add SAP/open-ux-tools --skill sap-fiori-create-cli -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install SAP/open-ux-tools sap-fiori-create-cli --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/SAP/open-ux-tools.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins-coding-agents/fiori/skills/sap-fiori-create-cli .gemini/skills/sap-fiori-create-cli && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "sap-fiori-create-cli" agent skill from https://github.com/SAP/open-ux-tools/tree/main/plugins-coding-agents/fiori/skills/sap-fiori-create-cli into .gemini/skills/sap-fiori-create-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sap-fiori-create-cli", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install SAP/open-ux-tools sap-fiori-create-cliInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add SAP/open-ux-tools --skill sap-fiori-create-cli -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/SAP/open-ux-tools.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins-coding-agents/fiori/skills/sap-fiori-create-cli .github/skills/sap-fiori-create-cli && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "sap-fiori-create-cli" agent skill from https://github.com/SAP/open-ux-tools/tree/main/plugins-coding-agents/fiori/skills/sap-fiori-create-cli into .github/skills/sap-fiori-create-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sap-fiori-create-cli", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add SAP/open-ux-tools --skill sap-fiori-create-cli -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install SAP/open-ux-tools sap-fiori-create-cli --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/SAP/open-ux-tools.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins-coding-agents/fiori/skills/sap-fiori-create-cli .opencode/skills/sap-fiori-create-cli && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "sap-fiori-create-cli" agent skill from https://github.com/SAP/open-ux-tools/tree/main/plugins-coding-agents/fiori/skills/sap-fiori-create-cli into .opencode/skills/sap-fiori-create-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "sap-fiori-create-cli", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
sap-fiori-create-cliRun, invoke, and test the @sap-ux/create CLI — generate, add, convert, remove, update, change, list, get commands for SAP Fiori projects.
Sap Fiori Create CLI is an agent skill from SAP/open-ux-tools, published by the product's own GitHub organization. Run, invoke, and test the @sap-ux/create CLI — generate, add, convert, remove, update, change, list, get commands for SAP Fiori projects. Use when asked to run sap-ux, invoke create CLI, add config to a project, generate adaptation-project, or test any sap-ux/create subcommand.
Its SKILL.md is about 5.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/convert-preview-config.md` and `references/update-service-metadata.md`).
It works with SAP. The repository describes itself as: Enable community collaboration to jointly promote and facilitate best in class tooling capabilities. The licence is Apache-2.0.
Read from SKILL.md and the folder at commit 849bc84. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npxnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx and npm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Sap Fiori Create CLI loads about 5.4k tokens when it runs, and up to ~8.4k if it reads all its reference files. Until then it costs about 75 tokens; SKILL.md has 2,348 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found patterns that need a careful read before installing.
- `-f, --force` - Do not ask for confirmation when deleting files.Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from SAP/open-ux-tools at commit 849bc84, republished under its Apache-2.0 licence (© SAP). 2,348 words, ~5,392 tokens.
.claude/skills/sap-fiori-create-cli/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.npx -y @sap-ux/create@latest — never suggest a global install.--simulate / -s first for any write command when the user has not confirmed they want files changed. It implies --verbose on most subcommands.--password env:MY_VAR — never plain-text in the shell command.generate adaptation-project, add model, add component-usages) require either -y / --yes or all required flags pre-filled to run non-interactively.add annotations, change data-source, and change inbound are not supported for Cloud Foundry projects.add adp-cf-config is experimental and may change or be removed without notice.generateCommand group for generating SAP Fiori applications. A subcommand is required.
Usage: npx --yes @sap-ux/create@latest generate [subcommand] [options]
The available subcommands are: adaptation-project and opa5-tests
generate adaptation-projectGenerate a new SAPUI5 adaptation project with optional prompts and configuration.
Example:
npx --yes @sap-ux/create@latest generate adaptation-project
Options:
-n, --skip-install - Skip the npm install step.-s, --simulate - Simulate only. Do not write or install.-y, --yes - Use default values for all prompts.--id [id] - The ID of the adaptation project.--reference [reference] - The ID of the original application.--url [url] - The URL that points to the target system which contains the original application.--ignoreCertErrors - Ignore certificate errors when connecting to the target system.--ft - Enable SAP Fiori tools for the generated project.--ts - Enable TypeScript support for the generated project.--package [package] - The ABAP package to be used for deployments.--transport [transport] - The ABAP transport to be used for deployments.generate opa5-testsGenerate OPA5 integration tests for an existing SAP Fiori elements (OData V4) application.
Example:
npx --yes @sap-ux/create@latest generate opa5-tests
Options:
-t, --typescript - Force generation of TypeScript test files. Otherwise, TypeScript is auto-detected from the presence of a tsconfig.json.-s, --simulate - Simulate only. Do not write. Also, sets --verbose-v, --verbose - Show verbose information.addCommand group for adding features to existing SAP Fiori applications. A subcommand is required.
Usage: npx --yes @sap-ux/create@latest add [subcommand] [options]
The available subcommands are: mockserver-config, smartlinks-config, eslint-config, cds-plugin-ui5, inbound-navigation, cards-editor, model, annotations, html, component-usages, deploy-config, variants-config, adp-cf-config, system and flp-embedded-config
add mockserver-configAdd the necessary configuration for the @sap-ux/ui5-middleware-fe-mockserver mockserver module to enable local OData mocking.
Example:
npx --yes @sap-ux/create@latest add mockserver-config
Options:
-i, --interactive - Ask for config options or otherwise, use the default options.-n, --skip-install - Skip the npm install step.-s, --simulate - Simulate only. Do not write or install. Also, sets --verbose-v, --verbose - Show verbose information.add smartlinks-configAdd a smartLinks configuration to a project for cross-app navigation.
Example:
npx --yes @sap-ux/create@latest add smartlinks-config
Options:
-s, --simulate - Simulate only. Do not write to the config file. Also, sets --verbose-v, --verbose - Show verbose information.add eslint-configAdd an ESLint configuration to a project including the SAP Fiori tools lint plugin (@sap-ux/eslint-plugin-fiori-tools).
Example:
npx --yes @sap-ux/create@latest add eslint-config
Options:
-s, --simulate - Simulate only. Do not write to the config file. Also, sets --verbose-v, --verbose - Show verbose information.-c, --config <string> - The name of the SAP Fiori tools eslint plugin configuration to be used. (default: recommended)-n, --skip-install - Skip the npm install step.add cds-plugin-ui5Add the cds-plugin-ui5 module and all prerequisites to a CAP project for UI5 server integration.
Example:
npx --yes @sap-ux/create@latest add cds-plugin-ui5
Options:
-n, --skip-install - Skip the npm install step.-s, --simulate - Simulate only. Do not write or install. Also, sets --verbose-v, --verbose - Show verbose information.add inbound-navigationAdd SAP Fiori launchpad inbound navigation configuration to a project.
Example:
npx --yes @sap-ux/create@latest add inbound-navigation
Options:
-s, --simulate - Simulate only. Do not write to the config file. Also, sets --verbose-v, --verbose - Show verbose information.-c, --config <string> - Path to the project configuration file in YAML format. (default: ui5.yaml)add cards-editorAdd the necessary configuration to an existing YAML file and the script to the package.json file for cards generation. It uses the configuration from the YAML file passed by the CLI or default to ui5.yaml, as provided by the fiori-tools-preview or preview-middleware.
Example:
npx --yes @sap-ux/create@latest add cards-editor
Options:
-c, --config <string> - Path to the project configuration file in YAML format. (default: ui5.yaml)-s, --simulate - Simulate only. Do not write to the config file. Also, sets --verbose-v, --verbose - Show verbose information.add modelAdd a new OData service and SAPUI5 model to an existing adaptation project.
Example:
npx --yes @sap-ux/create@latest add model
Options:
-s, --simulate - Simulate only. Do not write or install.add annotationsAdds an annotation to the OData Source of the base application in an adaptation project.
This command is not supported for Cloud Foundry projects.
Example:
npx --yes @sap-ux/create@latest add annotations
Options:
-s, --simulate - Simulate only. Do not write or install.-c, --config <string> - Path to the project configuration file in YAML format. (default: ui5.yaml)add htmlAdd HTML files for local preview and testing to the project. It uses the configuration from the ui5.yaml file as default, as provided by the fiori-tools-preview or preview-middleware.
Example:
npx --yes @sap-ux/create@latest add html
Options:
-c, --config <string> - Path to the project configuration file in YAML format. (default: ui5.yaml)-s, --simulate - Simulate only. Do not write to the config file. Also, sets --verbose-v, --verbose - Show verbose information.add component-usagesAdd the component usages to an adaptation project.
Example:
npx --yes @sap-ux/create@latest add component-usages
Options:
-s, --simulate - Simulate only. Do not write or install.add deploy-configPrompt for ABAP deployment configuration details and adds and updates the project files accordingly.
Example:
npx --yes @sap-ux/create@latest add deploy-config
Options:
-t, --target <string> - Target for deployment: ABAP or Cloud Foundry (not yet implemented)-s, --simulate - Simulate only. Do not write. Also, sets --verbose-v, --verbose - Show verbose information.-b, --base-file <string> - The base config file of the project. (default: "ui5.yaml")-d, --deploy-file <string> - The name of the deploy config file to be written. (default: "ui5-deploy.yaml")add variants-configAdd the necessary configuration to an existing YAML file and the script to the package.json file for variants creation. It uses the configuration from the YAML file passed by the CLI or default to ui5.yaml, as provided by the fiori-tools-preview or preview-middleware.
Example:
npx --yes @sap-ux/create@latest add variants-config
Options:
-c, --config <string> - Path to the project configuration file in YAML format. (default: ui5.yaml)-s, --simulate - Simulate only. Do not write to the config file. Also, sets --verbose-v, --verbose - Show verbose information.add adp-cf-configConfigure an existing Cloud Foundry adaptation project for local preview by fetching reusable libraries, building the project, and configuring ui5.yaml file middlewares.
⚠️ Experimental: This command is experimental and may be subject to breaking changes or even removal in future versions. Use with caution and be prepared to update your configuration or migrate to alternative solutions, if needed.
Example:
npx --yes @sap-ux/create@latest add adp-cf-config
Options:
-v, --verbose - Show verbose information.-c, --config <string> - Path to the project configuration file in YAML format. (default: ui5.yaml)add systemAdd a new back-end system to the saved systems store (~/.fioritools). Credentials are stored securely in the OS keychain.
System types: AbapCloud, OnPrem, Generic
Auth types: basic, reentranceTicket, oauth2, oauth2ClientCredential
Connection types: abap_catalog, generic_host, odata_service
Example:
npx --yes @sap-ux/create@latest add system --name "My System" --url https://my-sap.example.com
npx --yes @sap-ux/create@latest add system --name "My System" --url https://my-sap.example.com --client 100 --username myuser
npx --yes @sap-ux/create@latest add system (interactive mode)
Options:
--name <string> - Display name for the system--url <string> - URL of the backend system--client <string> - SAP client number (optional)--type <string> - System type (AbapCloud | OnPrem | Generic) (default: OnPrem)--auth <string> - Authentication type (basic | reentranceTicket | oauth2 | oauth2ClientCredential) (default: basic)--connection-type <string> - Connection type (abap_catalog | generic_host | odata_service) (default: abap_catalog)--username <string> - Username for basic authentication--password <string> - To avoid plain-text credentials in the shell's history, pass an env reference: --password env:MY_VAR--skip-credentials-prompt - Skip credential prompts. No credentials will be saved, but may be added later if required--skip-connection-validation - Skip connection verification before savingadd flp-embedded-configAdd the necessary configuration for running a Fiori app in FLP Embedded Mode.
Adds a start-embedded script to package.json and creates an flp.yaml file
based on the existing ui5.yaml. Pre-existing files will be overridden.
Example:
npx --yes @sap-ux/create@latest add flp-embedded-config --bspApplication my-bsp-app
Options:
-b, --bspApplication <string> (required) - BSP application name of the deployed app-c, --config <string> - Path (relative to project root) to the ui5.yaml to use as base for flp.yaml (default: ui5.yaml)--flp <string> - FLP URL path used in the start-embedded script (default: sap/bc/ui5_ui5/ui2/ushell/shells/abap/Fiorilaunchpad.html)-s, --simulate - Simulate only. Do not write files. Also sets --verbose.-v, --verbose - Show verbose information.convertCommand group for converting existing SAP Fiori applications. A subcommand is required.
Usage: npx --yes @sap-ux/create@latest convert [subcommand] [options]
The available subcommands are: preview-config and eslint-config
convert preview-configFor the full workflow guide including prerequisites and manual steps, read
references/convert-preview-config.md.
Executed in the root folder of an app, it converts the respective app to the preview with virtual endpoints. It uses the configuration from the scripts in the package.json file to adjust the UI5 configuration YAML files accordingly. The obsolete JS and TS sources are deleted and the HTML files previously used for the preview are renamed to *_old.html.
Examples:
npx --yes @sap-ux/create@latest convert preview-config --simulate=false --tests=false
npx --yes @sap-ux/create@latest convert preview-config
Options:
-s, --simulate <boolean> - Simulate only. Do not write.-v, --verbose - Show verbose information.-t, --tests <boolean> - Also, convert test suite and test runners.convert eslint-configExecuted in the root folder of an app, it converts the ESLint configuration of the respective app to flat config format (used since ESLint version 9). It also introduces specific ESLint checks for SAP Fiori applications (using the @sap-ux/eslint-plugin-fiori-tools plugin), and deletes the deprecated eslint-plugin-fiori-custom plugin. To avoid dependency resolution conflicts, it deletes the package-lock.json file as well as the @sap-ux/eslint-plugin-fiori-tools module from the node_modules folder before running npm install.
Examples:
npx --yes @sap-ux/create@latest convert eslint-config
Options:
-s, --simulate - Simulate only. Do not write to the config file. Also, sets --verbose-v, --verbose - Show verbose information.-c, --config <string> - The name of the SAP Fiori tools ESLint plugin configuration to be used. (default: recommended)-n, --skip-install - Skip the npm install step. Also skips deleting the package-lock.json file and the @sap-ux/eslint-plugin-fiori-tools module from the node_modules folder.removeCommand group for removing features from existing SAP Fiori applications. A subcommand is required.
Usage: npx --yes @sap-ux/create@latest remove [subcommand] [options]
The available subcommands are: mockserver-config and system
remove mockserver-configRemoves the configuration for the @sap-ux/ui5-middleware-fe-mockserver mockserver module.
Example:
npx --yes @sap-ux/create@latest remove mockserver-config
Options:
-v, --verbose - Show verbose information.-f, --force - Do not ask for confirmation when deleting files.remove systemRemove a saved back-end system from the saved system store (~/.fioritools). Also deletes any stored credentials in the OS keychain.
Example:
npx --yes @sap-ux/create@latest remove system --url https://my-sap.example.com
npx --yes @sap-ux/create@latest remove system --url https://my-sap.example.com --client 100
npx --yes @sap-ux/create@latest remove system (interactive mode)
Options:
--url <string> - URL of the backend system to remove--client <string> - SAP client number (optional)--force - Skip confirmation promptupdateCommand group for updating saved resources. A subcommand is required.
Usage: npx --yes @sap-ux/create@latest update [subcommand] [options]
The available subcommands are: system and service-metadata
update systemUpdate an existing backend system in the saved systems store (~/.fioritools). The system is identified by its URL and optional SAP client.
Example:
npx --yes @sap-ux/create@latest update system --url https://my-sap.example.com --name "New Name"
npx --yes @sap-ux/create@latest update system --url https://my-sap.example.com --client 100 --username newuser
npx --yes @sap-ux/create@latest update system (interactive mode)
Options:
--url <string> - URL of the backend system to update--client <string> - SAP client number to identify the system (optional)--name <string> - New display name for the system--username <string> - New username--password <string> - To avoid plain-text credentials in the shell's history, pass an env reference: --password env:MY_VAR--clear-credentials - Remove stored credentials from the system--skip-connection-validation - Skip connection verification before saving--skip-check - (Deprecated: use --skip-connection-validation) Skip connection verification before savingupdate service-metadataFor the full workflow guide including prerequisites and manual steps, read
references/update-service-metadata.md.
Refresh the local OData service metadata.xml from the live backend for a Fiori application. Also fetches value-help (external) service metadata when available.
Only supported for Fiori applications connected to an EDMX backend. CAP applications are not supported, as their service metadata is generated locally from the CDS model rather than fetched from a backend.
Example:
npx --yes @sap-ux/create@latest update service-metadata /path/to/my-fiori-app
npx --yes @sap-ux/create@latest update service-metadata /path/to/my-fiori-app --simulate
Options:
--service <name> - Name of the data source in manifest.json (defaults to mainService or first service)--no-value-help - Skip fetching value-help (external) service metadata-s, --simulate - Simulate only. Do not write. Also sets --verbose.-v, --verbose - Show verbose information.changeCommand group for changing existing SAP Fiori applications. A subcommand is required.
Usage: npx --yes @sap-ux/create@latest change [subcommand] [options]
The available subcommands are: data-source and inbound
change data-sourceReplace the OData Source of the base application in an adaptation project.
This command is not supported for Cloud Foundry projects.
Example:
npx --yes @sap-ux/create@latest change data-source
Options:
-s, --simulate - Simulate only. Do not write or install.-c, --config <string> - Path to the project configuration file in YAML format. (default: ui5.yaml)change inboundReplace the inbound FLP configurations of the base application in an adaptation project.
This command is not supported for Cloud Foundry projects.
Example:
npx --yes @sap-ux/create@latest change inbound
Options:
-s, --simulate - Simulate only. Do not write or install.listCommand group for listing saved resources. A subcommand is required.
Usage: npx --yes @sap-ux/create@latest list [subcommand] [options]
The available subcommands are: system
list systemList all back-end systems in the saved system store (~/.fioritools). Sensitive data, such as passwords and tokens, is never included in the output.
Example:
npx --yes @sap-ux/create@latest list system
npx --yes @sap-ux/create@latest list system --json
Options:
--json - Output as JSON, which is useful for automation and MCP integrations.getCommand group for retrieving saved resources. A subcommand is required.
Usage: npx --yes @sap-ux/create@latest get [subcommand] [options]
The available subcommands are: system
get systemRetrieve details of a saved back-end system by URL. Sensitive data (passwords, tokens) is never included in the output.
Example:
npx --yes @sap-ux/create@latest get system --url https://my-sap.example.com
npx --yes @sap-ux/create@latest get system --url https://my-sap.example.com --client 100
npx --yes @sap-ux/create@latest get system --url https://my-sap.example.com --json
Options:
--url <string> (required) - URL of the backend system.--client <string> - SAP client number (optional).--json - Output as JSON, which is useful for automation and MCP integrations.© SAP, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (references) in plugins-coding-agents/fiori/skills/sap-fiori-create-cli of SAP/open-ux-tools.
Open the folder on GitHubat commit 849bc84
Sap Fiori Create CLI next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Sap Fiori Create CLI this skillSAP/open-ux-tools | 158 | — | ~5.4k | Automated safety check: Warn | Apache-2.0 | |
| CLI Command DevelopmentSAP-samples/hana-developer-cli-tool-example | 114 | — | ~501 | Automated safety check: Pass | Apache-2.0 | |
| Sap Abapsecondsky/sap-skills | 462 | — | ~3.9k | Automated safety check: Pass | GPL-3.0 | |
| Docs AutomationSAP-samples/hana-developer-cli-tool-example | 114 | — | ~344 | Automated safety check: Pass | Apache-2.0 | |
| Sap Dependency Securitysecondsky/sap-skills | 462 | — | ~5.9k | Automated safety check: Warn | GPL-3.0 | |
| Sap Abap Cdssecondsky/sap-skills | 462 | — | ~4.2k | Automated safety check: Pass | GPL-3.0 |
SAP-samples/hana-developer-cli-tool-example
Create or update CLI commands, routes, utilities, and tests in this repo.
secondsky/sap-skills
Comprehensive ABAP development skill for SAP systems. An agent skill from secondsky/sap-skills.
SAP-samples/hana-developer-cli-tool-example
Automate docs updates and command documentation generation. An agent skill from SAP-samples/hana-developer-cli-tool-example.
secondsky/sap-skills
SAP dependency security and MCP executable trust policy with secure upgrades, cooldowns, staged rollout, and supply-chain protection.
secondsky/sap-skills
Comprehensive SAP ABAP CDS (Core Data Services) reference for data modeling, view development, and semantic enrichment.
SAP-samples/hana-developer-cli-tool-example
Create or update MCP server tools, JSON-RPC handlers, and registrations.
SAP/open-ux-tools
Develop a new ESLint rule for @sap-ux/eslint-plugin-fiori-tools.
SAP/open-ux-tools
A skill your agent uses when writing, fixing, extending, or reviewing OPA5 integration tests for SAP Fiori Elements applications - whether the app uses OData V4 (sap.fe.test library) or OData V2…
SAP/open-ux-tools
Sync odata-vocabularies package — update all vocabulary resource files to their latest published versions, and optionally add a new vocabulary given its JSON URL.
SAP/open-ux-tools
Add visual filters (chart-based) to SAP Fiori Elements filter bar or value help using CAP or ABAP RAP.
SAP/open-ux-tools
Add analytical chart (chart + table hybrid) to SAP Fiori Elements List Report using aggregated data.
SAP/open-ux-tools
Guidelines for SAP Fiori app development for CAP and standalone projects.
Works with
Run, invoke, and test the @sap-ux/create CLI — generate, add, convert, remove, update, change, list, get commands for SAP Fiori projects. Sap Fiori Create CLI is an agent skill from SAP/open-ux-tools, published by the product's own GitHub organization. Run, invoke, and test the @sap-ux/create CLI — generate, add, convert, remove, update, change, list, get commands for SAP Fiori projects.
Sap Fiori Create CLI fits situations like: asked to run sap-ux; invoke create CLI; add config to a project; generate adaptation-project.
Run `npx skills add SAP/open-ux-tools --skill sap-fiori-create-cli -a claude-code`. Or copy the skill folder (plugins-coding-agents/fiori/skills/sap-fiori-create-cli in SAP/open-ux-tools) into .claude/skills/sap-fiori-create-cli in your project. Claude Code loads it when a task matches its description.
Run `npx skills add SAP/open-ux-tools --skill sap-fiori-create-cli -a codex`. Or copy the skill folder (plugins-coding-agents/fiori/skills/sap-fiori-create-cli in SAP/open-ux-tools) into .agents/skills/sap-fiori-create-cli in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add SAP/open-ux-tools --skill sap-fiori-create-cli -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/sap-fiori-create-cli, .gemini/skills/sap-fiori-create-cli, .github/skills/sap-fiori-create-cli and .opencode/skills/sap-fiori-create-cli in your project.
Going by SKILL.md and its folder, Sap Fiori Create CLI needs the command-line tools its instructions call (npx and npm). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use npx and npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md flagged 1 warning(s): tells the agent its actions are pre-authorized / not to stop for confirmation. Read the flagged lines before installing; the check is not a guarantee either way.
Sap Fiori Create CLI is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.4k tokens (SKILL.md is roughly 22k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Sap Fiori Create CLI: CLI Command Development (SAP-samples/hana-developer-cli-tool-example, 114 stars), Sap Abap (secondsky/sap-skills, 462 stars), Docs Automation (SAP-samples/hana-developer-cli-tool-example, 114 stars) and Sap Dependency Security (secondsky/sap-skills, 462 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
SAP (a GitHub organization, an official publisher) maintains it in SAP/open-ux-tools, which has 158 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 7, 2026.
Source: SAP/open-ux-tools on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.