> ## 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.

# Adicionando Contexto (@ Comandos)

> Aprenda a usar @file, @git, @command e @env para dar ao ChatCLI consciência total do seu ambiente de trabalho.

A verdadeira força do **ChatCLI** reside em sua capacidade de entender o contexto em que você está trabalhando. Os comandos `@` coletam informações do seu sistema e as anexam ao prompt, permitindo respostas precisas e relevantes.

***

## `@file`: Contexto de Código

O comando mais essencial para desenvolvedores. Envia o conteúdo de arquivos ou a estrutura de diretórios inteiros para análise.

```bash theme={"system"}
@file ./src/database/connection.go me explique como a conexão é feita.
```

### Modos de processamento

<Tabs>
  <Tab title="full">
    **Cenário:** Análise profunda de um arquivo ou componente pequeno.

    Envia o conteúdo completo de todos os arquivos, respeitando um limite de tamanho.

    ```bash theme={"system"}
    @file db.go explique está query
    ```
  </Tab>

  <Tab title="summary">
    **Cenário:** Entender a arquitetura de um projeto desconhecido.

    Envia uma árvore de arquivos e metadados (tamanhos, tipos), **sem** o código.

    ```bash theme={"system"}
    @file . me dê um overview da arquitetura
    ```
  </Tab>

  <Tab title="chunked">
    **Cenário:** Análise completa de uma base de código grande.

    Divide o projeto em "pedaços" (chunks) gerenciáveis. Use `/nextchunk` para navegar.

    ```bash theme={"system"}
    @file . vamos analisar este projeto legado em partes
    ```
  </Tab>

  <Tab title="smart">
    **Cenário:** Pergunta específica em um projeto grande.

    A IA recebe a lista de arquivos e escolhe quais são os mais relevantes para ler.

    ```bash theme={"system"}
    @file ./src como funciona o fluxo de autenticação?
    ```
  </Tab>
</Tabs>

<Info>
  Defina o modo usando a flag `--mode`. Exemplo: `@file --mode=smart ./src`
</Info>

***

## `@command`: Ponte com o Terminal

Execute qualquer comando do shell e use sua saída como contexto e ainda adicione sua dúvida — sem copiar e colar apenas com sinal `>`(MAIOR).

| Sem ChatCLI (antes)                                                         | Com ChatCLI (agora)                     |
| :-------------------------------------------------------------------------- | :-------------------------------------- |
| Rodar comando, redirecionar para arquivo, abrir, copiar, colar no navegador | Um único comando com contexto integrado |

```bash theme={"system"}
@command kubectl get pods -n prod > por que o pod de login está em CrashLoopBackOff?
```

### Flags especiais

| Flag                                                           | Descrição                                                            |
| -------------------------------------------------------------- | -------------------------------------------------------------------- |
| `@command -i`                                                  | Modo interativo — para comandos como `vim` ou `ssh`                  |
| `@command --ai`                                                | Envia a saída diretamente para a IA, sem pergunta adicional          |
| `@command --ai <comando> > <sua dúvida ou contexto adicional>` | Envia a saída diretamente para a IA, com pergunta/contexto adicional |

```bash theme={"system"}
@command --ai cat /var/log/nginx/error.log
```

***

## `@git`: Contexto do Repositório

Anexa o status (`git status -s`), branch, diffs de arquivos modificados e os 5 commits mais recentes. Perfeito para gerar mensagens de commit ou resumir alterações.

```bash theme={"system"}
@git me ajude a escrever uma mensagem de commit clara para estas mudanças.
```

***

## `@env`: Variáveis de Ambiente

Adiciona as variáveis de ambiente atuais ao contexto da conversa.

<Warning>
  O ChatCLI automaticamente detecta e remove valores de variáveis sensíveis (como `API_KEY`, `TOKEN`, `PASSWORD`), substituindo-os por `[REDACTED]`.
</Warning>

***

## Combinando Comandos

A verdadeira magia acontece ao combinar múltiplos comandos de contexto em um único prompt:

```bash theme={"system"}
@git @file ./src/main.go baseado nas mudanças recentes, revise este arquivo e sugira melhorias.
```

***

## Próximos Passos

<CardGroup cols={2}>
  <Card title="Modo Agente" icon="robot" href="/pt/core-concepts/agent-mode">
    Dê "mãos" ao ChatCLI — delegue tarefas para ele executar.
  </Card>

  <Card title="Modo Coder" icon="code" href="/pt/core-concepts/coder-mode">
    IA que lê, edita e testa código em loop automatizado.
  </Card>
</CardGroup>
