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.
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]
--yes | do 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
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]
--all | also 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]
--yes | do 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]
--connect | add 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) |
--yes | same 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-changes | accept sources whose content changed since first use |
|---|---|
--dry-run | only show what would be installed |
--yes | do 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]
--delete | remove the stored token |
|---|
covo blueprint import
Add a blueprint from a JSON file
covo blueprint import <file.json|-> [flags]
--force | replace 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]
--force | replace 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]
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
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 link
Link an existing database to a site (connects as root or postgres)
covo db link <site> <database> [flags]
--engine <string> | mysql or pgsql (default "mysql") |
|---|
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 db unlink
Forget a site's database (--drop also deletes it)
covo db unlink <site> [flags]
--drop | also delete the database and the site's own MySQL user |
|---|---|
--yes | do not ask before deleting |
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]
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]
--head | HEAD instead of GET |
|---|---|
--html | print 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)
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-run | show 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") |
--localhost | serve sites as <name>.localhost instead of their .local names |
--migrate | also copy databases and point wp-config.php/.env at Covo |
--site <strings> | only these hosts (server name or site name; repeatable) |
--source-password | ask 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-run | show 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") |
--localhost | serve sites as <name>.localhost instead of their .local names |
--migrate | also copy databases and point wp-config.php/.env at Covo |
--site <strings> | only these hosts (server name or site name; repeatable) |
--source-password | ask 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-run | show 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") |
--localhost | serve sites as <name>.localhost instead of their .local names |
--migrate | also copy databases and point wp-config.php/.env at Covo |
--site <strings> | only these hosts (server name or site name; repeatable) |
--source-password | ask 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-run | show 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") |
--localhost | serve sites as <name>.localhost instead of their .local names |
--migrate | also copy databases and point wp-config.php/.env at Covo |
--site <strings> | only these hosts (server name or site name; repeatable) |
--source-password | ask 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-run | show 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") |
--localhost | serve sites as <name>.localhost instead of their .local names |
--migrate | also copy databases and point wp-config.php/.env at Covo |
--site <strings> | only these hosts (server name or site name; repeatable) |
--source-password | ask 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]
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]
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]
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) |
|---|---|
--off | stop sharing |
covo php
Manage PHP versions
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]
--all | WordPress: 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]
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]
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-run | show what would change, change nothing |
|---|---|
--no-database | leave the database out |
--no-files | leave 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-run | show what would change, change nothing |
|---|---|
--no-database | leave the database out |
--no-files | leave the files out |
--yes | do 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]
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)
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-password | forget the stored password |
--password | ask 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-folder | create 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") |
--force | add 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]
--clear | empty both logs of the site |
|---|---|
-n, --lines <int> | number of lines (max 2000) (default 50) |
--php | PHP 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-database | also delete the site's database and its own MySQL user |
|---|---|
--yes | do 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 |
--force | accept 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.
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]
--yes | do 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]
--yes | do 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]
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-changes | with --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) |
--yes | with --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]