Docs

CLI reference

Every covo command and flag. Each one also takes --json for output with a stable schema.

The app and the CLI drive the same local daemon, so anything you can click you can also script. Add --json to Covo's own commands for machine-readable output (covo wp, composer and artisan pass their tool's output through unchanged). Generated from covo dev (a2d996de25d9).

covo agent

While an AI agent works on a site, Covo keeps the site's starting state (files and database) in an agent session, until you keep the changes or undo them all.

Subcommands: connect, diff, idle, session, start, tools

covo agent connect

Add Covo's MCP server to an agent's own settings in your home (after a backup)

covo agent connect <agent> [flags]
--yesdo not ask

covo agent diff

What changed since the agent session started: files and database tables

covo agent diff <site> [flags]
--file <string>one file's unified diff (path inside the project)

covo agent idle

After how many idle hours a session closes keeping the changes (0: never)

covo agent idle [hours] [flags]

covo agent session

Agent sessions: list, show, keep or undo

Subcommands: keep, list, open, revert, show

covo agent session keep

Keep the changes and close the session

covo agent session keep <site> [flags]

covo agent session list

Open agent sessions (--all: recently closed ones too)

covo agent session list [flags]
--allalso recently closed sessions

covo agent session open

Open a session yourself before an agent (any agent, MCP or not) works on a site

covo agent session open <site> [flags]

covo agent session revert

Puts the site's files and database back to the session's starting snapshot. This also undoes changes you made yourself during the session: Covo does not know who changed what. .git and node_modules are never touched, and the current state is saved first (a pre-restore snapshot).

covo agent session revert <site> [flags]
--yesdo not ask

covo agent session show

A site's open session and its snapshots

covo agent session show <site> [flags]

covo agent start

Opens an agent session (starting snapshot of files and database), lets agents change this site until the session closes, and starts the agent in a new terminal window with Covo connected for that run (Cursor: opens the folder). Agents: claude, codex, gemini, cursor-agent, cursor, copilot.

covo agent start <site> [flags]
--connectadd Covo to the agent's own settings if it needs it (Gemini, Cursor)
--terminal <string>Terminal, iTerm or Ghostty (default: the last one, or Terminal)
--tool <string>claude, codex, gemini, cursor-agent, cursor or copilot (default: the last one)
--yessame as --connect

covo agent tools

AI agents on this Mac and whether Covo is connected to them

covo agent tools [flags]

covo artisan

Run artisan for a Laravel site, e.g. `covo artisan shop migrate`.

Every argument after the site name goes to artisan unchanged, and its output and exit code are passed through (no --json envelope).

covo artisan <site> [artisan arguments...] [flags]

covo blueprint

Blueprints are JSON templates for new WordPress sites: WordPress version and language, themes and plugins (wordpress.org, zip URL, GitHub or git), options, wp-config constants and must-use plugins. See docs/blueprints.md.

Blueprints install third-party code (themes and plugins) into your site. Use only sources you trust. Covo records each download's SHA-256 the first time and stops if it changes.

Subcommands: apply, delete, export, github-token, import, list, save, show, sources

covo blueprint apply

Install a blueprint's themes, plugins and settings into a WordPress site (snapshot first)

covo blueprint apply <name> <site> [flags]
--accept-changesaccept sources whose content changed since first use
--dry-runonly show what would be installed
--yesdo not ask

covo blueprint delete

Delete a blueprint

covo blueprint delete <name> [flags]

covo blueprint export

Write a blueprint as JSON (to stdout without a file)

covo blueprint export <name> [file.json] [flags]

covo blueprint github-token

Store a GitHub token for private repositories (read from the terminal or stdin)

covo blueprint github-token [flags]
--deleteremove the stored token

covo blueprint import

Add a blueprint from a JSON file

covo blueprint import <file.json|-> [flags]
--forcereplace a blueprint with the same name
--name <string>save under this name instead of the file's

