OpenClaw

Canal WebChat do OpenClaw

Mensagens
Fácil

WebChat é a interface de chat integrada do OpenClaw Gateway. Conecta-se diretamente via WebSocket — sem necessidade de serviços externos, chaves de API ou contas de terceiros. Basta iniciar o Gateway, configurar a autenticação e abrir a interface WebChat para começar a conversar com seu assistente de IA. Todas as mensagens são roteadas de forma determinística, ou seja, as respostas sempre retornam à sessão WebChat que iniciou a conversa.

Info rápida
DificuldadeFácil
CategoriaMensagens
Recursos suportados1 / 6

WebChat Recursos suportados

Mensagens de texto

Suportado

Mídia e arquivos

Não suportado

Reações

Não suportado

Threads

Não suportado

Mensagens de voz

Não suportado

Chat em grupo

Não suportado

WebChat Pré-requisitos

  • OpenClaw Gateway instalado e em execução
  • Autenticação do Gateway configurada (modo token ou senha)
  • Um navegador web moderno (Control UI) ou o cliente nativo para macOS/iOS
  • Acesso de rede à porta WebSocket do Gateway (padrão: 3000)

WebChat Configuração rápida

1

Iniciar o Gateway

Inicie o seu OpenClaw Gateway. O WebChat já vem integrado — nenhuma instalação separada ou plugin é necessário. Execute 'openclaw start' para iniciar o serviço do Gateway.

2

Configurar autenticação

Configure gateway.auth.mode com autenticação 'token' ou 'password' no seu openclaw.json. A autenticação é obrigatória para todas as conexões, incluindo localhost.

3

Abrir o WebChat

Acesse a interface WebChat pela aba de chat do Control UI no seu navegador, ou inicie o cliente nativo para macOS/iOS. Conecte-se ao Gateway em ws://localhost:3000 (ou o host e porta configurados).

4

Começar a conversar

Envie uma mensagem de teste para verificar a conexão. Seu assistente de IA responderá pela mesma sessão WebChat. O histórico da conversa é gerenciado pelo Gateway e persiste entre reconexões.

WebChat Exemplo de configuração

config.json
{
  "gateway": {
    "port": 3000,
    "bind": "127.0.0.1",
    "auth": {
      "mode": "token",
      "token": "YOUR_SECRET_TOKEN"
    }
  }
}

WebChat Documentação Detalhada

Visão geral da arquitetura

O WebChat se comunica com o OpenClaw Gateway através de uma conexão WebSocket utilizando três operações principais: • chat.history — Recupera o histórico da conversa do Gateway • chat.send — Transmite mensagens do usuário para o assistente de IA • chat.inject — Adiciona notas do assistente diretamente às transcrições e transmite para a interface sem acionar uma execução do agente Diferente de outros canais que dependem de serviços externos e webhooks, o WebChat é totalmente nativo do Gateway. As mensagens nunca saem da sua infraestrutura — a conexão WebSocket é direta entre o cliente da interface e o processo do Gateway. O roteamento é determinístico: as respostas da IA sempre retornam à sessão WebChat que iniciou a conversa.
O WebChat é o canal mais simples de configurar, pois não requer contas externas ou chaves de API — apenas o próprio Gateway.
A operação chat.inject é útil para adicionar notas do sistema ou contexto a uma conversa sem acionar uma resposta da IA.

Autenticação do Gateway

A autenticação é obrigatória para todas as conexões WebChat, mesmo em loopback (localhost). Isso impede o acesso não autorizado ao seu assistente de IA. O OpenClaw suporta dois modos de autenticação: • token — Um token secreto compartilhado passado no handshake do WebSocket. Ideal para acesso programático e configurações de usuário único. • password — Autenticação baseada em senha. Adequado para ambientes multiusuário onde cada usuário tem suas próprias credenciais. Pelo menos um dos modos, token ou password, deve ser configurado para que o WebChat aceite conexões. Configure esses parâmetros nas definições de gateway.auth do seu openclaw.json.
openclaw.json
{
  "gateway": {
    "auth": {
      "mode": "token",
      "token": "a-strong-random-token-here"
    }
  }
}
A autenticação é obrigatória mesmo para conexões localhost. Nunca execute o Gateway sem autenticação configurada — qualquer processo na máquina poderia acessar seu assistente de IA.

Acesso remoto

