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

# Discord

> Converse com o ChatCLI pelo Discord: um bot no Gateway WebSocket do Discord, sem URL pública, com mensagens de voz e imagem recebidas e respostas longas divididas em várias mensagens.

O adaptador do Discord se conecta ao **Discord Gateway** por WebSocket, então, como o Telegram, não precisa de URL pública nem abre porta. O bot lê todas as mensagens dos canais e DMs que consegue ver, o que faz das permissões de canal do próprio Discord a forma de decidir quem pode usá-lo.

| | Discord |
| - | - |
| Transporte | Discord Gateway WebSocket v10; nenhuma porta é aberta |
| Quem pode falar com o bot | Quem pode postar onde o bot lê; não há lista de usuários |
| Voice notes recebidas | Sim, um anexo de áudio |
| Respostas em voz | Não (só texto) |
| Imagens recebidas | Sim |
| Imagens enviadas | Sim |
| Sinal de "trabalhando" | Um aviso curto em texto se a resposta passar de uns 2 segundos |

## Configuração

<Steps>
  <Step title="Crie a aplicação e o bot">
    No Discord Developer Portal, crie uma aplicação, adicione um **Bot** e copie o token.
  </Step>

  <Step title="Ligue o intent Message Content">
    Em **Bot → Privileged Gateway Intents**, ative o **Message Content Intent**. O gateway pede esse intent para ler o que as pessoas escrevem; sem ele o Discord recusa a conexão.
  </Step>

  <Step title="Convide o bot">
    Use o gerador de URL do OAuth2 com o escopo `bot` e as permissões de ler mensagens, enviar mensagens e anexar arquivos, abra a URL e adicione o bot ao seu servidor. Mensagens diretas para o bot também funcionam.
  </Step>

  <Step title="Configure o ChatCLI e inicie">
    ```bash theme={"system"}
    export CHATCLI_DISCORD_BOT_TOKEN="..."
    ```

    ```text theme={"system"}
    /gateway start
    /gateway status     # discord deve aparecer
    ```
  </Step>
</Steps>

## Variáveis de ambiente

| Variável | Obrigatória | Padrão | O que faz |
| - | - | - | - |
| `CHATCLI_DISCORD_BOT_TOKEN` | sim | — | O token do bot. O adaptador só liga com ela definida. |
| `CHATCLI_DISCORD_HOME_CHANNEL` | não | — | Channel ID padrão das [mensagens proativas](/pt/gateway/proactive-messaging) enviadas com `@send discord`. |

## Quem alcança o bot

<Warning>
  O bot responde a **toda** mensagem de uma pessoa em cada canal de servidor e DM que consegue ler; ele não espera ser mencionado e não tem lista de permitidos. Cada mensagem roda o agente com suas tools e o shell, então dê ao bot acesso só a um canal privado, ou às pessoas que devem usá-lo.
</Warning>

Mensagens escritas por bots, inclusive por ele mesmo, são ignoradas.

## Mensagens

* **Texto**: o conteúdo da mensagem. Um canal de servidor é uma conversa compartilhada por todos nele; uma DM é a sua própria.
* **Voz**: o primeiro anexo de áudio é baixado e transcrito antes de o agente rodar.
* **Imagens**: o primeiro anexo de imagem chega ao modelo.
* **Respostas com imagem** são enviadas como arquivo na resposta; se falhar, o texto vai sozinho.
* **Respostas longas** saem como várias mensagens em ordem, divididas em quebras de linha ou espaços, porque o Discord aceita no máximo 2000 caracteres por mensagem.
* As respostas são postadas no canal, não como resposta à mensagem original.

## Limites

* Uma resposta é cortada em **3500 caracteres** antes de ser dividida, então chega em no máximo duas mensagens.
* Depois de uma desconexão o bot se reconecta com uma sessão nova; mensagens enviadas no intervalo não chegam a ele.

## Solução de problemas

<AccordionGroup>
  <Accordion title="O bot está online mas nunca responde">
    Ative o **Message Content Intent** no Developer Portal. Sem ele o gateway não consegue ler o texto das mensagens e a conexão é recusada; `~/.chatcli/gateway.log` mostra o erro.
  </Accordion>

  <Accordion title="O bot responde em canais em que não deveria">
    Remova a permissão dele de ler esses canais nas configurações do servidor. O bot não tem lista de permitidos própria.
  </Accordion>
</AccordionGroup>

## Veja também

<CardGroup cols={2}>
  <Card title="Chat gateway" icon="comments" href="/pt/gateway/chat-gateway">
    Como as mensagens rodam, voz, imagens, continuidade e os outros canais.
  </Card>

  <Card title="Segurança" icon="shield-halved" href="/pt/security/overview">
    Endureça o que o agente pode fazer quando roda sem supervisão.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.