covo blueprint list

List blueprints

covo blueprint list [flags]

covo blueprint save

Save a WordPress site's themes, plugins and settings as a blueprint

covo blueprint save <site> <name> [flags]
--forcereplace a blueprint with the same name

covo blueprint show

Show a blueprint's JSON

covo blueprint show <name> [flags]

covo blueprint sources

List the downloads Covo recorded, with their SHA-256

covo blueprint sources [flags]

covo composer

Run Composer for a site, e.g. `covo composer shop require guzzlehttp/guzzle`. Composer 2.11 (2.2 LTS for PHP older than 7.3); its cache is in Covo's folder.

Every argument after the site name goes to composer unchanged, and its output and exit code are passed through (no --json envelope).

covo composer <site> [composer arguments...] [flags]

covo daemon

The daemon serves Covo's local API (JSON over a Unix socket only you can open) for the Covo app. It runs as a launchd agent from the Covo home and does not start at login; covo start and covo stop do not touch it.

covo daemon [flags]

Subcommands: start, stop

covo daemon start

Start the daemon (restarts it if the covo binary changed)

covo daemon start [flags]

covo daemon stop

Stop the daemon

covo daemon stop [flags]

covo db

Manage site databases on Covo's MySQL

Subcommands: create, link, list, query, show, unlink

covo db create

Create a database and its own user for a site

covo db create <site> [flags]
--engine <string>mysql or pgsql (default "mysql")
--name <string>database name (default: the site name with underscores)

covo db list

List databases (the server must be running)

covo db list [flags]
--engine <string>mysql or pgsql (default "mysql")

covo db query

Runs as a user that can only read, in a read-only transaction: at most 500 rows and 10 seconds. Changes go through wp or artisan.

covo db query <site> <sql> [flags]

covo db show

Show a site's database and how to connect (password with --json)

covo db show <site> [flags]

covo domains

Sites are served at <name>.localhost by default: nothing to set up.

.test domains (e.g. demo.covo.test) are opt-in: Covo adds a file to /etc/resolver that sends .test lookups to its own DNS server on 127.0.0.1. Enabling and disabling each ask for one administrator authorization.

.local domains (e.g. shop.local) are a MAMP compatibility mode: Covo installs a small helper that only manages Covo's own lines in /etc/hosts (127.0.0.1 and ::1). Installing it asks for one administrator authorization.

covo domains [flags]

Subcommands: disable, enable

covo domains disable

Stop serving .test or .local domains and remove what Covo installed for them

covo domains disable test|local [flags]

covo domains enable

Serve .test or .local domains (one administrator authorization)

covo domains enable test|local [flags]

covo fetch

Request a page of a site and show the status, redirects and PHP errors it caused

covo fetch <site> [path] [flags]
--headHEAD instead of GET
--htmlprint the page's HTML

covo group

Groups only organize the list: they change nothing about how sites are served. Paths use / between levels, e.g. Clients/Acme.

Subcommands: add, disable, enable, list, move, order, remove, rename

covo group add

Create a group, and any missing group above it (e.g. Clients/Acme)

covo group add <path> [flags]

covo group disable

Turn off every site in a group and its subgroups

covo group disable <path> [flags]

covo group enable

Turn on every site in a group and its subgroups (archived sites stay off)

covo group enable <path> [flags]

covo group list

List groups

covo group list [flags]

covo group move

Move a group into another one ("/" for the top level)

covo group move <path> <into> [flags]

covo group order

Items are site:<name> or group:<path>, in the order wanted; groups and sites mix freely. Items from elsewhere move inside <path>; the others of that level follow in their current order. Example: covo group order Clients site:shop group:Clients/Acme site:blog

covo group order <path> <item>... [flags]

covo group remove

Remove a group; its sites and groups move up one level (no site is removed)

covo group remove <path> [flags]

covo group rename

Rename a group

covo group rename <path> <new-name> [flags]

