Enonic CLI & Local Dev Environment Helper
Procedures
Step 1: Detect Workspace Context
- Execute
node scripts/find-enonic-targets.mjsfrom the skill root to scan the current workspace for Enonic project markers (.enonic,build.gradlewithcom.enonic.xpplugin,gradle.propertieswithxpVersion). - If markers are found, note the project name, linked sandbox, and XP version from the output. Use these values as defaults for subsequent commands.
- If no markers are found, treat the request as a greenfield setup and proceed to sandbox creation or project scaffolding as appropriate.
Step 2: Ensure CLI is Available
- Verify the Enonic CLI is installed by running
enonic --version. - If the command fails, read
references/cli-reference.mdfor installation instructions and guide through the appropriate method for the detected OS:- npm (any OS):
npm install -g @enonic/cli - macOS:
brew tap enonic/cli && brew install --no-quarantine enonic - Linux:
wget -qO- https://repo.enonic.com/public/com/enonic/cli/installer/cli-linux/1.0.0/cli-linux-1.0.0.sh | sh - Windows:
scoop bucket add enonic https://github.com/enonic/cli-scoop.git && scoop install enonic
- npm (any OS):
- After installation, verify with
enonic --version.
Step 3: Sandbox Management
- Read
references/cli-reference.mdfor the full sandbox command catalog. - Match the request to the correct operation:
- Create:
enonic sandbox create <name> [-v <version>] [-t <template>] [--skip-template] [-i <image>] [-f] - List:
enonic sandbox ls - Start:
enonic sandbox start <name> [--detach] [--prod] [--debug] - Stop:
enonic sandbox stop - Upgrade:
enonic sandbox upgrade <name> -v <version> - Delete:
enonic sandbox delete <name> -f - Copy:
enonic sandbox copy <source> <target>
- Create:
- When creating a sandbox, prompt for the XP version if not specified. Use
-fflag for non-interactive execution when the version and name are known. Note: with-f, the sandbox auto-starts after creation unless--skip-startis also provided. - If the request mentions templates, list available templates or use
-t <template>flag. Use--skip-templateto create a bare sandbox with no pre-installed apps. - If the request mentions Docker, use
-i <image>(e.g.,enonic/xp:latest-sdk) to back the sandbox with a Docker image instead of a downloaded XP distribution. Requiresdockeron$PATH.
Step 4: Project Scaffolding
- For new project creation, use the simplified command:
enonic create <name> [-r <starter>] [-s <sandbox>] [-f] - Common starters include
starter-vanilla,starter-headless, andstarter-nextjs. Readreferences/cli-reference.mdfor the full list of options. - To link an existing project to a different sandbox:
enonic project sandbox <name> - Ensure the project folder contains
build.gradleand.enonicconfiguration after creation.
Step 5: Development Workflow
- Determine the appropriate development command:
- Dev mode (hot-reload):
enonic dev— starts the sandbox in detached mode and runs the app with file watching. Execute from the project root. - Build only:
enonic project build - Deploy to sandbox:
enonic project deploy [sandbox-name] [-c]— use-cfor continuous deployment. - Install to running XP:
enonic project install - Run tests:
enonic project test - Clean build artifacts:
enonic project clean - Arbitrary Gradle task:
enonic project gradle <tasks>
- Dev mode (hot-reload):
- If the sandbox is not running, start it first:
enonic sandbox start <name> -d - To terminate dev mode, use
Ctrl-C. The CLI will attempt to stop the detached sandbox automatically.
Step 6: App Management on Running XP
- For managing applications on a running XP instance, read
references/cli-reference.mdfor the XP app commands. - Match the operation:
- Install from URL:
enonic app install --url <jar-url> - Install from file:
enonic app install --file <path-to-jar> - Start app:
enonic app start <app-key> - Stop app:
enonic app stop <app-key>
- Install from URL:
- Authentication is required for XP commands. Use
--cred-file <path>(XP 7.15+),--client-key <path>+--client-cert <path>for mTLS (XP 7.15+), or setENONIC_CLI_REMOTE_USERandENONIC_CLI_REMOTE_PASSenvironment variables.
Step 7: CI/CD Pipeline Generation
- Read
assets/enonic-ci.template.ymlfor the GitHub Actions workflow template. - Customize the template based on the project:
- Set the correct XP version in the sandbox creation step.
- Set the app name and Gradle build parameters.
- Configure deployment targets (sandbox for staging, cloud for production).
- Place the generated workflow file at
.github/workflows/enonic-ci.ymlin the project repository.
Step 8: Troubleshooting
- If a sandbox fails to start or a deployment fails, read
references/troubleshooting.mdfor common issues and resolutions. - Key diagnostic commands:
enonic sandbox ls— check sandbox status and XP version.enonic system info— check running XP instance details.- Check port
8080(HTTP) and5005(debug) availability.
- Read
references/compatibility.mdfor CLI-to-XP version compatibility if version mismatch errors occur.
Error Handling
- If
scripts/find-enonic-targets.mjsreturns no results, proceed with greenfield setup instructions rather than failing. - If
enonic --versionfails, guide through CLI installation per Step 2 before proceeding. - If sandbox creation fails with a version error, read
references/compatibility.mdand suggest a compatible XP version. - If port conflicts occur during sandbox start, read
references/troubleshooting.mdfor resolution steps. - If
enonic devfails, verify the project has a Gradledevtask (present in all official starters) and that the linked sandbox exists and is not already running in another terminal.