CLI Command Suite #1013
Llewellynvdm
started this conversation in
Documentation
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
The Joomla Component Builder CLI introduces a complete, production-grade command-line interface that allows you to manage, synchronize, compile, install, and distribute JCB assets without using the GUI.
This CLI layer is not a wrapper or shortcut — it is a first-class interface to JCB’s internal systems and repositories.
Design Goals of the JCB CLI
The CLI was designed with the following goals:
How to Access the CLI
From your Joomla root directory:
This command lists all available Joomla CLI commands, including the Component Builder command group.
To see help for any command:
CLI Command Naming Structure
All JCB CLI commands follow this structure:
Actions
compilegetinitpullpushresetAreas
Areas represent JCB-managed entity types, such as:
…and others
The behavior of an action is consistent across all areas — only the target entity changes.
The Action Model (How the CLI Thinks)
The CLI is intentionally action-driven, not state-driven.
Each action has a very specific meaning.
get– Synchronize Existing ItemsPurpose
Synchronize items that already exist locally with their remote repositories.
Command example
What
getdoesInputs
Key behavior
When to use
getinit– Initialize From a Remote RepositoryPurpose
Initialize and synchronize items that do not yet exist locally.
Command example
What
initdoesAdditional inputs
When to use
initpull– Force Remote State LocallyPurpose
Forcefully synchronize local state from remote, overwriting local changes.
Key characteristics
When to use
pullpush– Publish to a Remote RepositoryPurpose
Push local items and their dependencies to a remote package repository.
Command example
What
pushdoesImportant notes
reset– Reset Local Tracking StatePurpose
Reset JCB’s internal tracking for specific items.
What reset means
Safety guarantees
Compiler Command (Most Powerful Command)
Command
This command exposes the full JCB compiler through CLI.
What the Compiler CLI Can Do
Component Selection
At least one component input is required:
All formats support:
@/path/to/fileshorthandOptions Bundle System
The compiler supports an options bundle:
This allows:
This makes the compiler ideal for:
Auto Install (
-i)When enabled:
Powers Integration
Controls:
This directly integrates with the Power override system documented separately.
Target Joomla Version
Allowed values:
This controls:
Environment Variable Support
Every major option supports environment variable fallbacks, including:
This allows:
Verbosity and Output Control
Output uses Symfony Console styles and respects ANSI settings.
How All Areas Fit Together
Every area (fields, layouts, powers, snippets, etc.) uses:
Once you understand one area, you understand them all.
Mental Model Summary
Think of the JCB CLI as:
All driven by explicit commands, never by hidden state.
Beta Status & Testing
The CLI is currently Beta.
Known focus areas:
This is why testing and feedback are essential.
Final Notes
This CLI is designed to scale:
If you prefer GUIs, you can keep using them.
If you prefer terminals, JCB is now fully at home there too.
Beta Was this translation helpful? Give feedback.
All reactions