- Pareamento de MD (quem tem permissão para conversar com o bot)
- Pareamento de Node (quais dispositivos/nodes têm permissão para ingressar na rede do Gateway)
1) Pareamento de MD (acesso a conversas recebidas)
Quando um canal é configurado com a política de MDpairing, remetentes desconhecidos recebem um código curto, e a mensagem deles não é processada até que seja aprovada.
As políticas padrão de MD estão documentadas em: Segurança
dmPolicy: "open" só é público quando a lista de permissões efetiva de MD inclui "*".
A configuração e a validação exigem esse curinga para configurações abertas ao público. Se o estado
existente contiver open com entradas concretas em allowFrom, o runtime ainda admitirá
somente esses remetentes, e as aprovações do armazenamento de pareamento não ampliarão o acesso de open.
Códigos de pareamento:
- 8 caracteres, em maiúsculas, sem caracteres ambíguos (
0O1I). - Expiram após 1 hora. O bot só envia a mensagem de pareamento quando uma nova solicitação é criada (aproximadamente uma vez por hora para cada remetente).
- As solicitações pendentes de pareamento de MD são limitadas a 3 por conta de canal; solicitações adicionais são ignoradas até que uma expire ou seja aprovada.
Aprovar um remetente
--notify ao comando de aprovação para notificar o solicitante no mesmo canal. Canais com várias contas aceitam --account <id>.
Se ainda não houver um proprietário de comandos configurado, aprovar um código de pareamento de MD também inicializará
commands.ownerAllowFrom com o remetente aprovado, como telegram:123456789.
Isso fornece às configurações iniciais um proprietário explícito para comandos privilegiados e solicitações
de aprovação de execução. Depois que existir um proprietário, aprovações de pareamento posteriores concederão apenas
acesso a MD; elas não adicionarão outros proprietários.
Canais compatíveis (qualquer Plugin de canal instalado que declare pareamento; plugins externos como openclaw-weixin podem adicionar outros): discord, feishu, googlechat, imessage, irc, line, matrix, mattermost, msteams, nextcloud-talk, nostr, signal, slack, sms, synology-chat, telegram, twitch, whatsapp, zalo, zalouser.
Grupos reutilizáveis de remetentes
UseaccessGroups no nível superior quando o mesmo conjunto de remetentes confiáveis precisar ser aplicado a
vários canais de mensagens ou às listas de permissões de MD e de grupos.
Grupos estáticos usam type: "message.senders" e são referenciados com
accessGroup:<name> nas listas de permissões dos canais:
Onde o estado fica armazenado
Armazenado no banco de dados SQLite de estado compartilhado em~/.openclaw/state/openclaw.sqlite:
- solicitações pendentes em
channel_pairing_requests - remetentes aprovados em
channel_pairing_allow_entries
- cada solicitação e remetente aprovado é identificado por canal e conta
- o runtime lê apenas as linhas canônicas do SQLite; ele não mescla arquivos legados
<channel>-pairing.json e
<channel>-<accountId>-allowFrom.json em ~/.openclaw/credentials/.
A migração na inicialização e openclaw doctor --fix importam esses arquivos para o SQLite e
removem cada origem após uma importação bem-sucedida. Trate o banco de dados SQLite como
confidencial, pois essas linhas controlam o acesso ao seu assistente.
O armazenamento da lista de permissões de pareamento destina-se ao acesso a MD. A autorização de grupos é separada.
Aprovar um código de pareamento de MD não permite automaticamente que esse remetente execute
comandos de grupo nem controle o bot em grupos. A inicialização do primeiro proprietário é um estado de configuração
separado em
commands.ownerAllowFrom, e a entrega em conversas de grupo ainda segue as
listas de permissões de grupo do canal (por exemplo, groupAllowFrom, groups ou substituições por grupo
ou por tópico, dependendo do canal).2) Pareamento de dispositivo Node (nodes iOS/Android/macOS/headless)
Os nodes se conectam ao Gateway como dispositivos comrole: node. O Gateway
cria uma solicitação de pareamento de dispositivo que precisa ser aprovada.
Parear pela interface de controle (recomendado)
Use uma sessão já conectada da interface de controle com acesso aoperator.admin:
- Abra a interface de controle e acesse Settings → Devices.
- Na página Devices, clique em Pair mobile device.
- Mantenha Full access (recommended) ou selecione Limited access para omitir os controles administrativos do Gateway.
- Clique em Create setup code.
- No telefone, abra o aplicativo OpenClaw → Settings → Gateway.
- Escaneie o código QR ou cole o código de configuração e conecte-se.
Parear pelo Telegram
Se você usa o Plugindevice-pair, pode fazer o pareamento inicial do dispositivo inteiramente pelo Telegram:
- No Telegram, envie uma mensagem ao bot:
/pair - O bot responde com duas mensagens: uma mensagem de instruções e uma mensagem separada com o código de configuração (fácil de copiar e colar no Telegram).
- No telefone, abra o aplicativo OpenClaw para iOS → Settings → Gateway.
- Escaneie o código QR (
/pair qr) ou cole o código de configuração e conecte-se. - O aplicativo móvel oficial se conecta automaticamente. Se
/pair pendingexibir uma solicitação, revise a função e os escopos antes de aprová-la.
url: a URL WebSocket do Gateway (ws://...ouwss://...)urls: quando disponíveis, as rotas LAN/Tailnet ordenadas que o aplicativo móvel pode tentarbootstrapToken: um token de inicialização de uso único para o handshake inicial de pareamento; o Gateway o invalida após 10 minutos
/pair cleanup para invalidar códigos de configuração não utilizados após o término do pareamento.
Esse token de inicialização carrega o perfil integrado de inicialização de pareamento:
- uma configuração segura de
wss://(ou loopback no mesmo host) usa por padrãonode, além de acesso nativo móvel completo aoperator - o token
nodetransferido permanecescopes: [] - o token
operatortransferido por padrão incluioperator.admin,operator.approvals,operator.read,operator.talk.secretseoperator.write - Limited access da interface de controle e
openclaw qr --limitedomitemoperator.admin, mantendo os outros escopos de operador - a configuração de
ws://em texto simples na LAN usa automaticamente o mesmo perfil limitado; configurewss://ou o Tailscale Serve e gere um novo código para obter acesso completo - a rotação/revogação posterior do token permanece limitada tanto pelo contrato de função aprovado do dispositivo quanto pelos escopos de operador da sessão que fez a chamada
wss:// ou
do Tailscale Serve, depois gere um novo código de configuração de acesso completo, escaneie-o ou cole-o
nessa página de configurações e reconecte-se.
Para pareamento móvel pelo Tailscale, público ou outro acesso remoto, use o Tailscale Serve/Funnel
ou outra URL do Gateway com wss://. Códigos de configuração de ws:// em texto simples são aceitos apenas
para loopback, endereços de LAN privada, hosts Bonjour .local e o host do
emulador Android. Rotas em texto simples que não sejam de loopback recebem acesso limitado. Endereços
CGNAT da Tailnet, nomes .ts.net e hosts públicos continuam bloqueados por padrão antes
da emissão do QR/código de configuração.
Para URLs de configuração gateway.bind=lan, o OpenClaw detecta raízes HTTPS persistentes do Tailscale Serve
que encaminham a porta de loopback do Gateway ativo e as anuncia
junto com a rota de LAN. O comando de configuração adiciona esse fallback apenas
para lan; custom e tailnet mantêm suas rotas explicitamente anunciadas. O
aplicativo para iOS testa as rotas anunciadas em ordem e salva o primeiro
endpoint acessível.
Aprovar um dispositivo Node
operator.admin. Isso permite que um dispositivo pareado existente com capacidade administrativa recupere um novo
pareamento da interface de controle/navegador sem editar manualmente o armazenamento de pareamento. O
Gateway ainda valida a nova tentativa de conexão; tokens que não conseguem se autenticar
com operator.admin continuam bloqueados.
Se o mesmo dispositivo tentar novamente com detalhes de autenticação diferentes (por exemplo, outra
função, outros escopos ou outra chave pública), a solicitação pendente anterior será substituída e um novo
requestId será criado.
Um dispositivo já pareado não obtém acesso mais amplo silenciosamente. Se ele se reconectar solicitando mais escopos ou uma função mais ampla, o OpenClaw manterá a aprovação existente sem alterações e criará uma nova solicitação pendente de atualização. Use
openclaw devices list para comparar o acesso atualmente aprovado com o novo acesso solicitado antes de aprovar.Aprovação automática opcional de nodes por CIDR confiável
O pareamento de dispositivos permanece manual por padrão. Para redes de nodes estritamente controladas, é possível habilitar a aprovação automática do primeiro pareamento de node com CIDRs ou IPs exatos explícitos:role: node sem
escopos solicitados. Clientes de operador, navegador, interface de controle e WebChat ainda exigem aprovação
manual. Alterações de função, escopo, metadados e chave pública ainda exigem aprovação
manual.
Armazenamento do estado de pareamento de Node
Armazenado no banco de dados SQLite de estado compartilhado em~/.openclaw/state/openclaw.sqlite:
- solicitações pendentes de pareamento de dispositivos (de curta duração; expiram após 5 minutos)
- dispositivos pareados + tokens
~/.openclaw/devices/*.json; esses arquivos são
importados para o SQLite na inicialização do Gateway e arquivados com o sufixo .migrated.
Observações
- A API
node.pair.*(CLI:openclaw nodes pending|approve|reject|remove|rename) gerencia as aprovações de recursos do Node armazenadas nos mesmos registros de dispositivos pareados. Nodes WS ainda exigem pareamento de dispositivo; consulte Pareamento de Node. - O registro de pareamento é a fonte da verdade durável para as funções aprovadas. Tokens de dispositivos ativos permanecem limitados a esse conjunto de funções aprovado; uma entrada de token isolada fora das funções aprovadas não cria novo acesso.