> ## Documentation Index
> Fetch the complete documentation index at: https://chatcli.edilsonfreitas.com/llms.txt
> Use this file to discover all available pages before exploring further.

# One-Shot, Pipes e Automação

> Use o ChatCLI em scripts, pipelines CI/CD e automações com o modo one-shot e pipes de stdin.

O modo one-shot do ChatCLI permite executar prompts em uma única linha, ideal para scripts, pipelines CI/CD e automações.

## Modo One-Shot básico

Use a flag `-p` para enviar um prompt e sair imediatamente:

```bash theme={"system"}
chatcli -p "Explique rapidamente este repositório."
```

Todas as features de contexto funcionam dentro do prompt:

```bash theme={"system"}
chatcli -p "@git @env Monte um release note enxuto."
chatcli -p "@file ./src --mode summary Faça um panorama da arquitetura."
```

***

## Pipes e stdin

O ChatCLI aceita entrada via pipe, combinando a saída de outros comandos com seu prompt:

```bash theme={"system"}
# Analisar diff do Git
git diff | chatcli -p "Resuma as mudanças e liste possíveis impactos."

# Diagnosticar erros
cat error.log | chatcli -p "Explique a causa raiz e sugira uma solução."

# Analisar saída de comandos
kubectl get pods -n production | chatcli -p "Quais pods estão com problemas?"

# Revisar código
cat src/auth.go | chatcli -p "Revise este código e aponte vulnerabilidades."
```

***

## Flags disponíveis

| Flag                | Descrição                                           | Exemplo               |
| ------------------- | --------------------------------------------------- | --------------------- |
| `-p`, `--prompt`    | Texto a enviar para o LLM                           | `-p "Explique isso"`  |
| `--provider`        | Sobrescreve o provedor de IA                        | `--provider CLAUDEAI` |
| `--model`           | Sobrescreve o modelo                                | `--model gpt-4o`      |
| `--max-tokens`      | Limite de tokens na resposta                        | `--max-tokens 1000`   |
| `--timeout`         | Timeout da chamada (duração Go)                     | `--timeout 30s`       |
| `--no-anim`         | Desabilita animações (útil em scripts)              | `--no-anim`           |
| `--agent-auto-exec` | Executa automaticamente o primeiro comando sugerido | `--agent-auto-exec`   |
| `--realm`           | Realm/tenant para StackSpot                         | `--realm meu-tenant`  |
| `--agent-id`        | Agent ID para StackSpot                             | `--agent-id xxx`      |

***

## Modo Agente One-Shot

Combine `/agent` no prompt para delegar tarefas:

```bash theme={"system"}
# Dry-run: apenas sugere o comando e sai
chatcli -p "/agent liste todos os arquivos .go neste diretório"

# Execução automática: roda o primeiro comando seguro
chatcli -p "/agent crie um arquivo chamado test_file.txt" --agent-auto-exec
```

<Warning>
  Com `--agent-auto-exec`, comandos perigosos são bloqueados automaticamente. Apenas comandos considerados seguros serão executados.
</Warning>

***

## Exemplos de automação

### Gerar release notes automaticamente

```bash theme={"system"}
#!/bin/bash
chatcli -p "@git Monte release notes detalhadas para a última tag." \
  --provider CLAUDEAI \
  --no-anim > RELEASE_NOTES.md
```

### Revisar PR no CI

```bash theme={"system"}
#!/bin/bash
git diff main...HEAD | chatcli -p "Revise este diff. Liste problemas de segurança, bugs potenciais e sugestões." \
  --no-anim \
  --max-tokens 2000
```

### Analisar logs em cron job

```bash theme={"system"}
#!/bin/bash
tail -100 /var/log/nginx/error.log | chatcli -p "Resuma os erros e sugira ações corretivas." \
  --no-anim >> /var/log/ai-analysis.log
```

### One-shot com provedor específico

```bash theme={"system"}
chatcli -p "@file ./src --mode summary Descreva a arquitetura" \
  --provider STACKSPOT \
  --agent-id "seu-id-de-agente"
```

***

## Dicas

<Tip>
  Crie um alias no seu shell para acesso rápido: `alias c='chatcli'` e `alias ai='chatcli -p'`. Depois use: `ai "Explique o que faz o comando: iptables -t nat -L"`
</Tip>

* Use `--no-anim` em **todos** os scripts para evitar caracteres de escape na saída
* Combine com `>` para redirecionar a saída para arquivos
* Use `--timeout` para evitar que scripts fiquem travados esperando resposta
* Aspas duplas são importantes: `chatcli -p "texto com @file e @git"` (protege contra interpretação do shell)
