---
title: Referencia local
description: Sintaxis, opciones y ejemplos de todos los comandos locales de Plak CLI.
sidebar:
  label: Comandos locales
  order: 0
---

Todos los comandos que funcionan sin cuenta del panel (los de cuenta están en [Referencia del panel](/cli/referencia-panel)). Comprobado con `plak v0.4.66`: cada uso coincide con `plak <comando> --help`.

## Banderas globales

| Bandera | Efecto |
| --- | --- |
| `--quiet`, `-q` | Suprime éxitos en STDOUT; los errores siguen en STDERR |
| `--json` | Salida JSON donde el comando la soporta |
| `--help`, `-h` | Ayuda del comando (después del nombre), sin ejecutar nada |

Excepción: `plak wp <sitio> <args...>` pasa **todo** lo que sigue al sitio a WP-CLI sin interpretar, incluidos `--quiet`, `--json` y `--help`. Códigos de salida: `0` éxito, `1` uso/configuración, `2` no encontrado, `3` vinculación/integridad.

## Sitios

### `plak add`

```bash
plak add <nombre> [--wp-version latest|nightly|<versión>] [--multisite subdomains|subdirectories] [--plain] [--agent|--no-agent] [--no-reload]
```

| Flag | Efecto |
| --- | --- |
| `--wp-version` | Fija la versión de WordPress (`6.8.1`, `latest`, `nightly`). Incompatible con `--plain` |
| `--multisite` | Crea red multisitio (`subdomains` o `subdirectories`). Incompatible con `--plain` y con `--agent` |
| `--plain` | Sitio estático, sin base de datos |
| `--agent` / `--no-agent` | Fuerza u omite la preparación de agentes (WP-MCP + HTML Editor + perfil `wp-mcp-cli`). Por defecto es agent-ready si `wp-mcp-cli` está instalado |
| `--no-reload` | Omite regenerar el servidor al final |

No interactivo, sin `--yes`. Falla si el sitio o la base de datos ya existen; limpia solo lo creado por ese intento. WordPress nuevo usa `WP_ENVIRONMENT_TYPE=local` con debug activado.

```bash
plak add mi-sitio
plak add estático --plain --no-reload
plak add red --multisite subdomains
```

### `plak import`

```bash
plak import <nombre> <backup.zip> [--plain] [--yes] [--no-reload]
```

Crea un sitio desde un ZIP, tar.gz, tgz o tar con un árbol WordPress de un solo sitio y un SQL reconocible (incluye exportaciones de Plak, Local y hostings). Rechaza rutas fuera del destino, SQL ambiguo o ausente, y multisitio. Un fallo deja el sitio parcial e indica cómo eliminarlo.

```bash
plak import mi-sitio ./backup.zip
plak import mi-sitio ./backup.tar.gz --yes --no-reload
```

### `plak clone`

```bash
plak clone <origen> <destino> [--yes] [--no-reload]
```

Duplica archivos y base de datos con URLs reescritas al destino. Empieza con logs vacíos y sin dominios exclusivos ni vinculaciones remotas, así que nunca despliega al remoto del origen. Solo pregunta con TTY y `gum` si falta `--yes`.

```bash
plak clone origen destino --yes
```

### `plak delete`

```bash
plak delete <nombre> [--force|--yes] [--no-reload]
```

Borra directorio, base de datos, directiva Caddy y entradas de `/etc/hosts` (con `sudo`). Sin TTY no pregunta (auto-fuerza); con TTY pide confirmación salvo `--force`/`--yes`.

```bash
plak delete mi-sitio
plak delete mi-sitio --force --no-reload
```

### `plak rename`

```bash
plak rename <anterior> <nuevo>
```

Sin ayuda propia ni flags. Mueve el directorio y la base de datos con `search-replace` de URLs. En multisitio delega al flujo de red. Regenera el servidor siempre.

```bash
plak rename viejo nuevo
```

### `plak list`

```bash
plak list [--totals] [--json]
```

Tabla (`nombre, dominio, tipo, tamaño`) o JSON (`name, domain, type, size, agent_ready, multisite_mode, network`). `--totals` calcula tamaños.

```bash
plak list
plak list --totals --json
```

### `plak path` · `plak url`

```bash
plak path <nombre>
plak url <sitio>
```

Imprimen la ruta `public/` y la URL HTTPS (con puerto si no es 443). Salida plana, apta para `$(...)`. Sin ayuda propia (`path`), `url` sí tiene la suya.

### `plak log`

```bash
plak log [sitio] [-f|--follow]
```

Sin sitio muestra `~/Plak/Logs/errors.log`; con sitio, sus `caddy.log` y `caddy-lan.log`. `-f` sigue en directo.

```bash
plak log
plak log mi-sitio --follow
```

## WordPress