O WebChat suporta conectividade remota sem executar um servidor web separado. Duas abordagens são recomendadas: • Túnel SSH — Encaminhe a porta do Gateway via SSH: ssh -L 3000:localhost:3000 user@remote-host. Isso permite acessar o WebChat localmente enquanto o Gateway está em execução em uma máquina remota. • Tailscale — Conecte seus dispositivos através da VPN mesh do Tailscale. O Gateway fica acessível pelo endereço IP do Tailscale sem necessidade de encaminhamento de porta ou configuração de firewall. Para conexões remotas, configure as definições de gateway.remote com a URL do WebSocket de destino e as credenciais de autenticação. O cliente nativo gerencia a reconexão automaticamente quando as condições da rede mudam.
openclaw.json
{
  "gateway": {
    "remote": {
      "url": "wss://your-remote-host:3000",
      "token": "YOUR_REMOTE_TOKEN"
    }
  }
}
O túnel SSH é a maneira mais rápida de obter acesso remoto sem nenhum software adicional — basta garantir acesso SSH ao host do Gateway.
O Tailscale oferece uma VPN de configuração zero que torna o Gateway acessível em todos os seus dispositivos sem encaminhamento de porta.

Gerenciamento de sessões

O WebChat utiliza sessões gerenciadas pelo Gateway para manter o contexto da conversa. Cada conexão WebChat é associada a uma sessão que armazena o histórico da conversa e o contexto da IA. As sessões são persistentes entre reconexões — se o WebSocket cair e reconectar, a conversa continua de onde parou. A operação chat.history recupera a conversa completa do Gateway ao reconectar. A configuração de sessão é gerenciada através das definições session.* no openclaw.json, incluindo o backend de armazenamento e as chaves de sessão padrão.
O histórico da conversa é obtido do Gateway, não armazenado localmente. Isso significa que você pode trocar de dispositivo e continuar a mesma conversa.
Use session.defaultKey para atribuir um identificador de sessão consistente para suas conversas no WebChat.

Modo somente leitura

Quando o Gateway fica inacessível, o WebChat entra automaticamente no modo somente leitura. Nesse estado: • O histórico anterior da conversa permanece visível • Novas mensagens não podem ser enviadas • A interface indica o status desconectado • Tentativas automáticas de reconexão ocorrem em segundo plano Assim que o Gateway voltar a ficar online, o WebChat reconecta automaticamente e restaura a funcionalidade completa. Nenhuma mensagem é perdida do histórico da conversa, pois todo o histórico é obtido do Gateway.
O modo somente leitura é uma degradação controlada — os usuários ainda podem revisar conversas anteriores enquanto o Gateway está temporariamente indisponível.

Recursos do cliente nativo

O WebChat é implementado como uma aplicação nativa SwiftUI nas plataformas Apple: • macOS — Experiência desktop completa com atalhos de teclado, notificações do sistema e integração com a barra de menus • iOS — Interface otimizada para dispositivos móveis com notificações push e atualização em segundo plano A implementação nativa proporciona uma experiência responsiva e específica da plataforma, sem a sobrecarga de um navegador embutido ou wrapper Electron. A renderização de texto, rolagem e manipulação de entrada utilizam componentes nativos da plataforma. Para outras plataformas (Windows, Linux, Android), acesse o WebChat pela aba de chat do Control UI em qualquer navegador web moderno.
O cliente nativo para macOS/iOS oferece a melhor experiência com recursos específicos da plataforma, como notificações do sistema e atalhos de teclado.
A aba de chat do Control UI no navegador funciona em todas as plataformas e oferece a mesma funcionalidade principal.

Entrega de mensagens

O WebChat gerencia a entrega de mensagens através da conexão WebSocket com fragmentação configurável para respostas longas da IA: • textChunkLimit — Máximo de caracteres por fragmento de mensagem (padrão: 2000). Respostas longas são divididas automaticamente. • blockStreaming — Quando ativado, as respostas são enviadas em fragmentos baseados em blocos conforme são geradas, proporcionando feedback em tempo real. As mensagens são entregues instantaneamente através do WebSocket — sem polling ou atraso de webhook. A conexão WebSocket bidirecional permite que tanto o envio quanto o recebimento aconteçam em tempo real.
openclaw.json
{
  "channels": {
    "webchat": {
      "textChunkLimit": 2000,
      "blockStreaming": true
    }
  }
}