covo import

Import sites from another tool (MAMP PRO, Local, Herd, Valet, XAMPP)

Subcommands: herd, local, mamp, undo, valet, xampp

covo import herd

Reads Laravel Herd's site list (its files are only read) and creates one Covo site per host, same name and folder. The tool itself is never modified and can keep running. .local names are kept (covo domains enable local), or served as <name>.localhost with --localhost.

--migrate also brings each new site to work from Covo: its database is copied from the tool's MySQL (only read: the tool's MySQL must be running, Covo never starts it) or loaded from --dump, the site gets its own MySQL user, wp-config.php or .env is backed up in Covo's folder and pointed at Covo, and the old address is replaced in the database. The project files stay shared: afterwards the tool's copy of the site no longer reaches its database. `covo import undo <site>` puts things back.

covo import herd [flags]
--dry-runshow what would happen, change nothing
--dump <string>load this .sql or .sql.gz instead of reading the source's MySQL (one --site)
--existing <string>when Covo already has the database: use, recopy (after a backup) or skip (default "use")
--localhostserve sites as <name>.localhost instead of their .local names
--migratealso copy databases and point wp-config.php/.env at Covo
--site <strings>only these hosts (server name or site name; repeatable)
--source-passwordask for the source user's password
--source-user <string>MySQL user on the source (default: the one in wp-config.php/.env)

covo import local

Reads Local's site list (its files are only read) and creates one Covo site per host, same name and folder. The tool itself is never modified and can keep running. .local names are kept (covo domains enable local), or served as <name>.localhost with --localhost.

--migrate also brings each new site to work from Covo: its database is copied from the tool's MySQL (only read: the tool's MySQL must be running, Covo never starts it) or loaded from --dump, the site gets its own MySQL user, wp-config.php or .env is backed up in Covo's folder and pointed at Covo, and the old address is replaced in the database. The project files stay shared: afterwards the tool's copy of the site no longer reaches its database. `covo import undo <site>` puts things back.

covo import local [flags]
--dry-runshow what would happen, change nothing
--dump <string>load this .sql or .sql.gz instead of reading the source's MySQL (one --site)
--existing <string>when Covo already has the database: use, recopy (after a backup) or skip (default "use")
--localhostserve sites as <name>.localhost instead of their .local names
--migratealso copy databases and point wp-config.php/.env at Covo
--site <strings>only these hosts (server name or site name; repeatable)
--source-passwordask for the source user's password
--source-user <string>MySQL user on the source (default: the one in wp-config.php/.env)

covo import mamp

Reads MAMP PRO's site list (its files are only read) and creates one Covo site per host, same name and folder. The tool itself is never modified and can keep running. .local names are kept (covo domains enable local), or served as <name>.localhost with --localhost.

--migrate also brings each new site to work from Covo: its database is copied from the tool's MySQL (only read: the tool's MySQL must be running, Covo never starts it) or loaded from --dump, the site gets its own MySQL user, wp-config.php or .env is backed up in Covo's folder and pointed at Covo, and the old address is replaced in the database. The project files stay shared: afterwards the tool's copy of the site no longer reaches its database. `covo import undo <site>` puts things back.

covo import mamp [flags]
--dry-runshow what would happen, change nothing
--dump <string>load this .sql or .sql.gz instead of reading the source's MySQL (one --site)
--existing <string>when Covo already has the database: use, recopy (after a backup) or skip (default "use")
--localhostserve sites as <name>.localhost instead of their .local names
--migratealso copy databases and point wp-config.php/.env at Covo
--site <strings>only these hosts (server name or site name; repeatable)
--source-passwordask for the source user's password
--source-user <string>MySQL user on the source (default: the one in wp-config.php/.env)

covo import undo

Undo a site's migration: restore its configuration, delete the copied database

covo import undo <site> [flags]

covo import valet