### `plak login`

```bash
plak login <sitio> [<usuario>] [--subsite <id>] [--raw]
```

Genera un enlace único de WordPress (token de 7 hex, 900 s, un solo uso; **no** es login del panel). `<usuario>` puede ser ID, email o login (cualquier rol si es explícito; si se omite usa el primer administrador). `--raw` imprime solo la URL.

```bash
plak login mi-sitio
plak login mi-sitio admin --raw
```

### `plak wp`

```bash
plak wp <sitio> <argumentos wp-cli...>
```

Todo lo que sigue al sitio pasa intacto a WP-CLI con el mismo PHP que la web (resuelve el PHAR entre symlinks y wrappers). Sin TTY requerido; hereda stdin/stdout/stderr y el exit code.

```bash
plak wp mi-sitio plugin list --format=json
plak wp mi-sitio option get siteurl
```

### `plak core`

```bash
plak core [list|<sitio>] [--check]
plak core update <sitio>|--all [--version latest|nightly|<versión>] [--allow-downgrade]
```

Inspecciona (`list` funciona sin red) o actualiza el core conservando `wp-content` y `wp-config.php`. `--check` consulta WordPress.org (10 s de timeout). Los downgrades y transiciones `nightly` exigen `--allow-downgrade`; haz snapshot antes: nada restaura la BD solo.

```bash
plak core list
plak core mi-sitio --check
plak core update mi-sitio --version 6.8.2
plak core update --all --version 6.8.2
```

### `plak network`

```bash
plak network <sitio> [--json]
plak network create <sitio> <slug> [--title <título>]
```

Inspecciona la red multisitio o crea subsitios (normaliza su URL a `https`). Solo red raíz local bajo `<sitio>.localhost`.

```bash
plak network mi-red --json
plak network create mi-red equipo --title 'Equipo'
```

### `plak agent`

```bash
plak agent <sitio> [--json]
```

Prepara o repara un WordPress para agentes: instala WP-MCP y HTML Editor, fija permalinks y dominio de habilidades, rota la Application Password `Plak CLI (agent)` del usuario `admin`, registra el perfil `wp-mcp-cli` y verifica habilidades. Idempotente.

```bash
plak agent mi-sitio
plak agent mi-sitio --json
```

## Base de datos, snapshots e historial

### `plak db`

```bash
plak db backup
plak db list [--json]
plak db port [set <puerto>] [--yes] [--dry-run]
```

`backup` vuelca cada WordPress a `private/database-backup-*.sql`. `list` muestra credenciales y tamaños. `port` consulta o cambia el puerto de MariaDB (con rollback si la verificación falla).

```bash
plak db backup
plak db list --json
plak db port set 3307 --dry-run
```

### `plak snapshot`

```bash
plak snapshot <sitio> create [--note <texto>] [--json]
plak snapshot <sitio> list [--json]
plak snapshot <sitio> restore <id> [--yes]
plak snapshot <sitio> delete <id> [--yes]
plak snapshot <sitio> export <id> [--output <ruta>]
```

Puntos locales de archivos + base de datos (`private/snapshots/<id>`; los estáticos solo archivos). Restaurar guarda antes una snapshot de seguridad. `restore`/`delete` exigen `--yes` sin TTY.

```bash
plak snapshot mi-sitio create --note antes-cambio
plak snapshot mi-sitio restore 20260101T120000Z-a1b2c3 --yes
```

### `plak history`

```bash
plak history <sitio> save [--note <texto>] [--background]
plak history <sitio> list
plak history <sitio> show <id> [<ruta>]
plak history <sitio> diff <desde> <hasta|current> [<ruta>]
plak history <sitio> restore <id> <ruta> --yes [--background]
plak history <sitio> recover --yes
plak history <sitio> jobs
plak history <sitio> schedule hourly|daily --enable
plak history <sitio> schedule --disable
```

Versiona `wp-content` (`plugins/<slug>`, `themes/<slug>`, `mu-plugins/...`): solo ficheros, sin BD ni activaciones. Salida siempre JSON. `restore`/`recover` exigen `--yes` incluso con TTY.

```bash
plak history mi-sitio save --note antes-actualizar
plak history mi-sitio restore <id> plugins/mi-plugin --yes
```

## Migraciones

### `plak pull` · `plak push`

```bash
plak pull [<sitio>] [--yes] [--proxy-uploads]
plak push [<sitio>] [--yes]
```

Envían el motor Plak al remoto por SSH: no necesita internet ni URL pública, y el backup viaja por SSH. Antes de tocar la BD comprueban herramientas y cancelan con mensaje útil si falta alguna. `--proxy-uploads` (solo `pull`) excluye `uploads` del backup y sirve los remotos por proxy. Con sitio vinculado al panel, el destino se revalida primero (ver [Vincular y migrar](/cli/vincular)). Rechazan multisitio.

