# Início rápido

Confira versão e ajuda antes de verificar o cliente. `doctor --output-json` é um diagnóstico; confira campos e código de saída.

```bash
ml-cli --version
ml-cli doctor --output-json
ml-cli status
ml-cli env list --page-no 1 --page-size 20
ml-cli cloudphone list --page-no 1 --page-size 20
```

## Autenticação e porta

Quando necessário, forneça API ID e API Key a `login`. A chave Bearer da Local API é enviada separadamente nas chamadas. Os valores são exemplos. Prioridade: `--port` → `ML_PORT` → IPC.

```bash
ml-cli login --api-id YOUR_API_ID --api-key YOUR_API_KEY
export ML_API_KEY="YOUR_LOCAL_API_KEY"
ml-cli --port 40000 env list
```

```powershell
$env:ML_API_KEY = "YOUR_LOCAL_API_KEY"
ml-cli --port 40000 env list
```

## JSON, saída e códigos

`--json-data` (alias `--json`) fornece o objeto base; flags explícitos prevalecem. Os omitidos preservam o JSON. Booleanos de aplicativos exigem `true` ou `false` explícitos; `false` é preservado. Consulte os campos obrigatórios na ajuda.

```bash
ml-cli --format table env list
ml-cli --fail-on-business-error cloudphone info --id "$PHONE_ID"
ml-cli --verbose env list
ml-cli --quiet env list
ml-cli env list | jq ".data.dataList"
```

JSON é o padrão. `--format table` mostra uma visão resumida; use JSON para dados completos e pipelines. `--verbose` envia diagnósticos ao stderr e oculta chaves sensíveis conhecidas; `--quiet` suprime stdout de sucesso. São incompatíveis.

- `0`: conclusão normal. Sem verificação estrita, HTTP 2xx pode conter falha de negócio.
- `1`: `code` de negócio diferente de zero com `--fail-on-business-error`, ou operação não suportada, como `env arrange` no Linux.
- `2`: argumentos ou JSON inválidos, validação local, falhas de porta/conexão, HTTP não 2xx ou saída. Falhas de detecção ou integridade estrita do cliente também usam `2`; confira o estado.


## Tempos limite e diagnóstico

O timeout padrão é 15 segundos; `env core-download` usa 1810. `--timeout` prevalece. Use 30 segundos para abrir navegadores e 120 para abrir/ligar telefones.

IPC usa `/tmp/MoreLogin-cli` no macOS/Linux e `\\.\pipe\MoreLogin-cli` no Windows. Em `connect EPERM 127.0.0.1:<port>`, confira permissões locais do agente e o estado antes de iniciar novamente. Timeout deixa o resultado incerto; consulte antes de repetir escritas.