Reads Laravel Valet's site list (its files are only read) and creates one Covo site per host, same name and folder. The tool itself is never modified and can keep running. .local names are kept (covo domains enable local), or served as <name>.localhost with --localhost.

--migrate also brings each new site to work from Covo: its database is copied from the tool's MySQL (only read: the tool's MySQL must be running, Covo never starts it) or loaded from --dump, the site gets its own MySQL user, wp-config.php or .env is backed up in Covo's folder and pointed at Covo, and the old address is replaced in the database. The project files stay shared: afterwards the tool's copy of the site no longer reaches its database. `covo import undo <site>` puts things back.

covo import valet [flags]
--dry-runshow what would happen, change nothing
--dump <string>load this .sql or .sql.gz instead of reading the source's MySQL (one --site)
--existing <string>when Covo already has the database: use, recopy (after a backup) or skip (default "use")
--localhostserve sites as <name>.localhost instead of their .local names
--migratealso copy databases and point wp-config.php/.env at Covo
--site <strings>only these hosts (server name or site name; repeatable)
--source-passwordask for the source user's password
--source-user <string>MySQL user on the source (default: the one in wp-config.php/.env)

covo import xampp

Reads XAMPP's site list (its files are only read) and creates one Covo site per host, same name and folder. The tool itself is never modified and can keep running. .local names are kept (covo domains enable local), or served as <name>.localhost with --localhost.

--migrate also brings each new site to work from Covo: its database is copied from the tool's MySQL (only read: the tool's MySQL must be running, Covo never starts it) or loaded from --dump, the site gets its own MySQL user, wp-config.php or .env is backed up in Covo's folder and pointed at Covo, and the old address is replaced in the database. The project files stay shared: afterwards the tool's copy of the site no longer reaches its database. `covo import undo <site>` puts things back.

covo import xampp [flags]
--dry-runshow what would happen, change nothing
--dump <string>load this .sql or .sql.gz instead of reading the source's MySQL (one --site)
--existing <string>when Covo already has the database: use, recopy (after a backup) or skip (default "use")
--localhostserve sites as <name>.localhost instead of their .local names
--migratealso copy databases and point wp-config.php/.env at Covo
--site <strings>only these hosts (server name or site name; repeatable)
--source-passwordask for the source user's password
--source-user <string>MySQL user on the source (default: the one in wp-config.php/.env)

covo laravel

Runs composer create-project laravel/laravel, adds the site (served from public/) and sets APP_URL, the database (a new one with its own user when MySQL is running, else SQLite) and Mailpit in .env.

covo laravel <name> [flags]
--aliases <strings>extra domains, comma separated
--database <string>"new" (own MySQL database) or "sqlite" (default: new if MySQL is running)
--domain <string>local domain (default: <name>.localhost)
--engine <string>engine of the new database: mysql or pgsql (default: whichever is running, MySQL first)
--group <string>list the site in this group
--ini <stringArray>php.ini value of this site, name=value (repeatable)
--path <string>new or empty folder (default ~/Sites/<name>)
--php <string>PHP version (8.2 or newer) (default "8.4")

covo mail

Catch the mail PHP sends in Mailpit (status)

covo mail [flags]

Subcommands: disable, enable, list, show

covo mail disable

Stop catching mail (messages are kept)

covo mail disable [flags]

covo mail enable

Catch every mail PHP sends; inbox at https://mail.localhost

covo mail enable [flags]

covo mail list

The newest mail PHP sent (filter by --to or --subject)

covo mail list [flags]
-n, --limit <int>how many (default 20)
--subject <string>only mail with these words in the subject
--to <string>only mail to this address

covo mail show

One message's text and links (the newest without an id)

covo mail show [id] [flags]

covo mcp

Serves the Model Context Protocol over stdin/stdout: sites, PHP versions, logs, databases, the PHP compatibility check and wp-cli. Add it to an agent, e.g.:

claude mcp add covo -- covo mcp

