Como implantar o Maxiful na sua organização
Uma nota para equipes de TI que vão distribuir o Maxiful em PCs com Windows e em Macs: como ele é instalado em cada um, como distribuí-lo pelo Intune, pelo Jamf Pro ou com uma instalação silenciosa, o que ele coloca no computador e inicia, os hosts de rede a liberar, como as ferramentas de segurança o veem, as configurações que você pode definir de forma centralizada e como ele é atualizado e removido.
Verificado com o Maxiful 0.9.60 para Windows e Mac. Onde os dois diferem, cada seção tem uma parte para o Windows e uma parte para o Mac.
Como ele é instalado
Nas duas plataformas, o Maxiful é um app de desktop que cada pessoa configura para si. Na primeira inicialização, ele prepara o runtime dos assistentes para essa pessoa: o OpenClaw, o runtime de agentes de código aberto, sobre uma cópia do Node.js que o Maxiful instala para essa pessoa. Um processo em segundo plano desse runtime, o gateway, executa os assistentes e é iniciado de novo sempre que a pessoa entra no computador.
No Windows
Por pessoa, sem direitos de administrador. O instalador, Maxiful-x64-setup.exe, é executado como a pessoa que entrou no Windows e instala na pasta %LOCALAPPDATA%\Maxiful dessa pessoa. Ele aparece nos aplicativos instalados dessa pessoa, então cada pessoa que usa o Maxiful em um computador tem a própria instalação.
Windows 10 ou posterior, 64 bits. A janela do Maxiful é renderizada pelo Microsoft Edge WebView2. Se o WebView2 Runtime não estiver presente, o instalador baixa o instalador do WebView2 da própria Microsoft em go.microsoft.com e o executa de forma silenciosa.
No Mac
Um app em /Applications, configurado por pessoa. O Maxiful para Mac vem em uma imagem de disco, Maxiful-arm64.dmg, com o Maxiful.app dentro, assinado com um Apple Developer ID e notarizado pela Apple (os detalhes da assinatura estão em Mac: Intune e Jamf Pro). Copiado para /Applications, por uma pessoa ou pelo seu gerenciamento de dispositivos, ele é um único app para todos no Mac; cada pessoa que o abre entra com a própria conta e ganha a própria instalação, com os assistentes e os dados na própria pasta pessoal.
macOS 13 ou posterior, em Apple silicon ou Intel. O app é um único build para os dois.
Windows: instalação silenciosa
Maxiful-x64-setup.exe /S
| Opção | O que faz |
|---|---|
/S | Silenciosa: sem janela do instalador e sem perguntas do instalador. Adiciona um atalho no menu Iniciar e na área de trabalho. |
/P | Passiva: uma barra de progresso e nenhuma pergunta. As atualizações do próprio Maxiful são executadas assim. |
/NS | Sem atalho no menu Iniciar nem na área de trabalho. |
/R | Abre o Maxiful quando a instalação termina (com /S ou /P). |
/DEFENDER=managed | A sua própria política do Defender adiciona as pastas de trabalho do Maxiful (abaixo), então a instalação não pergunta nada ao Windows sobre elas. |
/DEFENDER=off | Você quer que o Defender verifique essas pastas, então a instalação não pede ao Windows que o Defender as ignore. |
Códigos de saída. 0 significa que a instalação terminou, e qualquer outro código significa que não terminou. Um 2 pode ter mais de uma causa; uma delas é outro programa manter um dos arquivos do Maxiful em uso por 30 segundos, e nesse caso nada foi alterado. O instalador encerra o Maxiful da própria pessoa que estiver em execução antes de gravar.
Sobre uma cópia já instalada. Executar um instalador mais novo da mesma forma atualiza a cópia no lugar, e os assistentes e os dados da pessoa são mantidos. Testamos isso no nosso PC de teste com Windows em 26 de outubro de 2026, da versão 0.9.54 para a 0.9.58 assinada.
As pastas do Microsoft Defender
As pastas de trabalho do próprio Maxiful alteram milhares de arquivos sempre que a equipe é iniciada, por isso o Maxiful pede ao Windows que o Microsoft Defender ignore quatro delas. Sem uma opção /DEFENDER, a instalação pergunta depois de gravar os arquivos: o Windows mostra a própria solicitação de permissão para isso e, para uma pessoa sem direitos de administrador, pede as credenciais de um administrador. Se ninguém responder, o Windows fecha a solicitação sozinho depois de uns dois minutos e a instalação termina mesmo assim. O Maxiful pergunta mais uma vez na próxima inicialização, e uma segunda solicitação sem resposta conta como não e não é feita de novo.
Com /DEFENDER=managed ou /DEFENDER=off (exatamente com essas palavras), nenhuma instalação, atualização ou inicialização pergunta ao Windows, e as configurações do Maxiful informam que o seu departamento de TI gerencia o Microsoft Defender no computador. Com as pastas verificadas, tudo funciona, e a equipe demora mais para iniciar. A pessoa ainda pode ativar as exclusões por conta própria depois, nas configurações do Maxiful, em Deixar o Defender ignorar as pastas de trabalho do Maxiful, o que pergunta ao Windows como descrito acima.
| Pasta que o Defender deve ignorar |
|---|
%LOCALAPPDATA%\Lanoko\node-v24.21.0\node_modules\openclaw |
%LOCALAPPDATA%\Lanoko\node-v24.21.0\openclaw-compile-cache |
%USERPROFILE%\.openclaw-*\tmp\plugin-captures |
%USERPROFILE%\.openclaw-*\agents\*\agent |
Windows: Microsoft Intune (aplicativo Win32)
Testamos a instalação silenciosa e a atualização sobre uma cópia instalada no nosso próprio PC de teste com Windows. Esta receita segue a documentação da Microsoft sobre aplicativos Win32 e não foi executada em um locatário do Intune; se o seu se comportar de outra forma, avise em [email protected].
- Crie uma pasta de pacote com o
Maxiful-x64-setup.exe, baixado da sua conta do Maxiful e conferido com o SHA-256, e um arquivouninstall.cmd, porque o Intune não expande variáveis de ambiente em um comando de desinstalação:@echo off "%LOCALAPPDATA%\Maxiful\uninstall.exe" /S _?=%LOCALAPPDATA%\Maxiful set rc=%ERRORLEVEL% del /q "%LOCALAPPDATA%\Maxiful\uninstall.exe" rmdir "%LOCALAPPDATA%\Maxiful" exit /b %rc%_?=faz o desinstalador rodar no lugar e terminar antes de o script continuar; as duas linhas seguintes removem o próprio desinstalador e a pasta vazia. Para remover também os assistentes e os dados da pessoa, escreva/S /REMOVEALL _?=%LOCALAPPDATA%\Maxifulna primeira linha (veja Remoção). - Crie o arquivo .intunewin com a Win32 Content Prep Tool da Microsoft:
IntuneWinAppUtil.exe -c C:\maxiful-package -s Maxiful-x64-setup.exe -o C:\maxiful-intunewin -q - Program: comando de instalação
Maxiful-x64-setup.exe /S /DEFENDER=managedquando a sua política do Defender adiciona as quatro pastas acima, ouMaxiful-x64-setup.exe /S /DEFENDER=offpara que sejam verificadas; comando de desinstalaçãouninstall.cmd; comportamento de instalação User; comportamento de reinicialização do dispositivo No specific action; os códigos de retorno padrão. - Requirements: 64 bits, Windows 10 ou posterior.
- Detection rule: arquivo, caminho
%LOCALAPPDATA%\Maxiful, arquivoMaxiful.exe, método File or folder exists. - Assignment: Required ou Available, para grupos de usuários.
O Intune espera uma instalação que não faça perguntas. Com uma opção /DEFENDER, a instalação do Maxiful não pergunta nada; sem ela, a solicitação do Defender no Windows é a única pergunta que pode aparecer. Leia Primeira inicialização antes de atribuir em larga escala.
Mac: Microsoft Intune e Jamf Pro
O seu gerenciamento de dispositivos instala o Maxiful.app notarizado em /Applications, a partir da mesma imagem de disco que as pessoas baixam. Estes são os valores que ele pede.
| Para o seu MDM | Valor |
|---|---|
| Identificador do pacote (bundle identifier) | ai.maxiful.desktop |
| Team ID | 467H9AXX55 |
| A assinatura do app | Developer ID Application: Polytrader ltd (467H9AXX55), notarizado pela Apple. |
| O requisito de código | identifier "ai.maxiful.desktop" and anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = "467H9AXX55" |
| Versão | CFBundleShortVersionString em /Applications/Maxiful.app/Contents/Info.plist: a versão do Maxiful. |
| Onde é instalado | /Applications/Maxiful.app |
| Domínio de preferências gerenciadas | ai.maxiful.desktop, o identificador do pacote. As chaves estão em Configurações gerenciadas. |
Microsoft Intune (macOS app (DMG))
- Apps, All Apps, Create; plataforma macOS, tipo macOS app (DMG); selecione
Maxiful-arm64.dmg, baixado da sua conta do Maxiful e conferido com o SHA-256. Os Macs precisam do agente de gerenciamento do Intune para macOS. - App information: adicione um logotipo para que o app apareça no Company Portal com o ícone. Requirements: Minimum Operating System macOS 13.
- Detection rules: Included apps
ai.maxiful.desktope a versão. Ignore app version No, para que cada versão enviada seja instalada. Defina tambémAutoUpdatecomo 0 (veja Configurações gerenciadas): você instala todas as versões pelo Intune, e o Maxiful não procura atualizações sozinho. - Assignments: Required (instalado em
/Applications), Available no Company Portal, ou Uninstall.
O Intune precisa de acesso total ao disco para atualizar ou remover um app DMG e o solicita no macOS 13 e posterior quando o app é atribuído. Para distribuir uma nova versão, envie a imagem de disco dela para o mesmo app: atribuições Required são atualizadas sozinhas e, com Available, cada pessoa escolhe Reinstall no Company Portal.
Jamf Pro
O Jamf Pro implanta pacotes a partir dos pontos de distribuição. Crie um que contenha /Applications/Maxiful.app com o Jamf Composer:
- Em um Mac, copie o
Maxiful.appda imagem de disco para/Applications. No Composer, arraste/Applications/Maxiful.appdo Finder para a lista Sources, para que ele mantenha o lugar em/Applications, e crie um pacote a partir dessa origem. - Adicione o pacote a um ponto de distribuição e ao Jamf Pro.
- Em Computers, Policies, crie uma nova política. Em General, defina o acionador e a frequência de execução; no payload Packages, adicione o pacote com a ação Install e escolha o ponto de distribuição.
- Na aba Scope, escolha os computadores; ou disponibilize a política no Self Service.
- Para cada nova versão, crie o pacote da mesma forma e implante com uma política, e defina
AutoUpdatecomo 0 (veja Configurações gerenciadas) para que o Maxiful não procure atualizações sozinho.
Estes passos seguem a documentação da Microsoft e da Jamf e não foram executados em um locatário do Intune ou do Jamf; se o seu se comportar de outra forma, avise em [email protected].
O item de início do gateway
O gateway dos assistentes é executado como um LaunchAgent de cada pessoa, com o rótulo ai.openclaw.<name>. No macOS 13 ou posterior, um payload de Service Management (itens de início gerenciados) com o tipo de regra Label prefix e o valor ai.openclaw. o aprova automaticamente.
Primeira inicialização: o que cada pessoa faz
Uma instalação silenciosa, ou a cópia do seu MDM em /Applications, deixa o Maxiful pronto para abrir. Na primeira inicialização, cada pessoa precisa fazer estes passos, tanto no Windows quanto no Mac; a TI não consegue concluí-los por ela.
- Cada pessoa entra com o próprio e-mail: o Maxiful envia um link de acesso por e-mail, e o link abre o app. Se o proprietário do espaço de trabalho configurou o login único (SSO) para o domínio de e-mail da sua organização, a pessoa pode escolher Continuar com a conta de trabalho, que abre no navegador a página de entrada do seu provedor de identidade (Microsoft Entra ID, Google Workspace, Okta, outro provedor OpenID Connect ou um provedor SAML 2.0); com Enforce single sign-on ativado, um link enviado por e-mail também leva ao seu provedor.
- Quem cria um novo espaço de trabalho digita o código de configuração da sua conta do Maxiful. Um código vale no primeiro computador que o usar.
- Um colega convidado para um espaço de trabalho entra nele, e o mesmo vale para alguém dos seus domínios verificados que entra pelo seu provedor enquanto a opção Add people to my workspace when they sign in do proprietário estiver ativada. Cada novo dispositivo de um colega aguarda até que o proprietário do espaço de trabalho o libere na página Equipe, em Pessoas.
Depois, a configuração instala o Node.js e o runtime para essa pessoa e inicia a equipe. Para isso, ela precisa dos hosts de rede listados abaixo.
No Mac: as permissões que o macOS pede
O Maxiful só pede uma permissão ao macOS quando um recurso precisa dela pela primeira vez, e o macOS mostra a própria pergunta:
- Notificações, na primeira vez que o Maxiful tiver uma para mostrar, como uma resposta que chega com a janela em segundo plano.
- Microfone e Reconhecimento de Fala, na primeira vez que a pessoa ditar uma mensagem ou falar com um assistente.
- Acessibilidade, Gravação de Tela e Monitoramento de Entrada, quando o proprietário deixar os assistentes usarem o computador pela primeira vez.
Onde a equipe roda, e um computador sempre ligado
A equipe roda no computador do proprietário: os assistentes, a memória e as conversas deles ficam na instalação do proprietário ali, e os colegas se conectam a ela pelos próprios dispositivos. Um escritório que quer a equipe respondendo a qualquer hora roda a instalação do proprietário em um computador que fica sempre ligado:
- Um Mac com a sessão do proprietário iniciada no macOS. O gateway é um LaunchAgent dessa conta e é iniciado quando a conta inicia a sessão, então inicie a sessão de novo depois de cada reinicialização ou ative o início de sessão automático, que o macOS não oferece com o FileVault ativado.
- Um PC com Windows que entra sozinho na conta do Windows do proprietário (a entrada automática do Windows). O Maxiful inicia o gateway quando a conta entra no Windows; iniciar junto com o sistema exigiria uma instalação com privilégios elevados, que o Maxiful nunca faz.
Os modelos de IA da conta respondem em um computador por vez. Se o proprietário também usar o Maxiful em um notebook e escolher Usar o Maxiful aqui nele, os assistentes do computador sempre ligado param de responder até que o proprietário escolha essa opção de novo nesse computador.
Para instalar você mesmo cada atualização nesse computador, defina AutoUpdate como 0 (veja Configurações gerenciadas). Os backups do Maxiful são arquivos compactados que ele grava no mesmo computador, na pasta pessoal do proprietário, em <name>-shared/backups; copie-os para fora do computador com as suas próprias ferramentas de backup.
O que ele coloca no computador
Abaixo, <name> é o nome curto da própria instalação.
No Windows
| Onde | O quê |
|---|---|
%LOCALAPPDATA%\Maxiful | O app: Maxiful.exe, gateway-launcher.exe (inicia cada comando de assistente na sua sandbox) e uninstall.exe. |
%LOCALAPPDATA%\ai.maxiful.desktop | Os dados do próprio app: os dados do WebView2, os logs (logs\Maxiful.log, logs\installer.log) e o registro da pergunta sobre o Defender. |
%LOCALAPPDATA%\Lanoko | O Node.js 24.21.0 com o runtime do OpenClaw instalado nele, e o cache do npm. A pasta tem o nome antigo do Maxiful. |
%USERPROFILE%\.openclaw-<name> | A instalação em si: a configuração do runtime, os assistentes, os espaços de trabalho e a memória deles, os segredos da instalação e o navegador próprio dos assistentes. |
%USERPROFILE%\.stomme | Os registros do próprio Maxiful para cada instalação, como os complementos e as decisões do proprietário. |
%USERPROFILE%\.lanoko-sandbox\<name> | Uma descrição em texto simples do limite da sandbox do gateway. |
| Registro | HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall\Maxiful (a entrada nos aplicativos instalados) e HKCU\Software\maxiful\Maxiful (a pasta de instalação). |
| Inicia ao entrar | Uma Tarefa Agendada para o gateway, a do próprio runtime (OpenClaw Gateway (<name>)) ou a do próprio Maxiful (ai.openclaw.gateway-<name>), ou, quando o Windows recusa uma tarefa, OpenClaw Gateway (<name>).vbs na pasta Inicializar da pessoa. Quando a Tarefa Agendada do próprio runtime executa o gateway, o Maxiful também adiciona uma Tarefa Agendada, Maxiful team keeper (<name>), que verifica a equipe a cada dois minutos; com o script na pasta Inicializar, ela não existe. Cada uma delas inicia o gateway quando a pessoa entra no Windows, como essa pessoa; nenhuma o inicia antes de alguém entrar. O runtime pede ao Windows uma tarefa com logon S4U e um gatilho na inicialização, que o Windows só registra em uma instalação com privilégios elevados, e o Maxiful nunca executa essa instalação com privilégios elevados: o Windows a recusa, e o runtime então usa o script da pasta Inicializar, ou mantém como estava uma tarefa registrada por uma versão anterior, que inicia quando a pessoa entra no Windows. schtasks /query /tn "OpenClaw Gateway (<name>)" /xml mostra a tarefa de um computador. |
Processos no Windows
| Processo | O que é |
|---|---|
Maxiful.exe | O app, assinado (veja abaixo). A janela dele roda no msedgewebview2.exe da Microsoft. |
node.exe | De %LOCALAPPDATA%\Lanoko\node-v24.21.0: o gateway do OpenClaw e os comandos do próprio runtime. É a build própria do Maxiful do Node.js 24.21.0, com uma correção para sandboxes do Windows, verificada contra um SHA-256 fixado no app antes de ser usada. |
gateway-launcher.exe | Da pasta do app: inicia cada comando de assistente dentro da sandbox dele. |
chrome.exe | De %USERPROFILE%\.openclaw-<name>\browser\chromium\chrome-win64: o navegador próprio dos assistentes, uma build do Chrome for Testing baixada do servidor de downloads do Playwright, verificada contra um SHA-256 fixado. Ele nunca abre o navegador da própria pessoa. |
cmd.exe, wscript.exe | Inicia o gateway: gateway.cmd, executado pela Tarefa Agendada do gateway por meio de gateway.vbs na pasta da instalação (uma tarefa de uma versão anterior) ou diretamente, ou por OpenClaw Gateway (<name>).vbs na pasta Inicializar da pessoa. |
Os comandos que os assistentes executam (um shell, PowerShell, scripts) rodam como processos filhos do gateway, por padrão na sandbox de cada assistente. O gateway escuta em 127.0.0.1 numa porta a partir de 18800 (18800 para a primeira instalação), e o Maxiful.exe em outras portas de loopback; no nosso PC de teste, nada do Maxiful escutou em nenhum outro endereço.
No Mac
| Onde | O quê |
|---|---|
/Applications/Maxiful.app | O app, uma única cópia para todos os usuários do Mac. |
~/Library/Application Support/Lanoko | O Node.js 24.21.0 com o runtime do OpenClaw instalado nele, o cache do npm e a pasta de trabalho do gateway. A pasta leva o nome anterior do Maxiful. |
~/.openclaw-<name> | A instalação em si: a configuração do runtime, os assistentes, os espaços de trabalho e a memória deles, os segredos da instalação e o navegador próprio dos assistentes. |
~/.stomme | Os registros próprios do Maxiful para cada instalação, como os complementos e as decisões do proprietário. |
~/.lanoko-sandbox/<name> | O perfil de sandbox do macOS do gateway, gateway.sb, com o qual o gateway é iniciado. |
~/Library/LaunchAgents/ai.openclaw.<name>.plist | O LaunchAgent do gateway: inicia o gateway quando a pessoa entra no Mac, como essa pessoa, e o inicia de novo se ele parar. |
~/Library/Logs/ai.maxiful.desktop/desktop.noindex | O log do app, Maxiful.log. |
~/Library/Logs/Lanoko/gateway.noindex | Os logs do gateway. |
| Porta-chaves | A chave de dispositivo do gateway, Maxiful Gateway Device Key, no porta-chaves da pessoa. |
Processos no Mac
| Processo | O que é |
|---|---|
Maxiful | O app, em /Applications/Maxiful.app, assinado e notarizado (veja Mac: Intune e Jamf Pro). |
node | De ~/Library/Application Support/Lanoko/node-v24.21.0/bin/node: o gateway do OpenClaw e os comandos do próprio runtime, iniciados pelo launchd, por padrão por meio de /usr/bin/sandbox-exec com o perfil acima. É o Node.js 24.21.0 oficial para macOS, de nodejs.org, verificado contra um SHA-256 fixado no app antes de ser usado. |
Google Chrome for Testing | De ~/.openclaw-<name>/browser/chromium: o navegador próprio dos assistentes, uma build do Chrome for Testing baixada do servidor de downloads do Playwright, verificada contra um SHA-256 fixado. Ele nunca abre o navegador da própria pessoa. |
Os comandos que os assistentes executam são processos filhos do gateway, por padrão na sandbox de cada assistente. O gateway escuta em 127.0.0.1 numa porta a partir de 18800, como no Windows.
Hosts de rede a liberar
Toda conexão é aberta do computador para fora, por HTTPS (o relay também usa WSS). Nada do nosso lado consegue abrir uma conexão com o computador.
Para a configuração e o uso diário
| Host | Usado para |
|---|---|
maxiful.ai | Login, incluindo o início e o retorno de um login com conta de trabalho, a conta, o feed de atualizações, a loja de complementos e os diagnósticos da configuração. |
lanoko.ai | Códigos de configuração, acesso aos modelos durante a configuração, o e-mail de boas-vindas e as associações de colegas. |
proxy.stomme.ai | Todas as chamadas a modelos na nuvem e os apps conectados em Mais apps de trabalho. |
stomme-model-proxy.stomme-ai.workers.dev | A lista de modelos. |
or-key-worker.stomme-ai.workers.dev | A franquia do plano. |
mc-cdn.lanoko.ai, mc-cdn.stomme.ai, mc-cdn.maxiful.ai | O índice de complementos e os complementos, a build do Node.js do Maxiful para Windows, o modelo local de busca na memória e os modelos de voz. |
nodejs.org | Node.js, na configuração. |
registry.npmjs.org | O runtime do OpenClaw, na configuração e quando uma atualização traz um runtime mais novo. |
cdn.playwright.dev | O navegador dos assistentes, na configuração. |
Só quando um recurso é usado
| Host | Usado para |
|---|---|
relay.maxiful.ai | O relay (WSS): um celular pareado e os dispositivos de um colega. |
relay.lanoko.ai | O mesmo relay com o nome anterior, para instalações e celulares pareados antes de 22 de outubro de 2026. |
ingress.lanoko.ai | Plataformas de chat que entregam por webhook, como Teams e Google Chat. |
teamtailor.maxiful.ai | A conexão com o Teamtailor. |
openrouter.ai | Busca na memória, em um computador que não consegue rodar o índice de busca local. |
github.com, huggingface.co | Alternativas para o mecanismo e o modelo locais de busca na memória quando nosso servidor de downloads não responde. github.com também fornece a ferramenta usada pela conexão com o Google Workspace. |
clawhub.ai | O catálogo de plugins do runtime. |
connect.composio.dev, backend.composio.dev | Só para o card opcional do Composio na nossa página de Integrações. |
go.microsoft.com | No Windows, o WebView2 Runtime, só quando ele não estiver instalado. |
| Serviços conectados | Cada serviço que uma pessoa conecta (Google, Microsoft 365, Slack e outros), nos endereços do próprio serviço. |
Como as ferramentas de segurança o veem
No Windows
Assinante. Todo instalador que publicamos é assinado por um certificado emitido para a PolyTrader Ltd (o subject do certificado é CN=Polytrader LTD), a empresa que publicava o Maxiful antes da Maxiful AB, e o mesmo vale para o Maxiful.exe que ele instala. Leia a assinatura de um arquivo com Get-AuthenticodeSignature e compare um download com o checksum da sua página de configuração (a Ajuda mostra como).
Partes sem assinatura. O node.exe do runtime e o chrome.exe dos assistentes não têm assinatura Authenticode; o Maxiful verifica cada um contra um SHA-256 fixado antes de usá-lo. Uma lista de permissões para eles deve se basear no caminho.
O que incluir na lista de permissões: os processos %LOCALAPPDATA%\Maxiful\Maxiful.exe (assinado) e gateway-launcher.exe, %LOCALAPPDATA%\Lanoko\node-v24.21.0\node.exe e %USERPROFILE%\.openclaw-*\browser\chromium\chrome-win64\chrome.exe; as quatro pastas do Defender acima; os hosts de rede acima.
No Mac
Assinante. O Maxiful.app é assinado com o Developer ID da equipe 467H9AXX55 e notarizado, então o Gatekeeper o abre sem exceção manual; uma lista de permissões pode identificá-lo pelo code requirement (em Mac: Intune e Jamf Pro). Leia a assinatura com codesign -dvv /Applications/Maxiful.app.
As partes do runtime. O node do gateway é o Node.js oficial para macOS e o navegador dos assistentes é o Chrome for Testing do Google, cada um baixado pelo Maxiful e verificado contra um SHA-256 fixado antes de ser usado. Uma lista de permissões para eles deve se basear no caminho.
O que incluir na lista de permissões: /Applications/Maxiful.app (equipe 467H9AXX55), ~/Library/Application Support/Lanoko/node-v24.21.0/bin/node e o navegador em ~/.openclaw-*/browser/chromium; os hosts de rede acima.
Nos dois
Comportamento. Um processo Node.js por usuário inicia quando a pessoa entra na sessão, faz chamadas HTTPS de saída, executa comandos para os assistentes e copia os arquivos dos plugins a cada início, por isso grava muitos arquivos na pasta da instalação.
CrowdStrike. A CrowdStrike publica um pacote de conteúdo "Search & Removal" do OpenClaw para o Falcon for IT. Ele procura processos do OpenClaw em execução, instalações globais do npm, binários do OpenClaw em caminhos comuns, serviços e pastas de estado e configuração nas pastas pessoais. O fluxo de remoção dele interrompe serviços e processos, desinstala pacotes npm, exclui pastas de instalação e configuração e remove registros de serviço, entre eles Tarefas Agendadas e plists do launchd. O gateway do Maxiful é um processo do OpenClaw em execução, com o estado em %USERPROFILE%\.openclaw-<name> no Windows e em ~/.openclaw-<name> no Mac, então esse pacote pode encontrá-lo. Executada em um computador com o Maxiful, a remoção pode parar a equipe e excluir a configuração e a memória dos assistentes. Use a busca do pacote para ver onde o Maxiful roda e mantenha a remoção longe dos computadores em que sua organização usa o Maxiful.
Liberar ou não é uma decisão da sua equipe de segurança. Esses processos executam comandos para os assistentes, por padrão dentro da sandbox de cada assistente, com as aprovações descritas na nossa página de Segurança.
Configurações gerenciadas
O Maxiful lê configurações gerenciadas a partir da versão 0.9.60, no Windows e no Mac; versões anteriores não as leem.
O departamento de TI pode definir algumas configurações do Maxiful de forma centralizada: com Política de Grupo ou Intune no Windows, e com um perfil de configuração do Jamf, do Intune ou de outra ferramenta de gerenciamento de dispositivos no Mac. O Maxiful as lê toda vez que as usa; uma mudança em uma das opções do proprietário chega aos assistentes na próxima vez que o Maxiful iniciar, e as configurações dele avisam isso até lá. Uma configuração definida pela sua organização aparece como Definido pela sua organização nas configurações do Maxiful e não pode ser alterada ali, e as configurações do Maxiful listam tudo o que você definiu no topo de Acesso. Sem nenhuma política, o Maxiful funciona como em um computador que nenhum departamento de TI gerencia.
| Nome | Valor | O que faz |
|---|---|---|
Workspace | Texto | O Maxiful no computador abre apenas o espaço de trabalho com este ID. O proprietário do espaço de trabalho encontra o ID nas configurações do Maxiful, no topo de Acesso, como O ID deste espaço de trabalho. Uma pessoa que não é membro do espaço de trabalho vê que sua organização definiu isso e entra no espaço de trabalho por convite; o espaço de trabalho dela e qualquer outro não abrem nesse computador. |
AutoUpdate | 0 ou 1 | 0: o Maxiful não procura, não baixa nem instala atualizações, as configurações dele informam que sua organização as instala, e você mesmo distribui cada novo instalador (veja Atualizações). 1: o Maxiful se atualiza sozinho, como sem política. |
OwnerSwitches | 0 ou 1, cada | Uma das opções do proprietário abaixo, pelo nome: 0 desativada, 1 ativada, independentemente do que o proprietário escolheu. Uma opção que você não define continua a critério do proprietário. Quando você remove um valor, volta a valer a escolha do próprio proprietário, ou a configuração padrão do Maxiful se o proprietário nunca escolheu; assim como um valor que você define, isso chega aos assistentes na próxima vez que o Maxiful iniciar. |
As opções do proprietário
| Nome | A opção no Maxiful | Onde fica |
|---|---|---|
terminal | Abrir um terminal neste computador | Acesso (só no Mac) |
private-network | Deixar assistentes abrirem páginas deste computador e da minha rede | Acesso |
pane-reach | Deixar os painéis dos assistentes executarem código e acessarem fora do Maxiful | Acesso |
claude-code-background | Deixar o Claude Code manter comandos longos rodando em segundo plano | Acesso |
session-reach | Assistentes podem consultar todas as conversas deste computador (para aprender com trabalhos anteriores) | Acesso |
model-costs | Mostrar custos dos modelos em dólares | Avançado |
next-prompt | Sugerir minha próxima mensagem | Avançado |
checkin-whole-conversation | Check-ins leem a conversa inteira | Avançado |
voice-notes | Transcrever mensagens de voz | Voz e áudio |
Além de um número, o Maxiful lê os textos 0, 1, true e false como 0 ou 1. Um valor que ele não consegue ler, como outro texto onde vai 0 ou 1, outro tipo de registro (REG_QWORD, REG_EXPAND_SZ, REG_BINARY) ou um nome em OwnerSwitches que ele não conhece, não é aplicado, e as configurações do Maxiful o indicam em Definido pela sua organização. No Windows, isso vale para todos os valores da chave de política e da subchave dela, tanto em HKLM quanto em HKCU.
No Windows
O Maxiful lê HKLM\SOFTWARE\Policies\Maxiful e depois HKCU\SOFTWARE\Policies\Maxiful; um valor em HKLM prevalece sobre o mesmo valor em HKCU. Workspace é um REG_SZ e AutoUpdate um REG_DWORD; cada opção do proprietário é um REG_DWORD na subchave OwnerSwitches, com o nome da tabela. Este par ADMX e ADML grava exatamente esses valores: salve-os como maxiful.admx e en-US\maxiful.adml no seu repositório de definições de política, ou importe-os no Intune como modelos administrativos importados.
maxiful.admx
<?xml version="1.0" encoding="utf-8"?>
<policyDefinitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" revision="1.0" schemaVersion="1.0" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<policyNamespaces>
<target prefix="maxiful" namespace="Maxiful.Policies" />
</policyNamespaces>
<resources minRequiredRevision="1.0" />
<supportedOn>
<definitions>
<definition name="SUPPORTED_Maxiful" displayName="$(string.SUPPORTED_Maxiful)" />
</definitions>
</supportedOn>
<categories>
<category name="Maxiful" displayName="$(string.Maxiful)" />
<category name="OwnerSwitches" displayName="$(string.OwnerSwitches)">
<parentCategory ref="Maxiful" />
</category>
</categories>
<policies>
<policy name="Workspace" class="Both" displayName="$(string.Workspace)" explainText="$(string.Workspace_Explain)" presentation="$(presentation.Workspace)" key="SOFTWARE\Policies\Maxiful">
<parentCategory ref="Maxiful" />
<supportedOn ref="SUPPORTED_Maxiful" />
<elements>
<text id="Workspace" valueName="Workspace" maxLength="128" required="true" />
</elements>
</policy>
<policy name="AutoUpdate" class="Both" displayName="$(string.AutoUpdate)" explainText="$(string.AutoUpdate_Explain)" key="SOFTWARE\Policies\Maxiful" valueName="AutoUpdate">
<parentCategory ref="Maxiful" />
<supportedOn ref="SUPPORTED_Maxiful" />
<enabledValue><decimal value="1" /></enabledValue>
<disabledValue><decimal value="0" /></disabledValue>
</policy>
<policy name="OwnerSwitch_PrivateNetwork" class="Both" displayName="$(string.OwnerSwitch_PrivateNetwork)" explainText="$(string.OwnerSwitch_PrivateNetwork_Explain)" key="SOFTWARE\Policies\Maxiful\OwnerSwitches" valueName="private-network">
<parentCategory ref="OwnerSwitches" />
<supportedOn ref="SUPPORTED_Maxiful" />
<enabledValue><decimal value="1" /></enabledValue>
<disabledValue><decimal value="0" /></disabledValue>
</policy>
<policy name="OwnerSwitch_PaneReach" class="Both" displayName="$(string.OwnerSwitch_PaneReach)" explainText="$(string.OwnerSwitch_PaneReach_Explain)" key="SOFTWARE\Policies\Maxiful\OwnerSwitches" valueName="pane-reach">
<parentCategory ref="OwnerSwitches" />
<supportedOn ref="SUPPORTED_Maxiful" />
<enabledValue><decimal value="1" /></enabledValue>
<disabledValue><decimal value="0" /></disabledValue>
</policy>
<policy name="OwnerSwitch_ClaudeCodeBackground" class="Both" displayName="$(string.OwnerSwitch_ClaudeCodeBackground)" explainText="$(string.OwnerSwitch_ClaudeCodeBackground_Explain)" key="SOFTWARE\Policies\Maxiful\OwnerSwitches" valueName="claude-code-background">
<parentCategory ref="OwnerSwitches" />
<supportedOn ref="SUPPORTED_Maxiful" />
<enabledValue><decimal value="1" /></enabledValue>
<disabledValue><decimal value="0" /></disabledValue>
</policy>
<policy name="OwnerSwitch_SessionReach" class="Both" displayName="$(string.OwnerSwitch_SessionReach)" explainText="$(string.OwnerSwitch_SessionReach_Explain)" key="SOFTWARE\Policies\Maxiful\OwnerSwitches" valueName="session-reach">
<parentCategory ref="OwnerSwitches" />
<supportedOn ref="SUPPORTED_Maxiful" />
<enabledValue><decimal value="1" /></enabledValue>
<disabledValue><decimal value="0" /></disabledValue>
</policy>
<policy name="OwnerSwitch_ModelCosts" class="Both" displayName="$(string.OwnerSwitch_ModelCosts)" explainText="$(string.OwnerSwitch_ModelCosts_Explain)" key="SOFTWARE\Policies\Maxiful\OwnerSwitches" valueName="model-costs">
<parentCategory ref="OwnerSwitches" />
<supportedOn ref="SUPPORTED_Maxiful" />
<enabledValue><decimal value="1" /></enabledValue>
<disabledValue><decimal value="0" /></disabledValue>
</policy>
<policy name="OwnerSwitch_NextPrompt" class="Both" displayName="$(string.OwnerSwitch_NextPrompt)" explainText="$(string.OwnerSwitch_NextPrompt_Explain)" key="SOFTWARE\Policies\Maxiful\OwnerSwitches" valueName="next-prompt">
<parentCategory ref="OwnerSwitches" />
<supportedOn ref="SUPPORTED_Maxiful" />
<enabledValue><decimal value="1" /></enabledValue>
<disabledValue><decimal value="0" /></disabledValue>
</policy>
<policy name="OwnerSwitch_CheckinWholeConversation" class="Both" displayName="$(string.OwnerSwitch_CheckinWholeConversation)" explainText="$(string.OwnerSwitch_CheckinWholeConversation_Explain)" key="SOFTWARE\Policies\Maxiful\OwnerSwitches" valueName="checkin-whole-conversation">
<parentCategory ref="OwnerSwitches" />
<supportedOn ref="SUPPORTED_Maxiful" />
<enabledValue><decimal value="1" /></enabledValue>
<disabledValue><decimal value="0" /></disabledValue>
</policy>
<policy name="OwnerSwitch_VoiceNotes" class="Both" displayName="$(string.OwnerSwitch_VoiceNotes)" explainText="$(string.OwnerSwitch_VoiceNotes_Explain)" key="SOFTWARE\Policies\Maxiful\OwnerSwitches" valueName="voice-notes">
<parentCategory ref="OwnerSwitches" />
<supportedOn ref="SUPPORTED_Maxiful" />
<enabledValue><decimal value="1" /></enabledValue>
<disabledValue><decimal value="0" /></disabledValue>
</policy>
</policies>
</policyDefinitions>
en-US\maxiful.adml
<?xml version="1.0" encoding="utf-8"?>
<policyDefinitionResources xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" revision="1.0" schemaVersion="1.0" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
<displayName>Maxiful</displayName>
<description>The settings an IT department sets for Maxiful.</description>
<resources>
<stringTable>
<string id="Maxiful">Maxiful</string>
<string id="OwnerSwitches">The owner's switches</string>
<string id="SUPPORTED_Maxiful">Maxiful for Windows</string>
<string id="Workspace">Open only this workspace</string>
<string id="Workspace_Explain">Maxiful on this computer opens only the workspace with this ID. The workspace's owner finds the ID in Maxiful's settings, under Access. A person who is not a member of the workspace is asked to join it by invitation, and no other workspace opens on this computer.</string>
<string id="AutoUpdate">Let Maxiful update itself</string>
<string id="AutoUpdate_Explain">Disabled: Maxiful does not look for, download or install updates, and you install each new version yourself. Enabled or not configured: Maxiful updates itself.</string>
<string id="OwnerSwitch_PrivateNetwork">Let assistants open pages on this computer and my network</string>
<string id="OwnerSwitch_PrivateNetwork_Explain">Enabled: on. Disabled: off. Not configured: the owner decides, in Maxiful's settings under Access.</string>
<string id="OwnerSwitch_PaneReach">Let assistants' panes run code and reach outside Maxiful</string>
<string id="OwnerSwitch_PaneReach_Explain">Enabled: on. Disabled: off. Not configured: the owner decides, in Maxiful's settings under Access.</string>
<string id="OwnerSwitch_ClaudeCodeBackground">Let Claude Code keep long commands running in the background</string>
<string id="OwnerSwitch_ClaudeCodeBackground_Explain">Enabled: on. Disabled: off. Not configured: the owner decides, in Maxiful's settings under Access.</string>
<string id="OwnerSwitch_SessionReach">Assistants can look through all conversations on this computer (so they learn from past work)</string>
<string id="OwnerSwitch_SessionReach_Explain">Enabled: on. Disabled: off. Not configured: the owner decides, in Maxiful's settings under Access.</string>
<string id="OwnerSwitch_ModelCosts">Show model costs in dollars</string>
<string id="OwnerSwitch_ModelCosts_Explain">Enabled: on. Disabled: off. Not configured: the owner decides, in Maxiful's settings under Advanced.</string>
<string id="OwnerSwitch_NextPrompt">Suggest my next message</string>
<string id="OwnerSwitch_NextPrompt_Explain">Enabled: on. Disabled: off. Not configured: the owner decides, in Maxiful's settings under Advanced.</string>
<string id="OwnerSwitch_CheckinWholeConversation">Check-ins read the whole conversation</string>
<string id="OwnerSwitch_CheckinWholeConversation_Explain">Enabled: on. Disabled: off. Not configured: the owner decides, in Maxiful's settings under Advanced.</string>
<string id="OwnerSwitch_VoiceNotes">Transcribe voice notes</string>
<string id="OwnerSwitch_VoiceNotes_Explain">Enabled: on. Disabled: off. Not configured: the owner decides, in Maxiful's settings under Voice and audio.</string>
</stringTable>
<presentationTable>
<presentation id="Workspace">
<textBox refId="Workspace">
<label>Workspace ID</label>
</textBox>
</presentation>
</presentationTable>
</resources>
</policyDefinitionResources>
No Mac
O Maxiful lê as preferências gerenciadas do próprio domínio, ai.maxiful.desktop, que um perfil de configuração instala como configurações forçadas (o payload de preferências gerenciadas da Apple, com.apple.ManagedClient.preferences). Só conta um valor definido pelo perfil: um valor gravado de outra forma, como com defaults write, não é lido. Workspace é uma string, AutoUpdate um inteiro (ou um booleano) e OwnerSwitches um dicionário com os nomes da tabela. Este perfil de exemplo restringe o computador a um espaço de trabalho, deixa as atualizações com você, desativa as opções do terminal e da rede privada e mostra os custos dos modelos; substitua o ID do espaço de trabalho, os identificadores e os UUIDs pelos seus.
maxiful.mobileconfig
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadType</key><string>Configuration</string>
<key>PayloadVersion</key><integer>1</integer>
<key>PayloadIdentifier</key><string>com.example.maxiful</string>
<key>PayloadUUID</key><string>00000000-0000-0000-0000-000000000001</string>
<key>PayloadDisplayName</key><string>Maxiful</string>
<key>PayloadScope</key><string>System</string>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadType</key><string>com.apple.ManagedClient.preferences</string>
<key>PayloadVersion</key><integer>1</integer>
<key>PayloadIdentifier</key><string>com.example.maxiful.settings</string>
<key>PayloadUUID</key><string>00000000-0000-0000-0000-000000000002</string>
<key>PayloadDisplayName</key><string>Maxiful settings</string>
<key>PayloadContent</key>
<dict>
<key>ai.maxiful.desktop</key>
<dict>
<key>Forced</key>
<array>
<dict>
<key>mcx_preference_settings</key>
<dict>
<key>Workspace</key><string>YOUR-WORKSPACE-ID</string>
<key>AutoUpdate</key><integer>0</integer>
<key>OwnerSwitches</key>
<dict>
<key>terminal</key><false/>
<key>private-network</key><false/>
<key>model-costs</key><true/>
</dict>
</dict>
</dict>
</array>
</dict>
</dict>
</dict>
</array>
</dict>
</plist>
Atualizações
O Maxiful procura uma nova versão em maxiful.ai quando inicia e a cada seis horas. A pessoa escolhe Atualizar e reiniciar ou Depois. Uma nova versão do Maxiful pode trazer um runtime do OpenClaw mais novo; nesse caso, o Maxiful atualiza o runtime para essa pessoa com o npm, a partir de registry.npmjs.org.
Para instalar você mesmo cada nova versão e impedir que o Maxiful procure atualizações sozinho, no Windows ou no Mac, defina AutoUpdate como 0 (veja Configurações gerenciadas): o Maxiful passa a informar que sua organização instala as atualizações dele.
No Windows
Uma nova versão é um instalador assinado, verificado contra uma chave embutida no app antes de rodar, e a atualização executa o instalador no modo passivo. Você também pode distribuir cada novo instalador por conta própria com /S, como acima.
No Mac
Uma nova versão é um arquivo compactado assinado do app, verificado contra uma chave embutida no app antes de ser usado, e substitui o app no mesmo lugar quando a conta da pessoa pode alterar essa cópia.
Uma cópia que a pessoa não pode alterar. Quando /Applications/Maxiful.app pertence ao sistema (o proprietário é root) e a conta da pessoa não pode alterá-lo, o Maxiful não se atualiza sozinho: não baixa nada, nunca pede a senha de um administrador, não oferece Atualizar e reiniciar e informa, onde mostra as atualizações, que há uma versão mais nova disponível e que sua organização instala as atualizações deste Mac. Distribua cada nova versão com o seu MDM: no Intune, envie a imagem de disco dela para o mesmo app; no Jamf Pro, crie o pacote dela com o Composer e implante-o como acima. Uma cópia que a conta de um administrador pode alterar se atualiza sozinha para essa conta, como em qualquer Mac.
Como remover o Maxiful
Tudo, pela própria pessoa: nas configurações do Maxiful, Remover o Maxiful deste computador. Isso encerra o processo em segundo plano e o que o inicia quando a pessoa entra na conta (as tarefas agendadas no Windows, o LaunchAgent no Mac), exclui os dados e as credenciais da instalação e remove o runtime do Node.js que ela instalou, a menos que outra instalação no computador ainda o use. No Windows, o desinstalador é iniciado quando o Maxiful é fechado; no Mac, o app vai para a Lixeira, se a conta da pessoa tiver permissão para isso. Os documentos da pessoa não são alterados.
No Windows
Tudo, de forma silenciosa: %LOCALAPPDATA%\Maxiful\uninstall.exe /S /REMOVEALL executa Remover o Maxiful deste computador para a pessoa dona da instalação, sem ninguém diante da tela, e depois remove o app. Não é possível desfazer. O que foi removido, e o que não pôde ser, fica registrado em removal-report.json, em %LOCALAPPDATA%\ai.maxiful.desktop\logs.
Sem /REMOVEALL: %LOCALAPPDATA%\Maxiful\uninstall.exe /S, que a receita do Intune acima executa, remove o app, os atalhos, a tarefa que mantém a equipe ativa e as exclusões do Defender que o Maxiful adicionou (o Windows pode voltar a pedir permissão para essas pastas). Também encerra o processo em segundo plano dos assistentes e remove o que o inicia quando a pessoa entra na conta, mas mantém o runtime e os dados da instalação. O installer.log, junto aos outros logs do app, informa se algo continuou em execução.
No Mac
Primeiro, execute Remover o Maxiful deste computador para cada pessoa: remover só o app deixa o gateway em segundo plano dessa pessoa em execução, com tudo o que ele guarda. Depois, remova /Applications/Maxiful.app pelo seu MDM, por exemplo com uma atribuição Uninstall no Intune.