# Línea de comandos

> Usa proxyman-cli para controlar desde Terminal el proxy de depuración HTTP Proxyman para macOS: exporta e importa reglas, activa o desactiva herramientas y el proxy del sistema, exporta registros y gestiona certificados.

Proxyman para macOS incluye `proxyman-cli`, una herramienta de línea de comandos para controlar Proxyman desde Terminal y tus propios scripts ✅.

Puedes acceder a la herramienta en `/Applications/Proxyman.app/Contents/MacOS/proxyman-cli`

Para ver todos los comandos de la versión instalada, ejecuta:

```bash
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli --help
```

## 1. Exportar la configuración de Proxyman {#1-export-proxyman-config}

Exporta las reglas de todas las herramientas de depuración, como SSL Proxying List, Breakpoint, Map Local, Scripting, Block List, Allow List, Reverse Proxy y Network Conditions.

```bash
$ /Applications/Proxyman.app/Contents/MacOS/proxyman-cli export -h

OVERVIEW: Export all debugging tools rules (Breakpoint, SSL Pinning, Map Local, Map
Remote, Scripting, etc).

USAGE: proxyman-cli export [--mode <mode>] --output <output>

OPTIONS:
  -m, --mode <mode>       Export Mode (all = "All debugging tools's rules", enabledRules
                          = "Only enabled rules"). (default: all)
  -o, --output <output>   A Output file to save the config to.
  --version               Show the version.
  -h, --help              Show help information.
```

> **Nota:** De forma predeterminada, el comando `export` exporta todas las reglas. Para excluir reglas concretas, desmarca la columna "Enabled" en cada herramienta de depuración y usa `-m enabledRules`.

### Por ejemplo: {#for-example}

* Exporta las reglas de todas las herramientas de depuración:

`$ /Applications/Proxyman.app/Contents/MacOS/proxyman-cli export -o ~/Desktop/data.json`

* Exporta solo las reglas activadas:

`$ /Applications/Proxyman.app/Contents/MacOS/proxyman-cli export -m enabledRules -o ~/Desktop/data.json`

## 2. Importar la configuración de Proxyman {#2-import-proxyman-config}

Importa las reglas de las herramientas de depuración de Proxyman que hayas exportado con el comando export.

```bash
$ /Applications/Proxyman.app/Contents/MacOS/proxyman-cli import -h

OVERVIEW: Import config to Proxyman.

USAGE: proxyman-cli import [--mode <mode>] --input <input>

OPTIONS:
  -m, --mode <mode>       Import Mode (append = "Append to the existing rules"),
                          override = "Import and Replace all existing rules". (default:
                          append)
  -i, --input <input>     A input file to import.
  --version               Show the version.
  -h, --help              Show help information.
```

> **Nota:** De forma predeterminada, las reglas importadas nuevas se añaden a las reglas de depuración existentes. Para reemplazar todas las reglas, usa `-m override`

### Por ejemplo: {#for-example-1}

* Importa todas las reglas de depuración añadiéndolas:

```bash
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli import -i ~/Desktop/data.json
```

* Importa, pero reemplaza todas mis reglas existentes:

```bash
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli import -m override -i ~/Desktop/data.json
```

## 3. Activar o desvincular la licencia {#3-activateunlink-license}

Consulta la página sobre licencias para ver los comandos que activan y desvinculan una licencia.

