The AEM Command Line Interface allows web developers to create, develop, and deploy digital experiences using the Adobe Experience Manager Sites feature Edge Delivery Services. Some of this functionality was known as Franklin or Project Helix before.
Installation
Install aem as a global command. You need Node 12.11 or newer.
``bash npm install -g @adobe/aem-cli `
If this fails with File exists: /opt/homebrew/bin/hlx, please see here.
Quick Start
` $ aem --help Usage: aem [options]
Commands: aem up Run a AEM development server aem import Run the AEM import server
Options: --version Show version number [boolean] --log-file, --logFile Log file (use "-" for stdout) [array] [default: "-"] --log-level, --logLevel Log level [string] [choices: "silly", "debug", "verbose", "info", "warn", "error"] [default: "info"] --tls-key, --tlsKey Path to .key file (for enabling TLS) [string] --tls-cert, --tlsCert Path to .pem file (for enabling TLS) [string] --help Show help [boolean]
use --help to get command specific details.
for more information, find our manual at https://github.com/adobe/helix-cli `
Starting development
` $ cd $ aem up `
$3
The --open argument takes a path, eg --open=/products/, will cause the browser to be openend at the specific location. Disable with --no-open'.
$3
The --forward-browser-logs flag enables forwarding of browser console messages (log, error, warn, info) to the terminal. This is particularly useful for debugging client-side issues without having to open the browser's developer tools.
` $ aem up --forward-browser-logs `
When enabled, browser console messages will appear in your terminal with the following format: ` [Browser:error] 2025-07-27T10:30:45.123Z http://localhost:3000/script.js:42 Error message here `
This feature is especially helpful when: - Debugging JavaScript errors in a headless environment - Monitoring client-side behavior during development - Working with AI coding assistants that need visibility into both server and client logs
$3
The --html-folder option enables serving HTML files without extensions, useful for previewing content changes when you don't have access to the authoring system.
` $ aem up --html-folder content `
This enables two features:
1. Extension-less URLs: Access /content/page to serve content/page.html 2. Plain HTML with metadata: Create content/page.plain.html files that are automatically wrapped with proper HTML structure and metadata processing
#### Plain HTML files (.plain.html)
Plain HTML files contain only the main content and an optional metadata block. The CLI automatically: - Wraps content in