| id | PatternFly CLI |
|---|---|
| title | PatternFly CLI |
| section | developer-guides |
The PatternFly CLI is a command-line tool for scaffolding projects, performing code modifications, and running project-related tasks. It aims to streamline development workflows and improve productivity. The published package is @patternfly/patternfly-cli on npm.
- Project scaffolding: Quickly set up new PatternFly based projects for development and prototyping via predefined templates.
- Code modifications: Automate repetitive code changes to help accelerate PatternFly version upgrades.
- Task runner: Execute project-related tasks efficiently, such as source code management and task running.
There are a few key prerequisites to meet before using PatternFly CLI. For macOS, WSL, and Linux, we recommended using install script to address the following prerequisites (you might still need administrator access for system packages). For a Windows-based system, you will need to install the following items manually:
- Node.js (Supported versions: 20–24) and npm
- Corepack (Included with Node.js and enabled via
corepack enableafter installing npm) - GitHub CLI (
gh)
You can pipe the repository install script into bash. This installs Node.js with nvm when node is not available, enables Corepack, installs GitHub CLI when it is missing, and installs the CLI globally from npm:
curl -fsSL https://raw.githubusercontent.com/patternfly/patternfly-cli/main/scripts/install.sh | bashThe script might prompt you to include sudo when your system package manager installs GitHub CLI.
After installing the prerequisites on your machine, install the published package globally:
npm install -g @patternfly/patternfly-cliAfter installation, you can verify the latest version of the CLI has been installed by running the following terminal command:
Once the PatternFly CLI is installed, you can run the following commands via patternfly-cli [command]:
| Command | Usage |
|---|---|
create |
Create a new project from the available templates. |
list |
List all available templates (built-in and optional custom). |
update |
Update your project to a newer version. |
cli-upgrade |
Upgrade the globally installed CLI to the latest npm release. It runs npm install -g @patternfly/patternfly-cli@latest—use your package manager’s equivalent if you did not install with npm. |
init |
Initialize a git repository and optionally create a GitHub repository. |
save |
Commit and push changes to the current branch. |
load |
Pull the latest updates from GitHub. |
deploy |
Build and deploy your app to GitHub Pages. |
For the most up-to-date flags and behavior guidance, refer to PatternFly CLI README on GitHub.
In addition to the built-in templates, you can add your own templates by passing a JSON file with --template-file (or -t). Custom templates are merged with the built-in list—if a custom template has the same name as a built-in template, the custom definition is used.
Create a project based on custom templates:
patternfly-cli create my-app --template-file ./my-templates.jsonList templates included in custom file:
patternfly-cli list --template-file ./my-templates.jsonJSON format (Array of template objects, shown in the same shape as the built-in templates):
[
{
"name": "my-template",
"description": "My custom project template",
"repo": "https://github.com/org/repo.git",
"options": ["--single-branch", "--branch", "main"],
"packageManager": "npm"
}
]name(required): Template identifierdescription(required): Short description shown in prompts andlistrepo(required): Git clone URLoptions(optional): Array of extra arguments forgit clone(such as["--single-branch", "--branch", "main"])packageManager(optional):npm,yarn, orpnpm; defaults tonpmif omitted