MultiChat

Windows · macOS · Linux — MIT

Duas contas de WhatsApp na tela sem trocar de navegador.

O MultiChat dá a cada conta o seu próprio perfil de navegação — logins separados, notificação identificada, contador de não lidas na barra lateral. WhatsApp, Teams, Telegram, Discord, Slack e qualquer URL que tenha versão web. É um Electron que abre o site do mensageiro: nada da sua conversa passa por um servidor nosso.

versão — /Electron /sem telemetria /sem cadastro

Miniatura da barra lateral — cores e larguras reais, tiradas do src/constants.js.

Instaladores por sistema

Downloads

Cada release é compilada em runners separados para Linux, Windows e macOS e publicada aqui no GitHub, junto com um SHA256SUMS.txt cobrindo todos os arquivos.

Consultando a última release…

Windows

Windows 10/11 — 64 bits

Sem assinatura de código: o SmartScreen pede Mais informações → Executar assim mesmo na primeira execução.

macOS

Intel e Apple Silicon

Sem notarização da Apple: na primeira abertura, botão direito → Abrir ou Ajustes → Privacidade e Segurança → Abrir mesmo assim. A 1.7.1 corrige o falso “danificado” do Gatekeeper.

Linux

Linux — 64 bits

AppImage portátil (chmod +x e execute) ou tar.xz com a mesma build descompactada.

Conferir a integridade do arquivo baixado: sha256sum -c SHA256SUMS.txt (Linux) ou shasum -a 256 -c SHA256SUMS.txt (macOS). SHA256SUMS.txt ↓
A lista não carregou? A API do GitHub tem limite de 60 consultas por hora por endereço IP e às vezes fica indisponível — a página continua de pé por isso. Abra a página de releases para ver todos os artefatos da versão e o SHA256SUMS.txt.

O que a versão atual entrega

Recursos

Sem roadmap como promessa. Tudo abaixo está no app publicado hoje — se ainda não existe, não está nesta lista.

  • contasPerfil isolado, não aba separada

    Dois WhatsApp, dois Teams, o que precisar. Cada conta ganha um perfil de navegação próprio, com cookies e armazenamento separados, então um login não derruba o outro. O mensageiro continua sendo o site oficial: o app abre web.whatsapp.com, teams.microsoft.com e companhia — não existe cliente próprio nem servidor intermediário.

  • memóriaHiberna quem está fora de foco

    A conta só carrega quando você abre e, depois de 60 minutos sem uso (padrão), é descarregada da RAM sem perder o login — o prazo é configurável por conta, e dá para desligar em cada uma. É o que torna possível deixar seis, sete contas montadas num notebook de 8 GB.

  • atençãoNotificação que diz de onde veio

    A notificação nativa traz o nome da conta, o contador de não lidas aparece na barra lateral — e sobre o avatar quando ela está recolhida, a 72 pixels —, e o ícone da bandeja acumula o total. No Mac o Dock ganha o selo vermelho nativo (o oval pequeno do sistema, não um desenho nosso; acima de 99 vira 99+). Clique na notificação e a janela foca aquela conta.

  • logoFoto na mesma bolinha da barra

    Na criação e na edição da conta dá para enviar uma imagem (perfil do WhatsApp, logo do Business, o que for). Ela entra na moldura redonda que já existia; sem upload, continua o ícone colorido do serviço.

  • mexerReordenar, editar, hibernar por conta

    Arraste os itens da barra lateral para mudar a ordem (persistida entre sessões), botão direito abre o menu com editar, notificações, hibernar agora e remover — inclusive a última conta visível, sem o app acordar outra no lugar. Sem contas, ou com todas hibernadas, a área principal explica o que fazer. Cada conta pode apontar para uma URL personalizada — serve qualquer webmail, painel ou chat interno.

  • telaCompartilhar tela funciona

    O seletor do WhatsApp Web pede permissão ao navegador e não aparece em Electron comum. Aqui a janela tem um seletor próprio, com miniaturas de telas e janelas, e devolve a escolha certa para a chamada de voz.

  • rascunhoAssistente que não envia por você

    Em conta WhatsApp, ele lê só o que está visível na tela, manda para o gateway que você configurar (Responses API ou Chat Completions) e devolve um rascunho no campo de edição. O envio continua sendo seu, sempre. A chave fica criptografada no safeStorage do sistema — nunca num arquivo nosso. Teams e os demais ainda não são suportados.

  • offlineInterface que não depende de CDN

    Bootstrap e ícones vêm empacotados dentro do app (src/vendor/). Sem internet a interface continua desenhando; o que não abre é o site do mensageiro, que também não abriria no navegador.

  • atalhoLink de WhatsApp e reunião do Teams

    Clique em whatsapp://, wa.me ou num convite teams.microsoft.com/l/meetup-join e o MultiChat acorda a conta certa. Se existir mais de uma conta daquele serviço, pergunta qual usar. O atalho “abrir no app” do WhatsApp Web deixa de fugir para o cliente oficial.

  • atualizarAvisa, e você escolhe se instala

    O app consulta a API de releases alguns segundos após abrir e, se houver versão nova, mostra a notificação Há uma nova versão disponível. Dá para abrir o changelog ou atualizar e reiniciar — o arquivo é conferido com SHA-256. Também está em Ajuda → Verificar atualizações…. Nada instala sem o seu clique.

Transparência

O que ainda pesa contra