- [Licencia](https://proxyman.com/docs/es/license)

## 4. Activar o desactivar el proxy HTTP del sistema {#4-toggle-http-system-proxy}

A partir de Proxyman 4.8.0, puedes activar o desactivar el System Proxy de macOS desde la línea de comandos. La [extensión de Raycast](https://proxyman.com/docs/es/raycast) lo usa.

```bash
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli proxy on
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli proxy off
```

Referencia: [https://github.com/ProxymanApp/Proxyman/issues/1626#issuecomment-1545862020](https://github.com/ProxymanApp/Proxyman/issues/1626#issuecomment-1545862020)

## 5. Borrar la sesión {#5-clear-session}

* Puedes borrar la sesión actual desde la línea de comandos. Disponible desde Proxyman 4.12.0.

```bash
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli clear-session
```

## 6. Activar o desactivar las herramientas de depuración {#6-toggle-debugging-tools}

* Activa o desactiva las herramientas Breakpoint, Map Local y Scripting desde la línea de comandos. Disponible desde Proxyman 4.12.0.

```bash
# Scripting
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli scripting on
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli scripting off

# Map Local
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli maplocal on
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli maplocal off

# Breakpoint
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli breakpoint on
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli breakpoint off
```

* Desde Proxyman para macOS 6.3.0, también puedes activar o desactivar estas herramientas de la misma forma: `map-remote`, `block-list`, `allow-list`, `reverse-proxy`, `network-condition`, `no-caching` y `dns-spoofing`.
* Usa `open` en lugar de `on` u `off` para abrir la ventana de la herramienta, por ejemplo `proxyman-cli map-remote open`. `no-caching` solo admite `on` y `off`.
* Proxyman debe estar en ejecución para que estos comandos funcionen.

```bash
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli map-remote on
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli block-list off
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli network-condition open
```

## 7. Instalar la Helper Tool del proxy desde la línea de comandos {#7-install-the-proxy-helper-tool-by-command-line}

Desde Proxyman para macOS 4.12.0, puedes instalar la Helper Tool sin la interfaz gráfica.

```bash
sudo /Applications/Proxyman.app/Contents/MacOS/proxyman --install-privileged-components
```

## 8. Exportar el registro de Proxyman {#8-export-proxyman-log}

**Proxyman para macOS v5.11.0+ ahora admite:**

* Exportar todo (formato ProxymanSession)

```bash
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli export-log -m all -o "~/desktop/output"
```

* Exportar dominios concretos (solo el host, sin esquema, sin puerto, sin rutas y sin parámetros de consulta)

```bash
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli export-log -m domains -o "~/desktop/output" --domains 'api.twitter.com' --domains 'www.producthunt.com'
```

**Desde Proxyman para macOS 5.20.0+, puedes exportar en formato Raw o HAR.**

* Exportar todo: formato RAW de solicitud y respuesta

```bash
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli export-log -m all -o "~/desktop/output" --format raw
```

* Exportar todo: formato HAR

```bash
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli export-log -m all -o "~/desktop/output" --format har
```

* Exportar dominios concretos: formato RAW de solicitud y respuesta

```bash
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli export-log -m domains -o "~/desktop/output" --domains 'api.twitter.com' --domains 'www.producthunt.com' --format raw
```

* Exportar dominios concretos: formato HAR

```bash
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli export-log -m domains -o "~/desktop/output" --domains 'api.twitter.com' --domains 'www.producthunt.com' --format har
```

**Desde Proxyman para macOS 6.2.0+, puedes añadir `--since <flow_id>` para exportar solo los flujos desde ese ID de flujo en adelante (el flujo con ese ID se incluye). Funciona con todos los formatos de exportación.**

Los formatos admitidos para `--format` son `proxymansession` (predeterminado), `har` y `raw`.

## 9. Importar un certificado raíz personalizado {#9-import-custom-root-certificate}

* ✅ Importa un certificado raíz personalizado en formato p12 en Proxyman
* Confía automáticamente en el certificado en el llavero del sistema (requiere sudo)
* Disponible desde Proxyman para macOS 5.15.0 o posterior

### Instalar y confiar {#install-and-trust}

```bash
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli install-root-cert <certificate_path> --password <your_cert_password> --trust
```

### Instalar sin confiar (es posible que tengas que confiar en él manualmente en el llavero) {#install-but-not-trust-you-might-need-to-trust-it-manually-in-the-keychain}

```bash
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli install-root-cert <certificate_path> --password <your_cert_password>
```

## 10. Exportar la IP y el puerto actuales {#10-export-current-ip-and-port}

* Disponible desde Proxyman para macOS 6.7.0 o posterior
* Obtiene la IP y el puerto de escucha actuales en formato JSON

<pre class="language-bash"><code class="lang-bash"><strong>/Applications/Proxyman.app/Contents/MacOS/proxyman-cli proxy-host
</strong></code></pre>

La salida tiene un campo `ip` y un campo `port`, por ejemplo `{"ip":"192.168.1.10","port":9090}`. Si Proxyman solo escucha en localhost, la IP es `127.0.0.1`.

## 11. Añadir, eliminar y reemplazar los certificados personalizados (cliente y servidor)  {#11-add-remove-replace-the-custom-certificates-client-and-server-}

* Disponible en Proxyman para macOS 6.10.0 o posterior ✅
* Admite certificados P12 con contraseña
* En los certificados de cliente, `--port` usa `443` de forma predeterminada

```bash
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli custom-cert add server ~/Desktop/mycert.p12 --password 123

/Applications/Proxyman.app/Contents/MacOS/proxyman-cli custom-cert add client ~/Desktop/mycert.p12 --password 123 --host myserver.com --port 443

/Applications/Proxyman.app/Contents/MacOS/proxyman-cli custom-cert replace server ~/Desktop/mycert.p12 --password 123 --name mycert.p12

/Applications/Proxyman.app/Contents/MacOS/proxyman-cli custom-cert replace client ~/Desktop/mycert.p12 --password 123 --host myserver.com --port 443

/Applications/Proxyman.app/Contents/MacOS/proxyman-cli custom-cert remove server --name mycert.p12

/Applications/Proxyman.app/Contents/MacOS/proxyman-cli custom-cert remove client --host myserver.com --port 443
```

## 12. CLI de External Proxy {#12-external-proxy-cli}

* Proxyman para macOS 6.12.0 o posterior ✅

### Activar {#enable}

Activa External Proxy sin cambiar la configuración guardada:

```bash
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli external-proxy enable
```

* Activa y configura un modo de proxy:

```bash
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli external-proxy enable http --host proxy.example.com --port 8080
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli external-proxy enable https --host proxy.example.com --port 8443
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli external-proxy enable socks --host proxy.example.com --port 1080
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli external-proxy enable pac --url https://example.com/proxy.pac
```

### Desactivar {#disable}

Desactiva toda la función External Proxy:

```bash
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli external-proxy disable
```

* Desactiva solo un modo de proxy:

```bash
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli external-proxy disable http
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli external-proxy disable https
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli external-proxy disable socks
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli external-proxy disable pac
```

### Abrir los ajustes {#open-the-settings}

Abre la ventana de Settings de External Proxy en Proxyman:

```bash
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli external-proxy open
```

## 13. CRUD para todas las herramientas de depuración {#13-crud-for-all-debugging-tools}

> **Consejo:** Solo disponible en Proxyman para macOS 6.14.0 o posterior

### Herramientas admitidas {#supported-tools}

`block-list`, `allow-list`, `ssl-proxying`, `map-local`, `map-remote`, `breakpoint`, `scripting`, `network-condition`, `reverse-proxy`, `protobuf` y `dns-spoofing`.

### Comandos habituales {#common-commands}

Sustituye `<tool>` por una de las herramientas admitidas y `<id>` por el ID de una regla obtenido con `list` o `get`.

```bash
# Read rules
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules <tool> list
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules <tool> list --enabled true
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules <tool> get <id>

# Change one rule
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules <tool> update <id> --name "New name"
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules <tool> delete <id>

# Turn a whole tool on or off
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules <tool> enable
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules <tool> disable

# Turn one rule on or off
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules <tool> enable <id>
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules <tool> disable <id>
```

`enable <id>` también activa su herramienta cuando hace falta. Desactivar una herramienta mantiene la configuración de activación de cada regla. Las actualizaciones solo cambian los campos que envías; delete elimina la regla de inmediato.

`map-local`, `map-remote`, `breakpoint` y `scripting` también tienen un comando `folders` para gestionar carpetas de reglas, y sus comandos `list` y `create` aceptan `--folder <name or id>`. Ejecuta `/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules map-local folders --help` para ver las opciones.

### Crear una regla {#create-a-rule}

Estos son los comandos de creación más sencillos. Las opciones opcionales permiten definir más campos. Ejecuta `/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules <tool> create --help` para verlas.

```bash
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules block-list create https://ads.example.com/*
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules allow-list create https://api.example.com/*
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules ssl-proxying create '*.example.com' --list include
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules map-local create https://api.example.com/* --path ./response.json
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules map-remote create https://old.example.com/* https://new.example.com/
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules breakpoint create https://api.example.com/* --phase both
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules scripting create https://api.example.com/* --script-file ./rule.js
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules network-condition create --profile 3g
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules reverse-proxy create https://upstream.example.com --local-port 8080
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules protobuf create https://api.example.com/* --request-type package.Request
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules dns-spoofing create example.com 127.0.0.1
```

Entre las opciones habituales de regla están `--name`, `--enabled true|false`, `--method`, `--match wildcard|regex` y `--include-subpaths true|false`, cuando la herramienta las admite. Los nombres son opcionales. Si omites un valor opcional, Proxyman usa el valor predeterminado de esa herramienta.

### Entrada JSON {#json-input}

Para crear y actualizar, usa `--input <file>` para enviar un objeto JSON. Usa `--input -` para leer JSON desde la entrada estándar. No combines `--input` con opciones de campo.

```bash
printf '%s' '{"url":"https://api.example.com/*","name":"Local API","enabled":true}' \
  | /Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules map-local create --input -

/Applications/Proxyman.app/Contents/MacOS/proxyman-cli rules map-local update <id> --input ./map-local-change.json
```

Si Proxyman está cerrado, el comando devuelve JSON con `ok: false` y el código de error `app_not_running`. Los errores de entrada usan el código de salida `2`; los demás errores usan el código de salida `1`.

## 14. Políticas de la empresa {#14-company-policy}

### MCP (Proxyman para macOS 6.15.0+) {#mcp-proxyman-macos-6150}

* Activa o desactiva la función [MCP](https://proxyman.com/docs/es/mcp), incluso cuando Proxyman está cerrado
* Si MCP se desactiva desde la línea de comandos, los usuarios no podrán volver a activarlo en Settings

Desactiva MCP y bloquea el interruptor de Settings:

```
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli mcp off
```

Activa MCP y desbloquea el interruptor:

```
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli mcp on
```

## 15. Versión de HTTP {#15-http-version}

Consulta o cambia la política global de [HTTP/2](https://proxyman.com/docs/es/basic-features/http2). Mantén Proxyman abierto; estos comandos funcionan incluso cuando MCP está desactivado.

```bash
# Read the current policy
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli http-version status

# Prefer HTTP/2, with HTTP/1.1 fallback
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli http-version set prefer_http2

# Turn the HTTP/2 preference off
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli http-version set http1_only
```

HTTP/2 está desactivado de forma predeterminada. Cambiar la política cierra las conexiones HTTP, WebSocket y Server-Sent Events activas y actualiza el cliente Compose. Establecer de nuevo la política actual deja las conexiones abiertas.

La política no indica qué protocolo usó una solicitud. Revisa la solicitud capturada y la conexión upstream. Con la captura de Network Extension, un cliente que solo ofrece `h2` mantiene HTTP/2 incluso con `http1_only`.

Ambos comandos devuelven JSON. Status incluye `httpVersionMode` y `http2Enabled`; `set` también incluye `previousMode` y `changed`. Por ejemplo, al cambiar de HTTP/1 a la preferencia de HTTP/2 se devuelve:

```json
{
  "success": true,
  "data": {
    "httpVersionMode": "prefer_http2",
    "http2Enabled": true,
    "previousMode": "http1_only",
    "changed": true
  }
}
```

## 16. Network Extension {#16-network-extension}

Gestiona la instalación y la captura de [Network Extension](https://proxyman.com/docs/es/advanced-features/network-extension) desde la línea de comandos. Mantén Proxyman abierto; no es necesario activar MCP.

> **Nota:** Network Extension requiere la edición directa de Proxyman y macOS 26 o posterior. La instalación y la captura requieren Proxyman PRO. El estado y la desinstalación siguen disponibles sin PRO. Setapp no admite Network Extension.

```bash
# Read installation and capture status without changing either
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli network-extension status

# Install or update the bundled extension without enabling capture
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli network-extension install

# Enable capture, installing the extension if necessary
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli network-extension enable

# Stop capture and keep the extension installed
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli network-extension disable

# Retry requested installation or capture after resolving an error
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli network-extension retry

# Stop capture and remove the extension and its saved network configurations
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli network-extension uninstall
```

`install` deja la captura desactivada si ya estaba desactivada. `enable` inicia la captura y desactiva el proxy del sistema basado en la Helper Tool. No se puede activar el proxy del sistema mientras la captura de Network Extension está activa.

`disable` y `uninstall` cierran las conexiones existentes a través del proveedor, incluidas las conexiones TCP directas. Después, el proxy del sistema se rige por **Auto Override System Proxy Settings at Launch**.

macOS puede pedir una aprobación o un reinicio. Completa esos pasos y, después, vuelve a ejecutar `network-extension status`. Un comando correcto significa que la solicitud se aceptó; no significa que la instalación o la captura hayan terminado. Si una operación está ocupada o agota el tiempo de espera, consulta el estado antes de repetirla.

El descifrado HTTPS sigue requiriendo un certificado de Proxyman de confianza y reglas de SSL Proxying coincidentes. Vuelve a conectar los clientes para capturar las conexiones recién abiertas.

### Leer el estado JSON {#read-the-json-status}

| Campo | Significado |
| --- | --- |
| `supported` | Indica si esta app y la versión de macOS admiten Network Extension. Los equipos no compatibles devuelven `false` y rechazan los cambios. |
| `installed`, `installedBuild`, `bundledBuild` | Instalación notificada por macOS y la compilación incluida con la app en ejecución. |
| `systemExtensionEnabled` | Indica si macOS informa de que la extensión instalada está activada. |
| `proAvailable` | Indica si Proxyman PRO está disponible para la instalación y la captura. |
| `captureEnabled` | Indica si se ha solicitado la captura. |
| `captureActive` | Indica si el proveedor ha confirmado la sesión de captura. |
| `state`, `message` | Estado actual de la app y una explicación legible. |
| `operationPending` | Indica si hay una instalación, eliminación o inicio de captura en curso. |
| `approvalRequired`, `restartRequired` | Indica si hace falta una aprobación o un reinicio. |
| `removalPending` | Indica si macOS todavía tiene registros de la extensión pendientes de eliminar, incluso después de reiniciar la app. |
| `systemProxyEnabled` | Indica si Proxyman informa de que el proxy del sistema de macOS está activado. |

Los equipos compatibles devuelven estos campos dentro de `data`. `disable` no espera a una consulta de instalación, así que `installed` es `null` en su respuesta. Usa `status` para hacer una comprobación actualizada de la instalación.

### Salida JSON y códigos de salida {#json-output-and-exit-codes}

Los grupos de comandos `http-version` y `network-extension` devuelven una respuesta JSON con `success`, `data` cuando esté disponible, y `error` si falla.

* `0`: La lectura se realizó correctamente o el cambio se aceptó. Comprueba el estado de Network Extension para saber si ha terminado.
* `1`: El comando falló, Proxyman está cerrado o se agotó el tiempo de espera del comando.
* `64`: Argumentos de línea de comandos no válidos. Los errores del analizador y la ayuda usan texto sin formato.

Comprueba la sintaxis admitida por tu app instalada con:

```bash
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli http-version --help
/Applications/Proxyman.app/Contents/MacOS/proxyman-cli network-extension --help
```
