# Referencia de CLI

El `clore` La CLI te permite gestionar el mercado de GPU de Clore.ai directamente desde tu terminal: busca GPUs, despliega instancias, conéctate por SSH y gestiona pedidos sin escribir código.

***

## Instalación

```bash
pip install clore-ai
```

Esto instala tanto el SDK de Python como el `clore` comando CLI.

**Requisitos:** Python 3.9+

***

## Configuración

### Establece tu clave API

Obtén tu clave desde el [panel de Clore.ai](https://clore.ai) → **API** sección, luego configura:

```bash
clore config set api_key TU_CLAVE_API
```

Esto guarda la clave en `~/.clore/config.json`.

### O usa una variable de entorno

```bash
export CLORE_API_KEY=tu_clave_api_aqui
```

### Ver configuración actual

```bash
# Mostrar toda la configuración
clore config show

# Obtener un valor específico
clore config get api_key
```

***

## Comandos

| Comando                               | Descripción                                  |
| ------------------------------------- | -------------------------------------------- |
| `clore search`                        | Buscar en el mercado de GPU                  |
| `clore deploy <server_id>`            | Crear un nuevo pedido (alquilar un servidor) |
| `clore orders`                        | Listar tus pedidos                           |
| `clore cancel <order_id>`             | Cancelar un pedido                           |
| `clore ssh <order_id>`                | Conectarse por SSH a un pedido activo        |
| `clore wallets`                       | Mostrar saldos de billetera                  |
| `clore servers`                       | Listar tus servidores alojados               |
| `clore server-config <name>`          | Obtener configuración del servidor           |
| `clore spot <server_id>`              | Ver el mercado spot de un servidor           |
| `clore spot-price <order_id> <price>` | Establecer precio spot                       |
| `clore config set <key> <value>`      | Establecer un valor de configuración         |
| `clore config get <key>`              | Obtener un valor de configuración            |
| `clore config show`                   | Mostrar toda la configuración                |
| `clore --version`                     | Mostrar versión                              |

***

## Uso detallado

### `clore search`

Busca en el mercado de GPU con filtros y ordenamiento.

```bash
# Listar todos los servidores disponibles (ordenados por precio, top 20)
clore search

# Filtrar por modelo de GPU
clore search --gpu "RTX 4090"

# Filtrar por GPU y precio máximo
clore search --gpu "RTX 4090" --max-price 5.0

# Equipos con múltiples GPUs
clore search --min-gpu 4

# Ordenar por cantidad de GPU, mostrar top 10
clore search --sort gpu --limit 10

# Combinar filtros
clore search --gpu "A100" --min-ram 128 --max-price 10.0 --sort price --limit 5
```

**Opciones:**

| Opción        | Tipo   | Descripción                                       |
| ------------- | ------ | ------------------------------------------------- |
| `--gpu`       | texto  | Filtrar por modelo de GPU (p. ej. `"RTX 4090"`)   |
| `--min-gpu`   | int    | Cantidad mínima de GPUs                           |
| `--min-ram`   | float  | RAM mínima en GB                                  |
| `--max-price` | float  | Precio máximo en USD/hora                         |
| `--sort`      | opción | Ordenar por: `precio` (por defecto), `gpu`, `ram` |
| `--limit`     | int    | Máx. resultados a mostrar (por defecto: 20)       |

**Ejemplo de salida:**

```
🔍 Mercado de GPU
┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━┓
┃ ID  ┃ GPU                             ┃ Cant. ┃ RAM (GB) ┃ CPU                          ┃ Precio/h (USD) ┃ Ubicación ┃
┡━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━┩
│ 123 │ 1x NVIDIA GeForce RTX 4090      │     1 │    64.0  │ AMD Ryzen 9 5900X            │       $0.3200 │ EE. UU.  │
│ 456 │ 2x NVIDIA GeForce RTX 4090      │     2 │   128.0  │ Intel Core i9-13900K         │       $0.5800 │ DE       │
└─────┴─────────────────────────────────┴───────┴──────────┴──────────────────────────────┴───────────────┴──────────┘
Mostrando 2 servidores
```

***

### `clore deploy <server_id>`

Crea un nuevo pedido para alquilar un servidor GPU.

```bash
# Pedido bajo demanda con SSH
clore deploy 123 \
  --image cloreai/ubuntu22.04-cuda12 \
  --type on-demand \
  --currency bitcoin \
  --ssh-password MySecurePass123 \
  --port 22:tcp \
  --port 8888:http

# Pedido spot
clore deploy 123 \
  --image cloreai/pytorch \
  --type spot \
  --currency bitcoin \
  --spot-price 0.000005 \
  --port 22:tcp

# Con variables de entorno
clore deploy 123 \
  --image cloreai/ubuntu22.04-cuda12 \
  --type on-demand \
  --currency bitcoin \
  --ssh-password MyPass123 \
  --port 22:tcp \
  --env WANDB_API_KEY=your_key \
  --env HF_TOKEN=your_token
```

**Argumentos:**

| Argumento   | Descripción                                            |
| ----------- | ------------------------------------------------------ |
| `server_id` | ID del servidor a alquilar (obtener de `clore search`) |

**Opciones:**

| Opción           | Tipo   | Requerido | Descripción                                               |
| ---------------- | ------ | --------- | --------------------------------------------------------- |
| `--image`        | texto  | Sí        | Imagen Docker (p. ej. `cloreai/ubuntu22.04-cuda12`)       |
| `--type`         | opción | Sí        | `on-demand` o `spot`                                      |
| `--currency`     | texto  | Sí        | Moneda de pago (p. ej. `bitcoin`)                         |
| `--ssh-password` | texto  | No        | Contraseña SSH (alfanumérica, máximo 32 caracteres)       |
| `--ssh-key`      | texto  | No        | Clave pública SSH                                         |
| `--port`         | texto  | No        | Mapeo de puertos (repetible), formato: `PUERTO:PROTOCOLO` |
| `--env`          | texto  | No        | Variable de entorno (repetible), formato: `CLAVE=VALOR`   |
| `--spot-price`   | float  | No        | Precio spot por día (requerido para pedidos spot)         |

***

### `clore orders`

Lista tus pedidos activos.

```bash
# Pedidos activos
clore orders

# Incluir pedidos completados/expirados
clore orders --completed
```

**Opciones:**

| Opción        | Descripción                           |
| ------------- | ------------------------------------- |
| `--completed` | Incluir pedidos completados/expirados |

**Ejemplo de salida:**

```
📦 Mis Pedidos
┏━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ID ┃ Server ID ┃ Tipo      ┃ Estado ┃ Imagen                             ┃ IP                      ┃
┡━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ 38 │ 6         │ on-demand │ Activo │ cloreai/ubuntu22.04-cuda12        │ n1.c1.clorecloud.net    │
└────┴───────────┴───────────┴────────┴───────────────────────────────────┴─────────────────────────┘
Total: 1 pedido(s)
```

***

### `clore cancel <order_id>`

Cancelar un pedido activo.

```bash
# Cancelar pedido
clore cancel 38

# Cancelar con informe de incidencia
clore cancel 38 --issue "La GPU se estaba sobrecalentando"
```

**Argumentos:**

| Argumento  | Descripción              |
| ---------- | ------------------------ |
| `order_id` | ID del pedido a cancelar |

**Opciones:**

| Opción    | Descripción                                  |
| --------- | -------------------------------------------- |
| `--issue` | Razón de cancelación / informe de incidencia |

***

### `clore ssh <order_id>`

Conexión automática vía SSH a un pedido en ejecución. La CLI resuelve el nombre de host y el puerto a partir de los detalles de tu pedido.

```bash
# Conectar como root (por defecto)
clore ssh 38

# Conectar como otro usuario
clore ssh 38 --user ubuntu
```

**Argumentos:**

| Argumento  | Descripción                     |
| ---------- | ------------------------------- |
| `order_id` | ID del pedido al que conectarse |

**Opciones:**

| Opción   | Predeterminado | Descripción           |
| -------- | -------------- | --------------------- |
| `--user` | `root`         | Nombre de usuario SSH |

***

### `clore wallets`

Muestra tus saldos de billetera y direcciones de depósito.

```bash
clore wallets
```

**Ejemplo de salida:**

```
💰 Saldos de Billetera
┏━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Moneda           ┃ Saldo        ┃ Dirección de Depósito                     ┃
┡━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ bitcoin          │ 0.00153176   │ tb1q6erw7v02t7hakgmlcl4wfnlykzqj05alndruwr │
│ CLORE-Blockchain │ 150.00000000 │ cLr1q8x...                                │
└──────────────────┴──────────────┴───────────────────────────────────────────┘
```

***

### `clore servers`

Lista los servidores que estás ofreciendo en el mercado.

```bash
clore servers
```

***

### `clore server-config <name>`

Obtén la configuración de un servidor específico que alojas.

```bash
clore server-config "MyGPU"
```

**Ejemplo de salida:**

```
Servidor: MyGPU
ID: 42
Conectado: True
En línea: True
Visibilidad: público
Duración mínima de alquiler: 72
GPUs: NVIDIA GeForce RTX 4090
Precio On-Demand (USD): $0.35
Precio Spot (USD): $0.18
CPU: AMD Ryzen 9 5900X Procesador de 12 núcleos
RAM: 64.0 GB
GPU: 1x NVIDIA GeForce RTX 4090
```

***

### `clore spot <server_id>`

Ver las ofertas actuales del mercado spot para un servidor.

```bash
clore spot 6
```

**Ejemplo de salida:**

```
📊 Mercado Spot - Servidor 6
┏━━━━━━━━━━┳━━━━━━━━━━━┓
┃ ID Pedido ┃ Precio     ┃
┡━━━━━━━━━━╇━━━━━━━━━━━┩
│ 39       │ 4.2e-06   │
└──────────┴───────────┘
```

***

### `clore spot-price <order_id> <price>`

Actualiza el precio de tu oferta en el mercado spot.

```bash
clore spot-price 39 0.000003
```

> **Nota:** Solo puedes bajar los precios spot una vez cada 600 segundos y en un tamaño de paso limitado.

***

### `clore config`

Gestionar la configuración de la CLI.

```bash
# Establecer la clave API
clore config set api_key TU_CLAVE_API

# Obtener un valor
clore config get api_key

# Mostrar toda la configuración
clore config show
```

La configuración se almacena en `~/.clore/config.json`.

***

## Flujos de trabajo

### Buscar → Alquilar → SSH → Cancelar

Un flujo de trabajo típico de extremo a extremo:

```bash
# 1. Encontrar una RTX 4090 por debajo de $5/hora
clore search --gpu "RTX 4090" --max-price 5.0 --sort price --limit 5

# 2. Desplegar en el servidor más barato (p. ej. ID 123)
clore deploy 123 \
  --image cloreai/ubuntu22.04-cuda12 \
  --type on-demand \
  --currency bitcoin \
  --ssh-password MyPass123 \
  --port 22:tcp \
  --port 8888:http

# 3. Comprobar el estado de tu pedido
clore orders

# 4. Conectarte por SSH a la instancia (p. ej. ID de pedido 456)
clore ssh 456

# 5. Cuando termines, cancela el pedido
clore cancel 456
```

### Monitorea los saldos antes de alquilar

```bash
# Comprueba que tienes fondos suficientes
clore wallets

# Buscar y alquilar
clore search --gpu "A100" --sort price --limit 3
clore deploy 789 \
  --image cloreai/ubuntu22.04-cuda12 \
  --type on-demand \
  --currency bitcoin \
  --ssh-password SecurePass \
  --port 22:tcp
```

### Flujo de trabajo del mercado spot

```bash
# 1. Comprueba las ofertas spot para un servidor
clore spot 6

# 2. Crea un pedido spot
clore deploy 6 \
  --image cloreai/pytorch \
  --type spot \
  --currency bitcoin \
  --spot-price 0.000005 \
  --ssh-password MyPass123 \
  --port 22:tcp

# 3. Ajusta tu precio spot
clore spot-price 39 0.000003
```

### Gestión del alojamiento de servidores

```bash
# Ver tus servidores
clore servers

# Comprobar la configuración de un servidor
clore server-config "MyGPU"
```

***

## Próximos pasos

* [**SDK de Python**](https://docs.clore.ai/clore.ai/clore.ai-eng-es/desarrolladores/python-sdk) — Automatiza flujos de trabajo con Python
* [**REST API**](https://docs.clore.ai/clore.ai/clore.ai-eng-es/para-anfitriones/api) — Documentación de la API en bruto
* [**On-Demand vs Spot**](https://docs.clore.ai/clore.ai/clore.ai-eng-es/para-arrendatarios/on-demand-vs-spot) — Comprender los modelos de precios
