# Visão geral

O `@tunnelhub/cli` é a ferramenta de linha de comando para fluxos de desenvolvimento e publicação de automações.

## Quando usar

Use a CLI para:

* autenticar na plataforma;
* listar ambientes, pacotes e automações;
* criar pacotes;
* criar automações com bootstrap de template;
* publicar deploys.

## Escopo atual da CLI

Os comandos públicos instalados hoje são:

* `login`
* `logout`
* `login-check`
* `list-environments`
* `list-packages`
* `create-package`
* `list-automations`
* `create-automation`
* `deploy-automation`

## Instalação

```bash
npm install -g @tunnelhub/cli
```

Pacote no npm: `https://www.npmjs.com/package/@tunnelhub/cli`

Depois da instalação, os dois comandos abaixo funcionam:

```bash
tunnelhub --help
th --help
```

## Fluxo de autenticação

O fluxo principal usa navegador e salva as credenciais localmente para reutilização e refresh automático.

```bash
tunnelhub login
```

Também existe fallback por usuário e senha:

```bash
tunnelhub login --password
```

## Como a CLI trabalha com ambientes

Comandos como `list-packages`, `create-package`, `list-automations`, `create-automation` e `deploy-automation` dependem de `--env`. Você pode informar nome ou UUID do ambiente.

Os comandos de listagem também aceitam `--json` quando você precisa integrar a saída em script.

## O que acontece ao criar uma automação

Ao executar `create-automation`, a CLI:

* consulta seus pacotes no ambiente escolhido;
* pede os dados da automação;
* cria a automação na plataforma;
* baixa um template oficial do GitHub;
* extrai esse template em uma nova pasta local;
* preenche o `service.uuid` no `tunnelhub.yml`.

## O que acontece no deploy

Ao executar `deploy-automation`, a CLI valida o `tunnelhub.yml`, verifica `package.artifact`, faz upload do artefato para S3 e solicita a criação do deploy.

Consulte [Autenticação e ambientes](https://docs.tunnelhub.io/cli/authentication-and-environments), [Comandos e referência](https://docs.tunnelhub.io/cli/commands) e [`tunnelhub.yml`](https://docs.tunnelhub.io/cli/tunnelhub-yml) para o contrato completo.
