Zalo for Linux 🐧
English | Tiếng Việt
An unofficial, community-driven port of the Zalo desktop application for Linux only, created by repackaging the official macOS client into a standard AppImage with integrated ZaDark.
Thanks realdtn2 for the solution: realdtn2/zalo-linux-2026.
⚠️ Important: Known Issues
- ➖ Partly-fixed: Can't make or receive calls: Thanks to @collyn for setting up a Wine wrapper to solve this. See PR #62 for more info, but currently calling is not available on aarch64, because Windows
zcallonly supports x86_64.
💡 For the full list of resolved issues, workarounds, and community credits, see KNOWN_ISSUES.md.
This project is best suited for users who need a native-feeling Zalo client on Linux and are comfortable with the technical workarounds required for full functionality.
✨ Features in this project
This project added some features in the app, that the official version doesn't have equivalents.
✨ For the full list of the features that included in this project, see FEATURES.md.
🚀 Quick Start
Usage
We strongly recommend using Gear Lever or AM to integrate the AppImage perfectly into your system menu.
Note: Zalo for Linux comes with embed update info. You don't need to setup any update infomations for updating the apps.
For AM users:
- Install AM from AM's guide
- Run this command to install Zalo:
am -i zalo
Note: Replace am with appman if you chose to install appman.
- A prompt like this will appear:
You can choose what variants you like from this, AM will download the correct version for you.
- The app is now installed. You can now go to your system's application launcher to launch Zalo.
zalo
- How to update:
am -u
For Gear Lever users:
- Download the latest
.AppImagefile from the Releases page. - Install Gear Lever from Flathub.
- Open Gear Lever.
- Click the "Open" button in the top-left corner and select the
.AppImagefile you downloaded. - The app will now appear in Gear Lever. Click the "Unlock" button, then choose "Move to the app menu" to integrate it into your system's application launcher.
- How to update:
Run it manually (this is not recommended):
- Download the latest
.AppImagefile from the Releases page. - Make it executable:
chmod +x <downloaded-file> # Get the filename with ls, or you can use your file manager's GUI
- Run it manually by this command:
./<downloaded-file>
- For updates, just simply redownload the latest
.AppImage file from the Releases page, then repeat step 2 and 3.
NOTE: Remember to quit the app and relaunch again after updates, for new changes can be applied in your side.
Build from Source
Prerequisites:
- Linux x86_64 or aarch64
- Node.js and npm
- 7z (p7zip-full) for extracting the macOS app during setup
- C++ build tools (for native addons):
build-essential, libssl-dev, liblzma-dev
zcall build tools: gcc-mingw-w64-i686 gcc-multilib libc6-dev-i386 libx11-dev libxcb1-dev libx11-dev:i386 libxcb1-dev:i386 libxext-dev:i386
On Debian/Ubuntu:bash
sudo dpkg --add-architecture i386
sudo apt update && sudo apt install -y liblzma-dev p7zip-full gcc-mingw-w64-i686 gcc gcc-multilib libc6-dev-i386 libx11-dev libxcb1-dev libx11-dev:i386 libxcb1-dev:i386 libxext-dev:i386 zsync
Steps:bash
Clone the repository
git clone https://github.com/VN-Linux-Family/zalo-for-linux.git cd zalo-for-linuxThen initialize or update submodules
git submodule update --init --recursiveRun setup + build (downloads DMG, extracts, patches, packages)
npm run main ``
The final AppImage will be in the
dist/ directory.
For a detailed walkthrough of the build pipeline, scripts, environment variables, and how to add new patches, see
DEVELOPMENT.md.
⚙️ How It Works
This project is not a from-scratch rewrite of Zalo. It works by:
- Downloading the official macOS
.dmg file.
Using 7z to extract the app.asar archive, which contains the main application logic written in JavaScript.
Removing incompatible native macOS files.
Wrapping the extracted application in a minimal, Linux-compatible Electron shell.
Using electron-builder, then quick-sharun to package everything into a single, portable AppImage file.
For a deeper dive into the build pipeline and patching strategy, see ARCHITECTURE.md.
nativelibs/README.md.
For the
zcall bridge, see zcall-bridge/README.md
🐛 Troubleshooting & Debugging
If you encounter issues or want to inspect the app's behavior, you can easily open Chrome Developer Tools (DevTools) using the following methods:
- Keyboard Shortcut: Press
Ctrl + Shift + I while the Zalo window is focused.
Tray Menu: Right-click the Zalo tray icon and select "Toggle DevTools".
📚 More Documentation
- KNOWN_ISSUES.md — Known issues, workarounds, and resolved bug history
- ARCHITECTURE.md — How the build pipeline and patches work
- DEVELOPMENT.md — Building from source, scripts, adding patches
- nativelibs/README.md — Native addons (db-cross-v4, etc.)
- zcall-bridge/README.md —
zcall` bridge
📄 License
This project is licensed under the MIT License. Zalo is a trademark of VNG Corporation. This project is not affiliated with or endorsed by VNG Corporation.