Agents are read-only until you allow changes: covo mcp allow <site> (or *). Before changing a site Covo takes a snapshot; covo mcp log shows what they did.

covo mcp [flags]

Subcommands: allow, deny, log, status

covo mcp allow

Let AI agents change a site (* for everything, creating sites included)

covo mcp allow <site|*> [flags]

covo mcp deny

Make a site (or everything) read-only for AI agents again

covo mcp deny <site|*> [flags]

covo mcp log

What AI agents changed (or tried to), newest first

covo mcp log [flags]
-n, --lines <int>how many (default 50)

covo mcp status

What AI agents may change

covo mcp status [flags]

covo mysql

Covo runs MySQL 8.4 LTS on 127.0.0.1, port 3307 by default (3306 is usually MAMP's). Databases live in Covo's home; the root password is generated by Covo and kept in the login keychain.

PHP sites reach it with DB_HOST "localhost" (Covo's socket) or "127.0.0.1:3307".

covo mysql [flags]

Subcommands: disable, enable, password

covo mysql disable

Stop MySQL (databases are kept)

covo mysql disable [flags]

covo mysql enable

Install, initialize and start MySQL

covo mysql enable [flags]
--port <int>TCP port on 127.0.0.1 (default: first free from 3307)

covo mysql password

Print the connection details, root password included

covo mysql password [flags]

covo phone

Serves one site at <site>-<mac>.local on this Mac's private network addresses (Bonjour), with HTTPS from Covo's CA, for --minutes (default 30). Without a site, shows what is shared. The site's files and database are not changed.

covo phone [site] [flags]
--minutes <int>turn off after this many minutes (max 1440) (default 30)
--offstop sharing

covo php

Manage PHP versions

Subcommands: check, install, list, settings, xdebug

covo php check

Runs PHP_CodeSniffer with PHPCompatibility on the site's code, before you switch its PHP version. WordPress sites: only wp-content (themes and plugins) unless --all.

covo php check <site> [flags]
--allWordPress: check the core files too
--target <string>PHP version to check against (default: the newest fully supported)

covo php install

Download, verify and install a PHP version (e.g. 8.4)

covo php install <version> [flags]

covo php list

List installed and available PHP versions

covo php list [flags]

covo php settings

Show or change php.ini settings of a PHP version.

Settings: memory_limit, upload_max_filesize, max_execution_time, display_errors. post_max_size always follows upload_max_filesize.

covo php settings <version> [name=value...] [flags]

covo php xdebug

Xdebug runs in step-debugging mode and only starts when triggered (browser extension, or an XDEBUG_TRIGGER cookie or parameter). Your IDE listens on 127.0.0.1:9003. Turning it on or off restarts that PHP version.

covo php xdebug [flags]

Subcommands: off, on

covo php xdebug off

Turn Xdebug off for a PHP version

covo php xdebug off <version> [flags]

covo php xdebug on

Turn Xdebug on for a PHP version (e.g. 8.4)

covo php xdebug on <version> [flags]

covo ports

The HTTPS port is the one in site addresses; 443 leaves it out. The HTTP port (0: off) only redirects to HTTPS. 443 and 80 need Covo's helper, installed with one administrator password: it forwards them to Covo while Covo runs.

covo ports [flags]
--http <int>HTTP redirect port: 0 (off), 80, or 1024-65535
--https <int>HTTPS port: 443, or 1024-65535

covo postgres

Covo can run PostgreSQL 18 on 127.0.0.1, port 5433 by default (5432 is usually taken by Postgres.app or Homebrew). Off until enabled; databases live in Covo's home; the superuser (postgres) password is kept in the login keychain.

covo postgres [flags]

Subcommands: disable, enable, password

covo postgres disable

Stop PostgreSQL (databases are kept)

covo postgres disable [flags]

covo postgres enable

Install, initialize and start PostgreSQL

covo postgres enable [flags]
--port <int>TCP port on 127.0.0.1 (default: first free from 5433)

covo postgres password

Print the connection details, superuser password included

covo postgres password [flags]

covo pull

Copy a remote's database and files into the site (a snapshot is taken first)

covo pull <site> [remote] [flags]
--dry-runshow what would change, change nothing
--no-databaseleave the database out
--no-filesleave the files out

covo push

Copy the site's database and files to a staging remote (never production)

covo push <site> <staging remote> [flags]
--dry-runshow what would change, change nothing
--no-databaseleave the database out
--no-filesleave the files out
--yesdo not ask

covo redis

Covo can run Redis 8 on 127.0.0.1, port 6380 by default (6379 is usually taken by another Redis). Off until enabled; no password: only this Mac reaches it.

covo redis [flags]

Subcommands: disable, enable

covo redis disable

Stop Redis (its saved data is kept)

covo redis disable [flags]

covo redis enable

Install and start Redis

covo redis enable [flags]
--port <int>TCP port on 127.0.0.1 (default: first free from 6380)

covo remote

Production and staging copies of a site (for covo pull and push)

Subcommands: remove, set, show

covo remote remove

Forget a remote and its password

covo remote remove <site> <name> [flags]

covo remote set

A remote is a copy of the site on a server. Transports: ssh your keys, ssh-agent and ~/.ssh/config (/usr/bin/ssh); files with rsync, database with the server's wp-cli or mysqldump sftp for hosts without a shell; database through a temporary PHP bridge ftps / ftp same, over FTP (plain FTP sends the password unencrypted) A password (--password asks for it) is kept in the login keychain.

covo remote set <site> [flags]
--exclude <strings>patterns never synced (default: .git, node_modules, .DS_Store, cache)
--host <string>server name
--kind <string>production (pull only) or staging (pull and push) (default "production")
--name <string>remote name (default: its kind)
--no-passwordforget the stored password
--passwordask for the password and keep it in the keychain
--path <string>project folder on the server
--paths <strings>folders to sync (default: wp-content/uploads, storage/app/public, or everything)
--port <int>port (default of the transport)
--transport <string>ssh, sftp, ftps or ftp (default "ssh")
--url <string>the remote site's address
--user <string>login
--webroot <string>folder served on the web, inside --path (Laravel: public)

covo remote show

List a site's remotes

covo remote show <site> [flags]

covo site

Manage sites

Subcommands: add, archive, disable, enable, list, logs, php, remove, set, unarchive

covo site add

Add a site served at https://<name>.localhost (or --domain)

covo site add <name> [flags]
--aliases <strings>extra domains, comma separated
--create-foldercreate the document root (missing or empty) for a new site
--database <string>"new" for a database with its own user, or the name of an existing one to link
--domain <string>local domain, e.g. demo.covo.test (default: <name>.localhost)
--engine <string>database engine for --database: mysql or pgsql (default "mysql")
--forceadd the folder even if it has no index.php or index.html
--group <string>list the site in this group, e.g. Clients/Acme (see covo group)
--ini <stringArray>php.ini value of this site, name=value (repeatable)
--path <string>document root (default: current folder)
--php <string>PHP version (e.g. 8.4, 8.2) (default "8.4")

covo site archive

Put a site away: not served, listed apart (folder and database are kept)

covo site archive <name> [flags]

covo site disable

Stop serving a site, keeping it in the list

covo site disable <name> [flags]

covo site enable

Serve a site that was disabled

covo site enable <name> [flags]

covo site list

List sites

covo site list [flags]

covo site logs

Show the end of a site's access log (or --php for PHP errors)

covo site logs <name> [flags]
--clearempty both logs of the site
-n, --lines <int>number of lines (max 2000) (default 50)
--phpPHP errors, warnings and notices instead of requests

covo site php

Show or change php.ini settings of one site (setting= goes back to the PHP version's)

covo site php <name> [setting=value...] [flags]

covo site remove

Remove a site (its folder is left untouched)

covo site remove <name> [flags]
--drop-databasealso delete the site's database and its own MySQL user
--yesdo not ask before deleting the database

covo site set

Change a site's PHP version, folder, domain, aliases, group or title

covo site set <name> [flags]
--aliases <strings>extra domains, comma separated, replacing the current ones ("" clears)
--domain <string>new local domain, e.g. demo.covo.test
--forceaccept a folder without index.php or index.html
--group <string>move the site into a group, e.g. Clients/Acme ("" for the top level)
--path <string>new document root
--php <string>new PHP version (e.g. 8.3)
--title <string>label shown in the list instead of the name ("" clears)

covo site unarchive

Bring back an archived site and serve it again

covo site unarchive <name> [flags]

covo snapshot

Snapshots save a site's project folder (APFS clones: no space until files change; .git and node_modules are left out) and its database, in Covo's folder.

Subcommands: create, delete, keep, list, restore

covo snapshot create

Take a snapshot

covo snapshot create <site> [flags]
--note <string>what this snapshot is for

covo snapshot delete

Delete a snapshot

covo snapshot delete <site> <id> [flags]

covo snapshot keep

Show or set how many snapshots are kept per site (default 10)

covo snapshot keep [n] [flags]

covo snapshot list

List a site's snapshots, newest first

covo snapshot list <site> [flags]

covo snapshot restore

Put the site's files and database back (the current state is saved first)

covo snapshot restore <site> <id> [flags]
--yesdo not ask

covo start

Start Caddy and the PHP versions your sites use

covo start [flags]
--https-port <int>change the HTTPS port (default: 8443, or the first free port after it)

covo status

Show services, sites and their URLs

covo status [flags]

covo stop

Stop all Covo services

covo stop [flags]

covo trust

Adds Covo's local root certificate to your login keychain as trusted for your user only. macOS shows one dialog asking for your password or Touch ID. No sudo, nothing system-wide. Undo with: covo untrust

covo trust [flags]

covo uninstall

Stops every Covo service, removes Covo's CA and MySQL password from the login keychain and deletes ~/Library/Application Support/covo, MySQL databases included. Your site folders are never touched.

covo uninstall [flags]
--yesdo not ask for confirmation

covo untrust

Remove Covo's certificate authority from the login keychain

covo untrust [flags]

covo update

Show component updates (PHP, MySQL, Caddy, Mailpit, Adminer, wp-cli)

covo update [flags]

Subcommands: apply, check, rollback

covo update apply

Install updates (all, or e.g. caddy php-8.4) and restart what uses them

covo update apply [component...] [flags]

covo update check

Download and verify the signed manifest; install nothing

covo update check [flags]

covo update rollback

Go back to the version a component had before its last update

covo update rollback <component> [flags]

covo version

Print the Covo version

covo version [flags]

covo wordpress

Create a new WordPress site: folder, database, wp-config.php, installation

covo wordpress <name> [flags]
--accept-changeswith --blueprint: accept sources whose content changed since first use
--admin-email <string>administrator email (default admin@<domain>)
--admin-user <string>administrator user name (default "admin")
--aliases <strings>extra domains, comma separated
--blueprint <string>apply this blueprint (see covo blueprint)
--domain <string>local domain, e.g. blog.covo.test (default: <name>.localhost)
--group <string>list the site in this group, e.g. Clients/Acme (see covo group)
--ini <stringArray>php.ini value of this site, name=value (repeatable)
--path <string>new or empty folder (default ~/Sites/<name>)
--php <string>PHP version (default "8.4")
--title <string>site title (default: the name)
--yeswith --blueprint: do not ask

covo wp

Run wp-cli for a site, e.g. `covo wp shop plugin list`.

Every argument after the site name goes to wp unchanged, and its output and exit code are passed through (no --json envelope).

covo wp <site> [wp arguments...] [flags]