Melhores práticas de segurança

A segurança do WebChat é construída em torno da camada de autenticação do Gateway. Siga estas melhores práticas para implantações seguras: • Sempre configure a autenticação — Acesso anônimo não é permitido • Use criptografia TLS — Conecte via wss:// (WebSocket Secure) para todas as conexões remotas • Restrinja o endereço de bind — Use gateway.bind: "127.0.0.1" para acesso apenas local; evite vincular a 0.0.0.0 a menos que esteja atrás de um proxy reverso • Use credenciais fortes — Gere tokens aleatórios ou senhas fortes • Proxy reverso — Para implantações em produção, coloque o Gateway atrás de um proxy reverso (nginx, Caddy) com terminação TLS Se estiver usando um proxy reverso na mesma máquina, configure gateway.trustedProxies para garantir a detecção correta do IP do cliente.
Nunca exponha a porta WebSocket do Gateway diretamente à internet sem criptografia TLS e autenticação forte. Use um proxy reverso com terminação TLS para implantações em produção.

WebChat Referência de Configuração

gateway.port
Type: numberDefault: 3000

Número da porta WebSocket do Gateway

gateway.bind
Type: stringDefault: "127.0.0.1"

Endereço do host ao qual o Gateway se vincula para conexões WebSocket

gateway.auth.mode
Type: stringDefault: "token"

Modo de autenticação: 'token' para segredo compartilhado ou 'password' para autenticação baseada em credenciais

gateway.auth.token
Type: stringDefault: ""

Token secreto compartilhado para autenticação WebSocket

gateway.auth.password
Type: stringDefault: ""

Senha para autenticação WebSocket

gateway.remote.url
Type: stringDefault: ""

URL do WebSocket do Gateway remoto (ex: wss://remote-host:3000)

gateway.remote.token
Type: stringDefault: ""

Token de autenticação para conexão a um Gateway remoto

gateway.remote.password
Type: stringDefault: ""

Senha de autenticação para conexão a um Gateway remoto

session.defaultKey
Type: stringDefault: ""

Chave de sessão padrão para conversas no WebChat

session.storage
Type: stringDefault: "memory"

Backend de armazenamento de sessão (memory, file, redis, etc.)

textChunkLimit
Type: numberDefault: 2000

Máximo de caracteres por fragmento de mensagem de saída

blockStreaming
Type: booleanDefault: false

Enviar respostas como fragmentos baseados em blocos durante a geração para feedback em tempo real

WebChat Perguntas Frequentes

WebChat Solução de Problemas

O WebChat mostra 'Desconectado' e não reconecta

O Gateway não está em execução, ou a porta WebSocket está bloqueada por um firewall.

Verifique se o Gateway está em execução com 'openclaw status'. Confirme que a porta configurada em gateway.port não está bloqueada por um firewall. Certifique-se de que gateway.bind permite conexões a partir do endereço de rede do seu cliente.
A autenticação falha ao conectar

O token ou a senha não correspondem à configuração do Gateway.

Verifique se gateway.auth.token ou gateway.auth.password correspondem exatamente às credenciais do seu cliente. Verifique se há espaços extras ou problemas de codificação. Reinicie o Gateway após alterar as configurações de autenticação.
Mensagens são enviadas mas nenhuma resposta da IA aparece

O agente de IA não está configurado, ou a chave de API do provedor de IA é inválida.

Verifique os logs do Gateway para erros. Confirme a configuração do agente no openclaw.json. Certifique-se de que a chave de API do provedor de IA (ex: OpenAI, Anthropic) é válida e possui cota disponível.
A conexão remota via túnel SSH falha

O túnel SSH não está encaminhando a porta correta, ou o Gateway não está escutando no endereço esperado.

Certifique-se de que o comando SSH corresponde à porta do Gateway: ssh -L 3000:localhost:3000 user@host. Na máquina remota, verifique se o Gateway está escutando na porta esperada. Confirme que gateway.bind está definido como 127.0.0.1 para acesso via túnel SSH.
O histórico do chat está vazio após a reconexão

A sessão expirou ou foi limpa entre as conexões.

Verifique as configurações de sessão no openclaw.json. Certifique-se de que o Gateway possui armazenamento suficiente para a persistência de sessão. Confirme que a chave de sessão corresponde entre as conexões.