Command-line interface for Cipi — manage your servers, apps, databases, SSL certificates, and deployments from the terminal.
git clone https://github.com/cipi-sh/cli.git
cd cli
make build
sudo make installDownload the latest release for your platform from the Releases page, then:
chmod +x cipi-cli-*
sudo mv cipi-cli-* /usr/local/bin/cipi-cliSet up the connection to your Cipi API server. Each profile maps to one server:
cipi-cli configure --profile prod
cipi-cli configure --profile stagingYou will be prompted for:
- API endpoint — the URL of your Cipi API (e.g.
https://api.example.com) - Token — a Sanctum token created with
cipi api token createon your server
Credentials are stored per profile in ~/.cipi/config.json (permissions 0600).
You can also pass values directly:
cipi-cli configure --profile prod --endpoint https://api.example.com --token "1|yourtoken..."Manage profiles:
cipi-cli profiles
cipi-cli profiles list
cipi-cli profiles default prod
cipi-cli profiles show prodPrefix commands with a profile name to target that server:
cipi-cli prod apps list
cipi-cli staging apps show myapp
cipi-cli prod deploy myapp
cipi-cli prod ssl install myappIf you set a default profile (cipi-cli configure default prod), you can omit the prefix:
cipi-cli apps listcipi-cli apps list List all applications
cipi-cli apps show <name> Show application details
cipi-cli apps create [flags] Create a new application
cipi-cli apps edit <name> [flags] Edit an application
cipi-cli apps delete <name> [-y] Delete an application
cipi-cli apps suspend <name> Suspend an application (HTTP 503)
cipi-cli apps unsuspend <name> Bring a suspended application back online
Create flags: --user, --domain, --php, --repository, --branch, --custom, --docroot
Edit flags: --php, --repository, --branch, --domain (rename primary domain; requires Cipi 4.6.2+ / API 1.9.0+)
cipi-cli domains List every domain and alias across all apps
cipi-cli deploy <app> Trigger a deployment
cipi-cli deploy rollback <app> [-y] Rollback to previous release
cipi-cli deploy unlock <app> Unlock a stuck deployment
cipi-cli ssl install <app> Install Let's Encrypt certificate
cipi-cli aliases list <app> List aliases
cipi-cli aliases add <app> <domain> Add an alias
cipi-cli aliases remove <app> <domain> [-y] Remove an alias
cipi-cli db list List all databases
cipi-cli db create <name> Create a database
cipi-cli db delete <name> [-y] Delete a database
cipi-cli db backup <name> Create a backup
cipi-cli db restore <name> [-y] Restore from backup
cipi-cli db password <name> [-y] Regenerate password
cipi-cli jobs show <id> Show job status
cipi-cli jobs wait <id> Wait for a job to complete
cipi-cli configure [--profile NAME] Set up API endpoint and token for a profile
cipi-cli profiles List configured profiles
cipi-cli profiles list List configured profiles
cipi-cli profiles show [profile] Show one or all profiles
cipi-cli profiles default <profile> Set the default profile
cipi-cli profiles delete <profile> [-y] Delete a profile
cipi-cli update Update the CLI to the latest release
cipi-cli update --force Reinstall even if already up to date
Downloads the matching binary from the latest GitHub Release, verifies its SHA-256 checksum, and replaces the running binary in place. If it is installed in a system path (e.g. /usr/local/bin), run it with sudo cipi-cli update.
cipi-cli version Print version
cipi-cli --help Help
| Flag | Description |
|---|---|
--json |
Output in JSON format (for scripting) |
--no-color |
Disable colored output |
Write operations (create, edit, delete, deploy, SSL, etc.) are asynchronous on the Cipi API. The CLI automatically polls for job completion and displays a spinner while waiting. If you prefer to handle polling manually, use cipi-cli jobs show <id>.
Releases are automated via GitHub Actions. To publish a new version:
git tag v1.0.0
git push origin v1.0.0Prefer tags with a v prefix (v1.0.0). The pipeline builds binaries for Linux (amd64/arm64) and macOS (amd64/arm64), generates SHA-256 checksums, and creates a GitHub Release with all artifacts attached.
If a release is missing binaries, re-run the Release workflow manually from GitHub Actions (workflow dispatch) using the tag name.
make releaseThe Cipi server must have the API package installed and configured:
cipi api <domain>
cipi api ssl
cipi api token createSee the Cipi API documentation for details.
| Feature | Minimum Cipi | Minimum API |
|---|---|---|
| Suspend / unsuspend | 4.5.8 | 1.8.1 |
Rename primary domain (apps edit --domain) |
4.6.2 | 1.9.0 |
Global domain map (domains) |
4.5.5 | — (built from /api/apps) |
New app PHP versions must be 8.3, 8.4, or 8.5 (Cipi 4.5.4+).
MIT