Bem-vindo ao WSL Manager 👋

![GitHub Release Date](https://img.shields.io/github/release-date/bostrot/wslmanager?style=for-the-badge) ![GitHub Workflow](https://img.shields.io/github/actions/workflow/status/bostrot/wslmanager/releaser.yml?branch=main&label=nightly&style=for-the-badge) ![GitHub release (latest by date)](https://img.shields.io/github/v/release/bostrot/wslmanager?style=for-the-badge) [![Documentation](https://img.shields.io/badge/DOCUMENTATION-WIKI-green?style=for-the-badge)](https://github.com/bostrot/wslmanager/wiki) [![GitLab stars](https://img.shields.io/gitlab/stars/bostrot/wsl2-distro-manager?gitlab_url=https%3A%2F%2Fgitlab.com&label=GitLab&style=for-the-badge)](https://gitlab.com/bostrot/wsl2-distro-manager) [![Discord](https://img.shields.io/discord/1100070299308937287?style=for-the-badge)](https://discord.gg/fY5uE5WRTP)

English | 简体中文 | 繁體中文 | Deutsch | Español | 日本語 | Magyar | Português | Türkçe

![WSL Distro Manager no Windows, tema escuro](./images/home-dark.png)

Mostrado no Windows · o mesmo aplicativo gerencia VMs nativas no macOS — abra Veja no macOS abaixo

Prévia com tema claro (Windows) ![WSL Distro Manager no Windows, tema claro](./images/home-light.png)
🍎 Veja no macOS — máquinas virtuais Linux e macOS nativas pelo framework Virtualization da Apple (beta) ![WSL Manager no macOS, tema escuro](./images/home-macos-dark.png) ![WSL Manager no macOS, tema claro, com o assistente de IA aberto](./images/home-macos-light.png)
> O **WSL Distro Manager** é uma interface gráfica gratuita e de código aberto > para o Subsistema do Windows para Linux — e, no macOS, para VMs Linux nativas. > Instale, copie, renomeie, mova, faça backup e exclua distros do WSL sem > memorizar um único parâmetro do `wsl.exe` — além de modelos, trechos de > comandos salvos, montagem de discos, edição do `.wslconfig`, WSL remoto por > SSH e um servidor MCP que permite a agentes de IA operar seu ambiente WSL. Em > um Mac, este mesmo aplicativo gerencia máquinas virtuais pelo framework > Virtualization da Apple. ## 🚀 Recursos **Gerenciar distros** - [x] Instale a partir de um catálogo integrado ou traga o seu próprio rootfs - [x] Copie, renomeie, mova para outra unidade, faça backup e exclua instâncias - [x] Salve todas as instâncias em uma pasta — com uma lista do que há nela — e restaure-as em outro PC - [x] Compacte discos virtuais para recuperar o espaço que o WSL nunca devolve - [x] Suporta Ubuntu, Debian, Alpine, Kali Linux, openSUSE, SLES e qualquer outra coisa que o WSL aceite **Colocar instâncias no ar mais rápido** - [x] Use qualquer imagem Docker como distro — o próprio Docker não é necessário - [x] Empacote uma distro já configurada como um arquivo `.wsl` portátil que instala em qualquer máquina (os modelos foram descontinuados em favor dele) - [x] Turnkey Linux e outros contêineres LXC (experimental) - [x] Trechos: mantenha seus comandos de configuração no aplicativo e execute-os em qualquer instância - [x] Aponte o aplicativo para o seu próprio repositório de imagens rootfs - [x] Navegue pelos arquivos de uma distro e copie os que escolher para outra instância — sem compartilhamento, sem montagem e sem Explorador **Configurar sem editar arquivos à mão** - [x] systemd, automount, usuário padrão, comando e caminho de inicialização por distro - [x] Memória, processadores, swap, modo de rede, DNS e o resto do `.wslconfig` - [x] Monte um disco físico ou um VHD no WSL, com controle de partição e sistema de arquivos - [x] Compartilhar pastas do host em uma distro ou VM no ponto de montagem que você escolher, somente leitura se quiser — inclusive para o AI Workspace **Trabalhe do jeito que você já trabalha** - [x] Abra o Terminal do Windows, o VS Code ou o Explorador diretamente dentro de uma distro - [x] Cada instância no menu do Terminal do Windows, em dia enquanto o app está aberto — adicionada como um fragmento próprio, então suas configurações do Terminal nunca são alteradas - [x] Gerencie o WSL em *outra* máquina Windows por SSH - [x] Sincronize uma distro entre duas máquinas da sua rede - [x] Alcance uma instância pelo nome: o nome de host é mantido no arquivo hosts, então `ssh ubuntu.wsl` continua funcionando depois de reiniciar - [x] Mantém-se atualizado: as versões do site e do GitHub baixam e instalam as novidades sozinhas (instalações da Store são atualizadas pela Store) - [x] Temas claro e escuro, disponível em nove idiomas **No macOS: máquinas virtuais nativas** *(beta)* - [x] O mesmo aplicativo gerencia VMs pelo framework Virtualization da Apple em vez do WSL - [x] Crie VMs Linux a partir de uma ISO de instalação, de uma imagem de nuvem ou de um modelo exportado - [x] Crie VMs convidadas de macOS a partir de uma imagem de restauração (Apple Silicon) - [x] Inicie, pare, clone, exporte/importe e transforme VMs em modelos, como faz com as distros - [x] Execute comandos dentro das VMs por SSH provisionado automaticamente (cloud-init), pela interface, pelo chat de IA ou por clientes MCP - [x] Um terminal para qualquer VM a partir da sua linha: uma sessão SSH no convidado Linux ou macOS, e o console serial quando um convidado Linux não tem a que se conectar - [x] Sua própria chave de `~/.ssh` é autorizada em toda VM Linux (e criada, se você não tiver nenhuma), então um simples `ssh usuario@ip-da-vm` também funciona - [x] Cada VM recebe uma senha de login que você pode consultar na linha dela, para entrar na tela da própria VM - [x] Defina na mesma linha a conta com que cada caminho SSH entra: o nome de um convidado macOS é digitado no Assistente de Configuração, onde o app não consegue vê-lo - [x] Compile com `scripts/build_macos.sh` — ele inclui o auxiliar `vmctl` assinado **Pro** *(compra única: Microsoft Store no Windows, chave de licença em [wslmanager.com/buy](https://wslmanager.com/buy/) no macOS e para instalações fora da Store — nunca assinatura)* - [x] **AI Workspace** — execute Hermes Agent, OpenClaw, Open WebUI e OpenCode em uma distro WSL dedicada e isolada - [x] **Um modelo e endpoint para todas as ferramentas de IA** — o endpoint da API, a chave e o modelo do assistente definidos em Configurações são os que OpenCode, OpenClaw e Hermes também usam; defina-os uma vez e uma ferramenta instalada depois também os recebe - [x] **Assistente de IA com ferramentas** — o chat integrado consegue de fato *operar* seu WSL: ele lista e inspeciona distros, executa comandos, edita configurações, cria trechos, monta discos e empacota distros com as mesmas ferramentas expostas pelo servidor MCP - [x] **Toda execução da IA que altera uma instância é salva como trecho** — com os comandos executados e o que cada ferramenta relatou, com link no chat, para você revisar, repetir em uma instância nova ou compartilhar - [x] **IA em sandbox** — suba uma distro Ubuntu descartável e dê a um chat de IA acesso *apenas* ao interior desse sandbox - [x] **Fila de tarefas** — entregue uma lista ao assistente e deixe-o trabalhar nela, marcando cada item conforme avança - [x] **Servidor MCP** — exponha o WSL ao Claude Desktop, ao Claude Code, ao opencode e a outros clientes MCP - [x] **Painel web** — gerencie tudo pelo celular ou por outro computador: leia um QR code, tenha o aplicativo inteiro no navegador e, se quiser, publique-o para fora da sua rede por um túnel do Cloudflare > Os recursos de IA funcionam com credenciais que **você** traz — a sua própria > chave de API compatível com OpenAI. Nenhum serviço de IA é hospedado ou > incluído, não há cota e nenhuma requisição passa pelos servidores de > terceiros. O Pro desbloqueia os recursos no aplicativo; ele não compra > créditos de IA. Veja > [Free vs Pro](https://github.com/bostrot/wslmanager/wiki/Pro-Version). > **Por que existe uma versão paga?** O WSL Manager é, desde 2021, um projeto de > uma pessoa só, feito nas horas vagas, e todos os recursos acima — inclusive os > gratuitos — foram construídos em noites e fins de semana. Gerenciar suas > distros e VMs é gratuito e continuará sendo, e todo o aplicativo continua de > código aberto. O Pro é a camada de IA em cima disso, e o que ele traz é o que > transforma manutenção e novos recursos em trabalho planejado e regular, em vez > do tempo que sobra. Compre uma vez, fique com ele para sempre, e você estará > financiando diretamente a próxima versão. > 🎁 **Oferta de lançamento — as 100 primeiras pessoas ganham o Pro.** Abra o > pagamento com o código `START100` já aplicado e sua chave de licença estará na > página seguinte: [**Windows**](https://buy.stripe.com/5kQeVd6ECgur3wJ2TO1Fe03?prefilled_promo_code=START100) · > [**macOS**](https://buy.stripe.com/dRm00jbYWfqnaZb1PK1Fe02?prefilled_promo_code=START100). > Uma licença por pessoa; quando as 100 acabarem, o código deixa de funcionar. ## 🤖 Assistente de IA e MCP *(Pro)* Tudo nesta seção faz parte do **Pro**; o aplicativo gratuito não tem nada disso. O assistente de IA é um **agente**, não apenas uma caixa de chat: ele recebe o mesmo conjunto de ferramentas que o servidor MCP expõe, então, quando você pergunta "quais distros eu tenho?" ou pede "instale o Ubuntu e defina meu usuário padrão", ele chama ferramentas reais contra o seu WSL em vez de adivinhar. As chamadas de ferramenta aparecem ali mesmo enquanto ele trabalha. **Configure o provedor** em **Configurações → Bring Your Own AI Key**: qualquer endpoint compatível com OpenAI funciona (OpenAI, Azure, um proxy LiteLLM, Ollama, LM Studio, …). Informe a URL base, a chave e o modelo. O botão **Carregar lista de modelos** preenche um autocompletar a partir do `/models` do provedor, e **Testar conexão** comprova que as credenciais funcionam antes de você abrir o chat. **Não quer nada disso?** **Configurações → Bring Your Own AI Key → Recursos de IA** desliga o assistente, o diagnóstico de erros e o AI Workspace — nada relacionado à IA é mostrado e nenhum ambiente de trabalho é preparado para você. Fica desligado até você responder: o WSL Manager pergunta uma vez, na primeira inicialização após instalar ou atualizar, e nada relacionado à IA é executado antes disso. **Sandboxes** (AI Workspace → *Adicionar distro sandbox*) criam uma instância descartável a partir de qualquer imagem do catálogo (o Ubuntu mais recente, por padrão) — uma distro WSL no Windows, uma VM Linux originada de uma imagem de nuvem no macOS, criada e iniciada para você. Ao chat dela são entregues apenas as ferramentas `sandbox_*`, presas àquela única instância — o modelo pode fazer qualquer coisa *dentro* do sandbox e jamais enxerga o seu host ou outra instância. Uma ressalva honesta: o próprio sandbox tem acesso normal à internet, como qualquer distro ou VM. Os chats de sandbox usam o mesmo painel encaixado do assistente (fila de tarefas incluída), suas transcrições persistem e o botão de histórico no cabeçalho do chat alterna entre o assistente e qualquer sessão de sandbox. **Fila de tarefas** — abra a seção *Tarefas* no topo do chat, adicione itens e pressione ▶. O assistente percorre a lista com suas ferramentas e marca cada item ao concluí-lo; você pode continuar adicionando tarefas enquanto ele trabalha. ### Conectar clientes de IA externos (MCP) Ative **Configurações → Servidor MCP** (Pro). Ele serve o protocolo MCP em `http://127.0.0.1:59133/mcp`, apenas em loopback, protegido por um token bearer exibido no mesmo painel. As ferramentas cobrem o ciclo de vida completo — criar, importar, configurar, executar, empacotar e (com um sinalizador de confirmação) desregistrar distros, além de trechos, montagem de discos e sessões de terminal persistentes. **Claude Desktop** — clique em **Conectar Claude Desktop** no painel MCP. Ele escreve a entrada abaixo no `claude_desktop_config.json` para você (requer Node.js); reinicie o Claude Desktop em seguida. Para fazer isso à mão, ou para qualquer outro cliente MCP por stdio, faça a ponte do endpoint HTTP com o [`mcp-remote`](https://www.npmjs.com/package/mcp-remote): ```jsonc // claude_desktop_config.json (%APPDATA%\Claude\) { "mcpServers": { "wsl-manager": { "command": "npx", "args": [ "-y", "mcp-remote", "http://127.0.0.1:59133/mcp", "--header", "Authorization:${AUTH_HEADER}" ], "env": { "AUTH_HEADER": "Bearer " } } } } ``` **Claude Code** — a mesma ponte, um comando: ```bash claude mcp add wsl-manager -- npx -y mcp-remote http://127.0.0.1:59133/mcp \ --header "Authorization: Bearer " ``` **opencode** — adicione-o sob `mcp` no seu `opencode.json` (ou `~/.config/opencode/opencode.json`): ```jsonc { "mcp": { "wsl-manager": { "type": "local", "command": ["npx", "-y", "mcp-remote", "http://127.0.0.1:59133/mcp", "--header", "Authorization: Bearer "] } } } ``` Qualquer cliente MCP que fale HTTP em streaming também pode apontar direto para o endpoint com um cabeçalho `Authorization: Bearer `, dispensando o `mcp-remote`. Para alcançá-lo de outra máquina, ative o **túnel do Cloudflare** embutido no mesmo painel e use a URL pública que ele imprime. ## 📱 Painel web *(Pro)* Ative **Configurações → Painel web** (Pro) e o aplicativo passa a servir um painel de navegador na porta `59134` para todos os dispositivos da sua rede — tanto no Windows quanto no macOS. Leia com o celular o QR code que o painel mostra (ou copie o link) e você terá o aplicativo inteiro no navegador: iniciar, parar, duplicar e excluir instâncias, executar comandos, abrir sessões de terminal persistentes, rodar seus trechos salvos e usar todas as demais ferramentas (importação, exportação, empacotamento, `.wslconfig`, discos, criação de VMs) por formulários gerados. É o mesmo conjunto de ferramentas que o assistente de IA e o servidor MCP usam. O acesso é protegido por um token que faz parte do link (`?token=…`), de modo que um QR code lido é tudo de que um dispositivo precisa — e regenerar o token no painel revoga todos os links distribuídos até então. O painel escuta em todas as interfaces de propósito; ative **Publicar via túnel do Cloudflare** no mesmo lugar para obter um link HTTPS público temporário (o QR code passa a apontar para ele) quando precisar dele fora de casa. Uma vez publicado, o token é a única coisa protegendo uma superfície capaz de executar comandos, então compartilhe esse link com cuidado. ## 📦 Instalação
Microsoft Store Este aplicativo está disponível na [Microsoft Store](https://apps.microsoft.com/store/detail/wsl-manager/9NWS9K95NMJB?hl=en-us&gl=US).
macOS via Homebrew ```sh brew install --cask wsl-manager ``` Apple Silicon, macOS 11 ou mais recente. O cask acompanha o próprio Homebrew, por isso não é preciso nenhum tap; `brew upgrade --cask wsl-manager` traz as novas versões.
Download direto Você pode obter este aplicativo por download direto na página de [Releases](https://github.com/bostrot/wslmanager/releases). O Windows vem como `.exe` de instalação, `.msix` e `.zip` portátil; o macOS, como `.dmg`.
Instalação via Winget ```sh winget install Bostrot.WSLManager ```
Instalação via Scoop ```sh scoop install extras/wsl2-distro-manager ```
Instalação via Chocolatey Este pacote é mantido pela comunidade ([@mikeee](https://github.com/mikeee/ChocoPackages)). Não é um pacote oficial. ```sh choco install wsl2-distro-manager ```
Instalar uma versão nightly A versão nightly mais recente está disponível como artefato no workflow "releaser" ou por [este link](https://nightly.link/bostrot/wslmanager/workflows/releaser/main/wsl2-distro-manager-nightly-archive.zip).
## ⚙️ Build Verifique se o [flutter](https://flutter.dev/desktop) está instalado. ### Windows ```powershell flutter config --enable-windows-desktop flutter upgrade flutter build windows # build it flutter run -d windows # run it ``` ### macOS As VMs são criadas pelo `vmctl`, um pequeno auxiliar em Swift que opera o Virtualization.framework — não pelo aplicativo Flutter em si. O framework só responde a processos que carregam a permissão `com.apple.security.virtualization`, e o `swift build` não a adiciona, então **o auxiliar precisa ser compilado e assinado antes que o aplicativo consiga iniciar uma VM**: ```bash flutter config --enable-macos-desktop # Build + sign vmctl and install it for dev runs. Re-run after any change # under macos/vmctl/ — `flutter run` never rebuilds the helper. VMCTL_ONLY=1 scripts/build_macos.sh flutter run -d macos ``` Pule esse passo e o aplicativo abre normalmente, mas iniciar uma VM falha com: ``` VM failed to start: Error Domain=VZErrorDomain Code=2 "The process doesn't have the "com.apple.security.virtualization" entitlement." ``` É o *auxiliar* sem a permissão, não o aplicativo — as permissões do próprio `Runner` já estão corretas. O auxiliar assinado é instalado em `~/Library/Application Support/WSLManager/bin/vmctl`, que é onde as execuções de depuração o procuram; sem ele, elas recorrem à saída não assinada do `swift build` em `macos/vmctl/.build/`, que é o que produz o erro acima. O `scripts/build_macos.sh` sem `VMCTL_ONLY` faz a mesma assinatura e depois compila o aplicativo de release, incluindo o auxiliar assinado no `Contents/Resources/` do bundle. Compilar o próprio aplicativo exige o Xcode completo. ## Autor 👤 **Eric Trenkel** - Site: [erictrenkel.com](https://erictrenkel.com) - GitHub: [@bostrot](https://github.com/bostrot) - LinkedIn: [@erictrenkel](https://linkedin.com/in/erictrenkel) 👥 **Colaboradores** [![Contributors](https://contrib.rocks/image?repo=bostrot/wslmanager)](https://github.com/bostrot/wslmanager/graphs/contributors) ## 🤝 Contribuição Contribuições, problemas e pedidos de recursos são bem-vindos!\ Sinta-se à vontade para conferir a [página de issues](https://github.com/bostrot/wslmanager/issues). Você também pode dar uma olhada no [guia de contribuição](https://github.com/bostrot/wslmanager/blob/main/CONTRIBUTING.md). ## Mostre seu apoio Dê uma ⭐️ se este projeto ajudou você! ## 📝 Licença Copyright © 2026 [Eric Trenkel](https://github.com/bostrot).\ Este projeto está licenciado sob a [GPL-3.0](https://github.com/bostrot/wslmanager/blob/main/LICENSE). --- _Não encontrou o que procurava? Dê uma olhada na [Wiki](https://github.com/bostrot/wslmanager/wiki)_