Repository navigation
CLI Reference
Abd El-Rahman Nabil edited this page Sep 25, 2026
·
2 revisions
Every mullion command and subcommand, with its usage, flags and examples. This page is generated from the help output of the Mullion 2.0.0 binary. Run mullion <command> --help in a terminal for the same text.
alias · app · autostart · backups · composer · db · dev · dns · doctor · heidisql · isolate · link · links · mariadb · mongo · mongo-express · mysql · node · pgadmin · php · phpmyadmin · pkg · port · ports · postgres · rename · restart · run · secure · serve · setup · ssl · start · status · stop · tld · tray · ui · uninstall · unisolate · unlink · unsecure · use · worker
Sets up a complete local dev stack in one go: creates ~/.mullion, downloads
Caddy, puts mullion on your PATH, installs the latest PHP and makes it the
system default, installs Composer, installs and starts the latest MySQL,
and serves phpMyAdmin at https://phpmyadmin.<tld>.
Every step is skipped when it's already done, so re-running setup is safe.
Usage:
mullion setup [flags]
Start Caddy and the PHP FastCGI workers for all sites
Usage:
mullion start [flags]
Stop Caddy and all PHP FastCGI workers
Usage:
mullion stop [flags]
Restart everything
Usage:
mullion restart [flags]
Show what's running
Usage:
mullion status [flags]
Opens Mullion's control panel in an app-mode browser window: service
status, PHP versions, Node, MySQL, and the linked sites — all clickable.
The panel runs in the background: closing this terminal does not close it.
Usage:
mullion ui [flags]
Install Mullion.app into Applications (macOS)
Usage:
mullion app [flags]
Diagnose the whole stack — paste the output when reporting a problem
Usage:
mullion doctor [flags]
Start Mullion automatically when you sign in
Usage:
mullion autostart [on|off] [flags]
Starts the services, hides this console, and puts a Mullion icon next
to the clock: double-click opens the dashboard, right-click gives Start,
Stop, phpMyAdmin, and Quit. This is what runs at Windows sign-in when
autostart is enabled.
Usage:
mullion tray [flags]
Stops every service and removes everything Mullion put on this machine:
~/.mullion (PHP versions, MySQL/PostgreSQL/MongoDB and their databases,
phpMyAdmin, Composer), the hosts-file entries, the PATH entries, the
trusted root certificate, and the autostart registration.
Your project folders are NOT touched — Mullion only ever links to them.
Before deleting, it offers to export every installed database server's
data (MySQL, PostgreSQL, MongoDB) to a timestamped backup folder next
to ~/.mullion.
Usage:
mullion uninstall [flags]
Flags:
--backup export databases before removing
--no-backup skip the database backup
--yes do not ask for confirmation
Registers the current directory as a site. The name defaults to the
directory name.
The project type is detected automatically:
- PHP projects are served through PHP (Laravel public/ auto-detected)
- Frontend projects (a package.json with a dev script) get a managed
dev server: Mullion runs `npm run dev` for you and proxies the
.test domain to it — opening the link is all you do
With --build, the project's LAST PRODUCTION BUILD (dist/, build/, out/)
is served as a separate static site named <name>-build — handy to
compare the deployed state against the current dev version.
Usage:
mullion link [name] [flags]
Flags:
--build serve the project's production build as a static site (<name>-build)
--dir string build output folder for --build (auto-detected: dist, build, out)
--php force serving as a PHP site
--secure serve over https immediately
List linked sites
Usage:
mullion links [flags]
Aliases:
links, sites
Stop serving a site (defaults to the current directory's link)
Usage:
mullion unlink [name] [flags]
Renames a linked site (and therefore its domain). With one argument
the site linked to the current directory is renamed; with two, the
first names the site to rename.
Usage:
mullion rename [old] <new> [flags]
Serve a site over HTTPS with a locally-trusted certificate
Usage:
mullion secure [name] [flags]
Go back to plain HTTP for a site
Usage:
mullion unsecure [name] [flags]
Give a site extra subdomains, served by the same project:
mullion alias shop add api # api.shop.test
mullion alias shop add v1.api # v1.api.shop.test
mullion alias shop add '*' # every subdomain: tenant1.shop.test, ...
mullion alias shop remove api
mullion alias shop list
PHP apps see the real Host header (Laravel subdomain routing works);
frontend dev servers get it in X-Forwarded-Host.
Named subdomains resolve through the hosts file. The '*' wildcard needs
Mullion's local DNS — enable it once with `mullion dns on`.
Usage:
mullion alias <site> [add|remove|list] [subdomain] [flags]
The hosts file can't express wildcards, so tenant1.shop.test only resolves
through Mullion's own tiny DNS server (run by the background agent).
mullion dns on install the OS hookup (asks for administrator rights once)
mullion dns off remove it
mullion dns status show what's in place (default)
macOS: /etc/resolver/<tld> sends *.<tld> lookups to 127.0.0.1 port 53535.
Windows: an NRPT rule sends .<tld> lookups to 127.0.0.1 (port 53, which must
be free — Internet Connection Sharing or a local DNS proxy can hold it).
Usage:
mullion dns [on|off|status] [flags]
With no argument, prints the current TLD. With an argument, changes it —
e.g. `mullion tld local` makes every site resolve as <name>.local.
Avoid real public TLDs like .dev or .app: browsers force them to HTTPS
(HSTS preload), which breaks plain-HTTP local sites.
Usage:
mullion tld [new-tld] [flags]
Switches one frontend domain between two modes:
dev the managed dev server (live code, HMR)
build the last production build (dist/, build/, out/) served statically
With "build" the dev server is stopped too — the domain costs nothing.
Great for checking what's actually deployed, or freeing resources.
Usage:
mullion serve <dev|build> [name] [flags]
Each linked frontend site gets a managed dev server (npm run dev)
behind its .test domain. It starts with `mullion start` and stays up in
the background. Stop one when you don't need it — opening its link later
wakes it automatically (a "starting…" page shows while it boots).
Usage:
mullion dev [command]
Available Commands:
restart Restart a site's dev server (picks up config/env changes)
start Start (and unpause) a site's dev server
stop Stop a site's dev server (frees RAM/CPU) — opening its link wakes it again
Restart a site's dev server (picks up config/env changes)
Usage:
mullion dev restart [name] [flags]
Start (and unpause) a site's dev server
Usage:
mullion dev start [name] [flags]
Stop a site's dev server (frees RAM/CPU) — opening its link wakes it again
Usage:
mullion dev stop [name] [flags]
Runs one command in a linked site's folder with the site's own PHP
version, Node version and composer first on PATH — exactly what serves
the site, even when it is pinned to a different version than the global
one. Without a site name, the site linked to the current folder is used.
Usage:
mullion run [site] -- <command...> [flags]
Examples:
mullion run shop -- php artisan migrate
mullion run shop -- npm run build
mullion run -- composer install
Workers are long-running commands Mullion keeps up for a site: a
Laravel queue worker (php artisan queue:work), the scheduler (php artisan
schedule:work — no cron needed), Horizon, a Node job runner...
Each runs in the site's folder with the site's PHP and Node on PATH, is
logged to ~/.mullion/logs/worker-<site>-<id>.log, and — when added with
--autostart — is started with the stack and restarted if it crashes.
Usage:
mullion worker [command]
Available Commands:
add Add a worker to a site
list List workers and whether they are running (all sites by default)
logs Show the end of a worker's log
remove Stop and delete a worker
restart Restart a worker (picks up code and .env changes)
start Start a worker (and unpause it)
stop Stop a worker (it stays stopped until started again)
Add a worker to a site
Usage:
mullion worker add <site> --command <cmd> [flags]
Examples:
mullion worker add shop --name Queue --kind queue --command "php artisan queue:work --tries=3" --autostart
mullion worker add shop --name Scheduler --kind scheduler --command "php artisan schedule:work" --autostart
Flags:
--autostart start it now, with the stack, and restart it if it crashes
--command string command to run in the site's folder (required)
--kind string queue, scheduler or custom (default "custom")
--name string label shown in lists and the panel (defaults to the command)
List workers and whether they are running (all sites by default)
Usage:
mullion worker list [site] [flags]
Show the end of a worker's log
Usage:
mullion worker logs <site> <id> [flags]
Flags:
-n, --lines int number of lines to show (default 50)
Stop and delete a worker
Usage:
mullion worker remove <site> <id> [flags]
Restart a worker (picks up code and .env changes)
Usage:
mullion worker restart <site> <id> [flags]
Start a worker (and unpause it)
Usage:
mullion worker start <site> <id> [flags]
Stop a worker (it stays stopped until started again)
Usage:
mullion worker stop <site> <id> [flags]
Search, add, and remove Composer/npm packages for a linked site
Usage:
mullion pkg [command]
Available Commands:
add Install a package into a linked site
list List a linked site's Composer and npm packages
remove Remove a package from a linked site
search Search Packagist or the npm registry for packages
Install a package into a linked site
Usage:
mullion pkg add <site> <composer|npm> <name>[@version] [flags]
Flags:
--dev install as a dev/require-dev dependency
List a linked site's Composer and npm packages
Usage:
mullion pkg list <site> [flags]
Remove a package from a linked site
Usage:
mullion pkg remove <site> <composer|npm> <name> [flags]
Search Packagist or the npm registry for packages
Usage:
mullion pkg search <composer|npm> <query...> [flags]
Manage installed PHP versions
Usage:
mullion php [command]
Available Commands:
available List PHP versions available to install (current branches)
ext Manage the extensions of an installed PHP version
ini Show the version's curated php.ini settings; defaults to the global version
install Download and install a PHP version (e.g. 8.3 or 8.3.26)
list List installed PHP versions
uninstall Remove an installed PHP version
List PHP versions available to install (current branches)
Usage:
mullion php available [flags]
Download and install a PHP version (e.g. 8.3 or 8.3.26)
Usage:
mullion php install <version> [flags]
List installed PHP versions
Usage:
mullion php list [flags]
Remove an installed PHP version
Usage:
mullion php uninstall <version> [flags]
Manage the extensions of an installed PHP version
Usage:
mullion php ext [command]
Available Commands:
disable Disable an extension
enable Enable an extension (e.g. intl, soap, ldap)
get Download a PECL extension the build doesn't ship (redis, xdebug, imagick, ...) and enable it
list List the version's extensions ([x] = enabled); defaults to the global version
List the version's extensions ([x] = enabled); defaults to the global version
Usage:
mullion php ext list [version] [flags]
Enable an extension (e.g. intl, soap, ldap)
Usage:
mullion php ext enable <name> [version] [flags]
Disable an extension
Usage:
mullion php ext disable <name> [version] [flags]
Download a PECL extension the build doesn't ship (redis, xdebug, imagick, ...) and enable it
Usage:
mullion php ext get <name> [version] [flags]
Aliases:
get, add
Show the version's curated php.ini settings; defaults to the global version
Usage:
mullion php ini [version] [flags]
mullion php ini [command]
Available Commands:
set Set a curated php.ini setting (e.g. memory_limit, display_errors) and restart PHP
Set a curated php.ini setting (e.g. memory_limit, display_errors) and restart PHP
Usage:
mullion php ini set <key> <value> [version] [flags]
Makes one site run on a different PHP version than the system default,
e.g. an old client project on PHP 7.4 while everything else uses 8.3.
Usage:
mullion isolate <version> [flags]
Flags:
--site string site name (defaults to the current directory's link)
Make the current project's site follow the global PHP version again
Usage:
mullion unisolate [flags]
Flags:
--site string site name (defaults to the current directory's link)
Switch the system-wide PHP version (php on PATH)
Usage:
mullion use <version> [flags]
Manage the Composer installation
Usage:
mullion composer [command]
Available Commands:
install Install Composer (latest by default, or a specific version like 2.2.25)
Install Composer (latest by default, or a specific version like 2.2.25)
Usage:
mullion composer install [version] [flags]
Manage Node.js versions (official nodejs.org builds)
Usage:
mullion node [command]
Available Commands:
available List installable Node versions (newest of each major)
install Download and install a Node version (lts by default; latest, 22, 22.12.0)
isolate Pin the current project's site to a specific Node version
list List installed Node versions (* = global default)
npm Change the npm version bundled with a Node install (latest, 10, 10.9.2)
uninstall Remove an installed Node version
unisolate Make the current project's site follow .nvmrc / the default Node again
use Switch the default Node version (node/npm on PATH)
which Explain which Node version this directory gets, and why
List installable Node versions (newest of each major)
Usage:
mullion node available [flags]
Download and install a Node version (lts by default; latest, 22, 22.12.0)
Usage:
mullion node install [version] [flags]
Pin the current project's site to a specific Node version
Usage:
mullion node isolate <version> [flags]
List installed Node versions (* = global default)
Usage:
mullion node list [flags]
Change the npm version bundled with a Node install (latest, 10, 10.9.2)
Usage:
mullion node npm <npm-version> [node-version] [flags]
Remove an installed Node version
Usage:
mullion node uninstall <version> [flags]
Make the current project's site follow .nvmrc / the default Node again
Usage:
mullion node unisolate [flags]
Switch the default Node version (node/npm on PATH)
Usage:
mullion node use <version> [flags]
Explain which Node version this directory gets, and why
Usage:
mullion node which [flags]
Manage the local MySQL server
Usage:
mullion mysql [command]
Available Commands:
install Download MySQL (newest 8.4 LTS by default), initialize it, and start it
backup Export all your MySQL databases to a timestamped backup folder
password Change the MySQL root password ('' to remove it); phpMyAdmin follows automatically
restore Import a backup: a single .sql file, or a backup folder
start Start the MySQL server
stop Stop the MySQL server
uninstall Stop MySQL, back it up, and remove it (binaries, data, and phpMyAdmin)
Installs and starts MySQL. With no argument you get the newest release
of the 8.4 LTS branch. Pass "latest" for the newest release overall,
a branch like "8.0" for the newest release of that branch, or a full
version like "8.4.11".
When you switch versions, your databases are migrated automatically:
they are dumped from the old server, the new one starts with a fresh
data directory, and the dump is restored into it. The old data
directory and the dump file are kept as backups.
Usage:
mullion mysql install [version] [flags]
Export all your MySQL databases to a timestamped backup folder
Usage:
mullion mysql backup [flags]
Flags:
-h, --help help for backup
Change the MySQL root password ('' to remove it); phpMyAdmin follows automatically
Usage:
mullion mysql password [new-password] [flags]
Imports databases into the running MySQL server.
Pass a single .sql file (e.g. one database from a backup folder), or a
whole backup folder — when the folder contains all-databases.sql that
one file is imported, otherwise every .sql file in it is.
Usage:
mullion mysql restore <file-or-folder> [flags]
Start the MySQL server
Usage:
mullion mysql start [flags]
Stop the MySQL server
Usage:
mullion mysql stop [flags]
Stop MySQL, back it up, and remove it (binaries, data, and phpMyAdmin)
Usage:
mullion mysql uninstall [flags]
Installs MariaDB and makes it the active database server, migrating
your databases from the current server (MySQL or MariaDB) after asking.
Equivalent to: mullion mysql install mariadb
Usage:
mullion mariadb [version] [flags]
Manage databases on the local MySQL server
Usage:
mullion db [command]
Available Commands:
create Create a database (utf8mb4)
drop Delete a database and ALL its data
list List your databases
Create a database (utf8mb4)
Usage:
mullion db create <name> [flags]
Delete a database and ALL its data
Usage:
mullion db drop <name> [flags]
List your databases
Usage:
mullion db list [flags]
Manage the local PostgreSQL server
Usage:
mullion postgres [flags]
mullion postgres [command]
Aliases:
postgres, pg
Available Commands:
backup Export all your PostgreSQL databases (and roles) to a timestamped backup folder
db Manage databases on the local PostgreSQL server
install Download PostgreSQL (newest 17 by default), initialize it, and start it
password Change the PostgreSQL superuser password ('' to remove it)
restore Restore a PostgreSQL backup
start Start the PostgreSQL server
status Show whether PostgreSQL is installed and running
stop Stop the PostgreSQL server
uninstall Stop PostgreSQL, back it up, and remove it (binaries, data, and pgAdmin)
Installs and starts PostgreSQL. With no argument you get the newest
release of the 17 series. Pass "latest" for the newest release
overall, a major like "16" for the newest release of that major, or a
full version like "16.4".
Switching to a different major stops the previous server — data
directories are per-major, so the old data is left on disk untouched
(where it's kept is printed).
Usage:
mullion postgres install [version] [flags]
Export all your PostgreSQL databases (and roles) to a timestamped backup folder
Usage:
mullion postgres backup [flags]
Change the PostgreSQL superuser password ('' to remove it)
Usage:
mullion postgres password [new-password] [flags]
Restores databases into the running PostgreSQL server.
Pass a backup folder (as mullion postgres backup creates) to restore
every database in it, plus its globals.sql (roles, tablespaces) on a
best-effort basis; add a database name to restore just that one. Pass a
single .dump file with a database name to restore that file alone.
Usage:
mullion postgres restore <backup-folder-or-.dump-file> [database] [flags]
Start the PostgreSQL server
Usage:
mullion postgres start [flags]
Show whether PostgreSQL is installed and running
Usage:
mullion postgres status [flags]
Stop the PostgreSQL server
Usage:
mullion postgres stop [flags]
Stop PostgreSQL, back it up, and remove it (binaries, data, and pgAdmin)
Usage:
mullion postgres uninstall [flags]
Flags:
--keep-data keep the data directory (binaries only)
--no-backup skip the database backup
--yes do not ask for confirmation
Manage databases on the local PostgreSQL server
Usage:
mullion postgres db [command]
Available Commands:
create Create a database
drop Delete a database and ALL its data
list List your databases
Create a database
Usage:
mullion postgres db create <name> [flags]
Delete a database and ALL its data
Usage:
mullion postgres db drop <name> [flags]
List your databases
Usage:
mullion postgres db list [flags]
Manage the local MongoDB server
Usage:
mullion mongo [flags]
mullion mongo [command]
Available Commands:
backup Export all your MongoDB databases to a timestamped backup folder
db Manage databases on the local MongoDB server
install Download MongoDB (newest 8.0 by default), initialize it, and start it
restore Restore a MongoDB backup
start Start the MongoDB server
status Show whether MongoDB is installed and running
stop Stop the MongoDB server
uninstall Stop MongoDB, back it up, and remove it (binaries, data, and mongo-express)
Installs and starts MongoDB. With no argument you get the newest
release of the 8.0 series. Pass "latest" for the newest release
overall, a series like "7.0" for the newest release of that series, or
a full version like "8.0.12".
Usage:
mullion mongo install [version] [flags]
Export all your MongoDB databases to a timestamped backup folder
Usage:
mullion mongo backup [flags]
Restores databases into the running MongoDB server.
Pass a backup folder (as mullion mongo backup creates) to restore every
database in it, or add a database name to restore just that one. Pass a
single .archive.gz file directly to restore it alone (the database it
holds was fixed when it was dumped, so no database name is needed).
Usage:
mullion mongo restore <backup-folder-or-.archive.gz-file> [database] [flags]
Start the MongoDB server
Usage:
mullion mongo start [flags]
Show whether MongoDB is installed and running
Usage:
mullion mongo status [flags]
Stop the MongoDB server
Usage:
mullion mongo stop [flags]
Stop MongoDB, back it up, and remove it (binaries, data, and mongo-express)
Usage:
mullion mongo uninstall [flags]
Flags:
--keep-data keep the data directory (binaries only)
--no-backup skip the database backup
--yes do not ask for confirmation
Manage databases on the local MongoDB server
Usage:
mullion mongo db [command]
Available Commands:
create Create a database
drop Delete a database and ALL its data
list List your databases
Create a database
Usage:
mullion mongo db create <name> [flags]
Delete a database and ALL its data
Usage:
mullion mongo db drop <name> [flags]
List your databases
Usage:
mullion mongo db list [flags]
List database backups made with mullion mysql|postgres|mongo backup
Usage:
mullion backups [flags]
Downloads phpMyAdmin (the latest release, or a specific version like
5.2.2) into ~/.mullion/phpmyadmin, configures it to auto-connect to the local
MySQL server (root, no password), and links it as a secured site at
https://phpmyadmin.<tld>.
Usage:
mullion phpmyadmin [version] [flags]
mullion phpmyadmin [command]
Available Commands:
uninstall Remove phpMyAdmin (the MySQL server itself is untouched)
Remove phpMyAdmin (the MySQL server itself is untouched)
Usage:
mullion phpmyadmin uninstall [flags]
Flags:
--yes do not ask for confirmation
Installs pgAdmin 4 into ~/.mullion/pgadmin on first use — taken from the
same EDB package as the installed PostgreSQL — and opens it with a
"Mullion (PostgreSQL)" server (127.0.0.1:5432, user postgres) already
registered, so connecting is one click.
Usage:
mullion pgadmin [flags]
mullion pgadmin [command]
Available Commands:
uninstall Remove pgAdmin 4 (your saved servers in ~/.pgadmin are untouched)
Remove pgAdmin 4 (your saved servers in ~/.pgadmin are untouched)
Usage:
mullion pgadmin uninstall [flags]
Flags:
--yes do not ask for confirmation
Installs mongo-express (a web-based admin UI for MongoDB) into
~/.mullion/mongo-express, pointed at mullion's local MongoDB with admin
access and no basic-auth prompt, and links it as a secured site at
https://mongo.<tld>.
Usage:
mullion mongo-express [flags]
mullion mongo-express [command]
Aliases:
mongo-express, mongo-ui
Available Commands:
uninstall Remove mongo-express (the MongoDB server itself is untouched)
Remove mongo-express (the MongoDB server itself is untouched)
Usage:
mullion mongo-express uninstall [flags]
Flags:
--yes do not ask for confirmation
Downloads the latest portable HeidiSQL into ~/.mullion/heidisql on
first use — preconfigured with a session for the local MySQL server
(127.0.0.1, root, no password) — and opens it.
Usage:
mullion heidisql [flags]
List the ports Mullion uses, who holds them, and any conflicts
Usage:
mullion ports [flags]
Change the port of a database engine or a dev server
Usage:
mullion port [command]
Available Commands:
dev Assign a frontend site's dev server another port (restarts it if running)
set Move a database engine to another port (restarts it if running)
Assign a frontend site's dev server another port (restarts it if running)
Usage:
mullion port dev <site> <port> [flags]
Flags:
--force use the port even though another process holds it
Move a database engine to another port (restarts it if running)
Usage:
mullion port set <mysql|postgres|mongo> <port> [flags]
Flags:
--force use the port even though another process holds it
Show the local certificate authority behind https://*.test
Usage:
mullion ssl [flags]
mullion ssl [command]
Available Commands:
all Serve every site over HTTPS (on) or plain HTTP (off)
export Copy the local CA certificate (for Firefox, phones, VMs)
trust Add the local CA to the system trust store (asks for your password / UAC)
Add the local CA to the system trust store (asks for your password / UAC)
Usage:
mullion ssl trust [flags]
Copy the local CA certificate (for Firefox, phones, VMs)
Usage:
mullion ssl export <file> [flags]
Serve every site over HTTPS (on) or plain HTTP (off)
Usage:
mullion ssl all <on|off> [flags]
← Previous: Troubleshooting · Next: Changelog →
Start
Using Mullion
Reference