Command line
Besides the graphical interface, PML 2 also offers a command-line mode for unpacking and packing .pmla package files without opening a window — useful for scripting and automation.
.pmla is the multi-type unified package format of PML 2; components such as themes are distributed in this format. See "What is a PMLA file?" in the themes chapter.Entering command-line mode
Pass pmla as the first launch argument to enter command-line mode:
MEFrpLauncherX pmla <subcommand> [arguments...]
The command-line branch runs before the graphical interface is initialised; once the operation finishes the process exits and no window is ever shown.
pmla command only activates the existing window and exits — the unpack/pack operation is not performed. Quit the running PML 2 before using command-line mode.Subcommands
| Subcommand | Purpose |
|---|---|
unpack | Unpack a .pmla package into a directory |
pack | Pack a directory into a .pmla package |
Any other argument combination is treated as invalid.
Argument syntax
Every argument is passed as name=value, with no spaces around =. The following prefix styles are equivalent — the program strips -- and / prefixes automatically:
MEFrpLauncherX pmla unpack pmlaFile=MyTheme.pmla outPath=./theme-src
MEFrpLauncherX pmla unpack --pmlaFile=MyTheme.pmla --outPath=./theme-src
unpack
MEFrpLauncherX pmla unpack pmlaFile=<package> outPath=<output directory>
| Argument | Aliases | Required | Description |
|---|---|---|---|
pmlaFile | pmla, inPmla | Yes | Path of the .pmla file to unpack |
outPath | output | Yes | Destination directory for the unpacked content |
Example:
MEFrpLauncherX pmla unpack pmla=MyTheme.pmla output=D:\themes\MyTheme
The console prints a banner and live progress:
==============================
PMLA Unpack Mode
Unpacking MyTheme.pmla(New Format: False) to D:\themes\MyTheme
==============================
[35%] unpacking...
Unpack completed.
New Format indicates whether the file uses the newer PMLAX package format. It is informational only: unpacking handles both the old and new formats automatically, no extra argument is needed.
pack
MEFrpLauncherX pmla pack inPath=<source directory> outPmla=<output file> [useNewFormat=true|false]
| Argument | Aliases | Required | Description |
|---|---|---|---|
inPath | input | Yes | The directory to pack |
outPmla | pmla, pmlaFile | Yes | Path of the .pmla file to write |
useNewFormat | newFormat | No | Whether to use the newer PMLAX packing format. Defaults to true; pass false explicitly to use the legacy format |
Example:
MEFrpLauncherX pmla pack inPath=./theme-src outPmla=MyTheme.pmla
MEFrpLauncherX pmla pack input=./theme-src pmla=MyTheme.pmla useNewFormat=false
Exit codes
| Exit code | Meaning |
|---|---|
0 | Unpack/pack completed successfully |
1 | Invalid arguments (unrecognised subcommand or argument combination) |
2 | A required argument is missing, or a value is malformed |
Additional notes:
- Unrecognised arguments print
[E] Invalid Arguments.to standard error and exit with code1. - When a required argument is missing the process exits silently (returning only exit code
2), so scripts can branch on the exit code. - An argument name without a value after
=(for example justpmlaFile=) printsInvalid pmlaFile argument.and exits with code2.