```bash
plak pull mi-sitio --yes
plak pull mi-sitio --yes --proxy-uploads
plak push mi-sitio --yes
```

## Remotos, hosts y claves

### `plak remote`

```bash
plak remote list [--managed] [--unmanaged] [--json]
plak remote add <nombre> --host <host> --user <usuario> [--port <puerto>] [--path <ruta>] [--identity <fichero>|--no-identity]
plak remote edit <nombre> [--newname N] [--host H] [--user U] [--port P] [--path RUTA] [--identity F|--no-identity]
plak remote delete <nombre> [--yes]
plak remote connect [nombre]
plak remote attach <remoto> <sitio> [--yes]
plak remote detach <sitio> [--yes]
```

`add` registra el host en `~/.ssh/config` y la ruta WordPress como `# plak-remote-path:` en el mismo bloque. Con `attach`, `push`/`pull` omiten sus preguntas. `connect` abre SSH en la ruta configurada. Todo admite banderas no interactivas (`plak remote help` tiene el detalle).

### `plak hosts`

```bash
plak hosts list
plak hosts add <ip> <dominio>
plak hosts delete <dominio> [--yes]
```

Crea copia de seguridad junto al archivo antes de escribir. En `/etc/hosts` suele requerir `sudo`.

### `plak sshkey`

```bash
plak sshkey list
plak sshkey view [clave-o-ruta]
plak sshkey create [nombre] [--yes]
plak sshkey delete [nombre] [--yes]
```

Sin nombre pregunta con `gum`; sin TTY, `delete` exige `--yes`.

## Servicios y configuración

| Comando | Uso | Efecto |
| --- | --- | --- |
| `enable` | `plak enable` | Arranca MariaDB, Mailpit y FrankenPHP/systemd (sudo en Linux) |
| `disable` | `plak disable` | Para los servicios sin tocar la configuración |
| `reload` | `plak reload` | Regenera Caddyfile y recarga; actualiza `/etc/hosts` si falta algo |
| `trust` | `plak trust` | Confía la CA local (ejecutar **sin** sudo; Caddy debe estar arriba) |
| `ports` | `plak ports [--http P] [--https P] [--skip-urls] [--dry-run] [--yes]` | Reconfigura puertos y migra URLs salvo `--skip-urls` |
| `memory` | `plak memory [set <valor>] [--yes]` | Muestra o sube `memory_limit` (`512M`, `2G`, `-1`) |
| `directive` | `plak directive <add\|update\|delete\|list> [sitio]` | Reglas Caddy en `~/Plak/App/directives/` (contenido por stdin sin TTY; `delete` admite `--force`) |
| `mappings` | `plak mappings <sitio> [add\|remove\|list] [dominio] [--json]` | Dominios extra por sitio (regenera Caddy + hosts) |
| `proxy` | `plak proxy <add\|list\|delete>` | Reverse proxies en `~/Plak/App/proxies/` (`add [<nombre> [<dominio> [<destino>]] [--no-tls] [--force]`) |

## Acceso en red

| Comando | Uso |
| --- | --- |
| `share` | `plak share [<sitio>] [--print-url] [--no-install]` (túnel temporal con `cloudflared`; `--print-url` imprime y sale, para agentes) |
| `lan` | `plak lan <enable\|disable\|status\|trust> [sitio]` (puertos desde 8443, anuncio mDNS) |
| `tailscale` | `plak tailscale <enable\|disable\|status>` (`enable [hostname]`, autodetecta sin TTY o pide hostname) |
| `wsl-hosts` | `plak wsl-hosts` (solo WSL: instrucciones PowerShell para el hosts de Windows) |

## Estado y mantenimiento

| Comando | Uso | Efecto |
| --- | --- | --- |
| `status` | `plak status [--json]` | Dependencias y rutas, solo lectura |
| `health` | `plak health [--json]` · `plak health opcache [--json]` · `plak health opcache set <dir>=<valor>... [--restart]` · `plak health http2 [--json]` | Diagnóstico read-only; `opcache set` escribe `php.ini` y solo reinicia con `--restart`; `http2` solo sondea negociación |
| `install` | `plak install [--yes]` | Instala la pila local (detalle en [Instalación](/cli/instalacion)) |
| `skill` | `plak skill install [codex\|claude-code\|opencode\|hermes\|pi\|global\|all]` | Instala la skill (detalle en [Instalación](/cli/instalacion)) |
| `upgrade` | `plak upgrade [--yes]` | Actualiza `plak`, FrankenPHP y Adminer contra sus releases |
| `version` | `plak version [--json]` | `plak v0.4.66` o JSON |
| `help` | `plak help` · `plak <comando> --help` | Ayuda general o del comando |
