# Hermes Desktop no Linux com Bubblewrap

Mantenha a interface oficial em uma janela própria, sem entregar a pasta pessoal, o X11 ou os serviços da sua sessão ao aplicativo.

Rota Nacional · 2026-11-04T22:53:28Z · 2026-11-04T22:53:28Z

## Isole também o processo da interface

Compilar um aplicativo não torna suas dependências confiáveis. A interface Electron tem processos próprios e pode iniciar outros programas. Isolar só o terminal do agente deixa essa parte fora da proteção.

Bubblewrap cria o ambiente restrito. O conjunto de argumentos define o que o aplicativo enxerga. Nesta instalação, o Hermes Desktop light foi compilado em Docker. O pacote rodou no Bubblewrap e se conectou ao agente em outro container.


## Monte um sistema de arquivos mínimo

- Comece com --unshare-all --die-with-parent --new-session --cap-drop ALL --clearenv. Confira antes se o Linux permite os namespaces de usuário necessários.
- Monte /usr e o pacote do aplicativo somente para leitura. Crie /proc e /dev privados. Use tmpfs com limite para /tmp e a memória compartilhada.
- Monte uma pasta vazia e exclusiva como HOME. Defina HOME, XDG_CONFIG_HOME, XDG_CACHE_HOME e XDG_DATA_HOME para caminhos internos. Não monte a pasta pessoal real.
- Entregue apenas o socket privado do agente e o token daquela sessão. Não entregue sockets de Docker, SSH, GPG ou D-Bus.

## Entregue uma janela, sem compartilhar o X11

Em uma sessão X11, compartilhar /tmp/.X11-unix e a autorização do usuário enfraquece o objetivo. O aplicativo passa a falar com o servidor gráfico usado pelas outras janelas. No setup validado, um Weston confiável criou uma janela externa. Só o socket Wayland desse compositor entrou no Bubblewrap.

O Weston usou o backend x11, o renderizador pixman e kiosk-shell.so. O Electron usou --ozone-platform=wayland --disable-gpu --disable-audio-output. O aplicativo não recebeu DISPLAY, XAUTHORITY, dispositivos de GPU ou acesso a áudio. O lançador externo guardou os acessos necessários ao compositor.

O lançador associou a janela externa a um atalho próprio. No X11, WM_CLASS e StartupWMClass permitem que o desktop reconheça o aplicativo no dock. Essa identificação visual não concede acesso ao host.


## Separe o canal do agente da rede do computador

Com --unshare-all, o localhost da interface pertence ao ambiente isolado. Um retransmissor interno ligou 127.0.0.1:9119 ao socket Unix privado do agente. HERMES_DESKTOP_REMOTE_URL apontou para esse endereço interno.

O token usou o contrato de sessão do próprio Hermes. A configuração sem token foi recusada. A mesma configuração com o token foi lida. Nenhuma porta do agente precisou ficar aberta no host. O lançador renovou o token e encerrou os processos ao fechar a janela.


## Confira a proteção na versão que você vai usar

A prova local de 4 de novembro de 2026 usou cliente e agente 0.22.6. Os 14 testes da interface e os sete do agente passaram. A abertura, a navegação e as configurações foram conferidas. A prova não incluiu resposta de modelo, pois não havia chave cadastrada.

Microfone, captura de tela, notificações e integração com arquivos ficaram reduzidos. Não recupere um recurso compartilhando toda a sessão. Avalie uma permissão específica e repita a prova. Bubblewrap continua compartilhando o kernel; ele não substitui uma máquina virtual.


## Perguntas frequentes

O sandbox do Electron já não basta?

O sandbox interno protege partes do Electron. O perfil externo limita também o processo principal e os programas que ele inicia. Confira ambos na versão usada.

Preciso trocar minha sessão X11 por Wayland?

O setup validado manteve a sessão X11. O Weston funcionou como compositor aninhado e entregou um socket Wayland separado ao aplicativo.


- [Modelo de segurança do Bubblewrap 0.12.0](https://github.com/containers/bubblewrap/blob/v0.12.0/README.md)
- [Hermes Desktop v0.22.6](https://github.com/NousResearch/hermes-agent/blob/v0.22.6/website/docs/user-guide/desktop.md)
- [Identificação de aplicativos no desktop](https://specifications.freedesktop.org/desktop-entry/latest-single/)

[Escolher o contrato da RN](https://rota-nacional.ia.br/pt/docs/)

Use a rota protegida compatível com a política da organização. Você não precisa incluir a mesma política e cobrança de uso em cada cliente.
- [Usar com agente](https://rota-nacional.ia.br/llms.txt)

[Hermes Desktop no Linux com Bubblewrap](https://rota-nacional.ia.br/pt/artigos/hermes-desktop-bubblewrap-linux/)