Assinar software custa dinheiro e é opcional para projeto sem fins lucrativos. Nada abaixo é escondido por má vontade — é o estado real de cada plataforma.

Windows
O instalador não tem certificado de assinatura de código, então o SmartScreen mostra o aviso na primeira execução. Depois de confirmar Mais informações → Executar assim mesmo, o app abre normalmente e o aviso não volta em atualizações instaladas por cima.
sem assinatura
macOS
Ainda sem notarização (Apple Developer Program, US$ 99/ano). A 1.7.1 assina o binário de forma ad-hoc: some o diálogo da lixeira; resta o aviso de desenvolvedor não identificado, com “Abrir mesmo assim”. Quem quiser zero aviso compila na própria máquina.
sem notarização
Linux
AppImage e tar.xz 64 bits, distribuídos direto pelo GitHub Releases. Ainda não há repositório APT, Flatpak nem Snap — o update-local.sh cobre a atualização pela linha de comando.
sem pacote de distro
Mudanças no site
A barra lateral e o contador de não lidas leem o DOM do mensageiro. Quando o WhatsApp Web muda a estrutura, esses contadores podem parar até o próximo ajuste — o envio de mensagens nunca dependeu disso e continua funcionando.
acoplado ao HTML
Tela branca ao trocar de conta
Já aconteceu de verdade: uma refatoração removeu uma linha e a view de conta hibernada sumia ao voltar. Voltou no v1.6.0 e ganhou teste de regressão. Se você vir isso numa versão antiga, atualize.
corrigido

Três passos

Instalação

Instale por cima da versão anterior: contas, ordem da barra lateral e preferências são preservados.

  1. Windows — instalador NSIS

    Execute MultiChat-<versão>-setup.exe. Se o SmartScreen aparecer, Mais informações → Executar assim mesmo. O app abre vazio: toque no + para a primeira conta.

  2. macOS — arm64 ou Intel

    Abra o .dmg (arm64 para Apple Silicon), arraste para Aplicativos e, na primeira vez, use botão direito → Abrir ou libere em Ajustes → Privacidade e Segurança. A 1.7.1 traz assinatura ad-hoc: o macOS não deve mais fingir que o arquivo está corrompido.

  3. Linux — x64

    chmod +x MultiChat-*.AppImage e execute o arquivo. Sem instalador, sem dependências extras.

  4. Abrir a primeira conta

    O + no topo da barra lateral escolhe o serviço (WhatsApp, Teams, Telegram, Discord, Slack ou URL), o nome e, se quiser, a logo. Alternar é um clique no avatar, ou Ctrl+Tab.

Rodar direto do código-fonte

Node.js v24 é a versão testada (é a que roda no CI e na publicação de release). Dá para começar com v22.12 ou mais novo — o build-local.sh avisa, mas não bloqueia —, desde que o npm seja o que veio junto.

git clone https://github.com/maiconfontana/multichat.git
cd multichat
npm install
npm run start

O repositório traz npm test — são 32 testes unitários que cobrem a política de suspensão, o comparador de versões, o cliente do gateway e o adaptador do WhatsApp rodando num DOM falso — e npm run check para validar a sintaxe de todos os processos. Guia completo no README.

Pular o SmartScreen e a quarentena

Atualizar ou compilar na sua máquina

Dois atalhos para quem não quer liberar app baixado manualmente — nenhum dos dois é obrigatório.

Atualizar pelo terminal (Linux/macOS)

Para quem instalou em ~/.local/bin/multichat: baixa a release, confere o SHA-256 contra o SHA256SUMS.txt publicado, troca o binário de forma atômica e guarda backup do anterior.

./update-local.sh              # atualiza
./update-local.sh --check      # só diz se há versão nova
./update-local.sh --rollback   # volta para o backup

Compilar o binário localmente

Um arquivo gerado na própria máquina não tem marca de origem de download, então não há SmartScreen nem quarentena para contornar. Custa ~1,3 GB de dependências e alguns minutos de build.

./build-local.sh               # Linux/macOS
.\build-local.ps1              # Windows
Qual escolher? Na maioria dos casos o pacote pronto é mais simples e mais rápido. Compilar em casa é o substituto de assinar o aplicativo, não um teste de segurança: o projeto não é assinado, e compilar não torna o código mais confiável — só evita os avisos do sistema operacional.

Como é feito

Por dentro

Os números desta seção foram lidos do repositório, e não do marketing dele.

ARQUITETURA
Electron — o app abre o site oficial de cada mensageiro numa WebContentsView separada. Associa os protocolos whatsapp:// e msteams:// no sistema; não há backend próprio.
ONDE VÃO OS DADOS
Só na sua máquina — contas e preferências ficam no armazenamento local do Electron. O MultiChat não tem servidor para receber suas mensagens.
O QUE SAI DA SUA REDE
A API de releases do GitHub e, se você configurar e usar, o gateway de IA escolhido. A checagem de versão não envia identificadores.
CÓDIGO E LICENÇA
MIT — src/ tem ~2,9 mil linhas de JavaScript em 15 arquivos. Você pode ler, forkar e redistribuir.
QUEM CONSTRÓI
Manutenção de Maicon Fontana e contribuições de Natanael Walter, sobre a base de Diego Aguirre — autor da esmagadora maioria dos commits do upstream.
COMO É PUBLICADO
Uma tag v*.*.* dispara o build nas três plataformas no GitHub Actions, roda os mesmos testes do CI, gera os checksums e sobe a release.