explaingit

ashinno/wechat-multi

23SwiftAudience · generalComplexity · 2/5ActiveLicenseSetup · easy

TLDR

A macOS menu bar app that clones WeChat.app with APFS copy-on-write and re-signs each copy ad-hoc so multiple WeChat accounts can run side by side.

Mindmap

mindmap
  root((WeChat Multi))
    Inputs
      Installed WeChat.app
      User chosen slot name
    Outputs
      Cloned WeChat bundles
      Per slot login sessions
      Menu bar controls
    Use Cases
      Run work and personal WeChat together
      Manage multiple Tencent accounts
      Rebuild clones after updates
    Tech Stack
      Swift
      macOS 13
      APFS
      codesign

Things people build with this

USE CASE 1

Run a work and a personal WeChat account at the same time on one Mac

USE CASE 2

Add a third or fourth WeChat slot for family or side accounts

USE CASE 3

Rename WeChat instances to Work or Personal in the menu bar

USE CASE 4

Rebuild WeChat clones automatically after an official update

Tech stack

SwiftmacOSAppKitcodesign

Getting it running

Difficulty · easy Time to first run · 5min

Requires macOS 13 or newer and an existing WeChat.app installation in /Applications.

MIT licensed, you can use, modify, and ship the code commercially as long as you keep the copyright notice.

In plain English

WeChat Multi is a small macOS menu bar app that lets you run several copies of WeChat side by side on the same Mac, so you can be signed in to a work account, a personal account, and any extras at the same time. The official WeChat for Mac is designed to allow only one running copy: if you try to open a second one, it quietly kills the new process. This app gets around that by making clones of the WeChat app bundle under your home Applications folder, each with its own bundle identifier. The technical trick is straightforward. For each new slot the app uses APFS copy-on-write to duplicate WeChat.app instantly, edits the clone's Info.plist to give it a fresh CFBundleIdentifier like com.wechatmulti.cloneN, removes the original Apple code signature, re-signs the bundle ad-hoc with codesign, clears the Gatekeeper quarantine attribute, and launches the clone. Because macOS sees each clone as a different app, it gives each one its own sandbox container, and WeChat's running-instance check no longer triggers. The downside is that ad-hoc signing breaks the keychain entitlements tied to Tencent's team ID, so you log in fresh in each clone, which is what you want for multiple accounts anyway. From the menu bar you can launch a new instance, rename a slot to something like Work or Personal, bring an instance to the front, quit one instance, or quit all of them. Each clone shows up with its own avatar dot colour. When the official WeChat updates, the app notices that the clones are out of date and offers to rebuild them, keeping the saved logins and chat history that live in the per-clone container folders. It is a universal binary that needs macOS 13 Ventura or later, weighs around 190 kilobytes, and has no third-party dependencies. You can grab a pre-built release or build it yourself with the included install script. The project is MIT licensed.

Copy-paste prompts

Prompt 1
Walk me through installing WeChat Multi on macOS Ventura and creating my first extra slot
Prompt 2
Explain how the APFS copy-on-write clone plus ad-hoc codesign trick bypasses WeChat single-instance check
Prompt 3
Show me how to build WeChat Multi from source with the included install script
Prompt 4
Help me debug why a cloned WeChat slot will not launch after a Gatekeeper quarantine error
Prompt 5
Write a script that creates four WeChat clones with custom names and bundle IDs
Open on GitHub → Explain another repo

Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.