:speech_balloon: A better WeChat on macOS and Linux. Built with Electron by Zhongyi Tong.

Overview

logo

Electronic WeChat

A better WeChat on macOS and Linux. Built with Electron.

⚠️ ⚠️ NO LONGER IN ACTIVE DEVELOPMENT | 项目不再维护 ⚠️ ⚠️

Thanks for supporting this project for 1000 days since Feb 16, 2016.

It started with the idea to make WeChat better on MacOS when the official support was abscent. It was de facto dead when Tencent rolled out a new WeChat and started to block other third-party clients. For me, it's no longer worthwhile to hack a lot to accomplish little. Hope this project had been helpful to you in any way. You're welcome to fork or make copies with a reference. HAPPY HACKING.

感谢历史上的用户和贡献者,你们已经陪伴这个项目走过了 1000 个日子。我曾经想要打造一个更好的 Mac 微信客户端,因为官方版本几年没有更新、bug 层出。而在腾讯自己开始了定期更新并限制第三方客户端时,这个项目实际已经没有什么意义。这个项目目前作为一个存档供大家学习。希望它曾经对你有所帮助,你也可以 fork 或者转载(标注来源)来进行修改。祝你玩得愉快。

SPECIAL THANKS TO | 特别感谢

Kulbear, arrowrowe, Rocka, CC, xgdgsc, 死水微澜, Jason, Ce Gao, viko16, 卡晨, Ray, 尹良灿, gehuangyi20, Kevin Tan, Jiaye Wu, loufq, Miaow, Chuan Ji, Oaker, Fengshuang Li, Song Li, afon, lional wang, Haochen Tong, Zhuoyun Wei, rivershang, Ivan Jiang, oBlank, Cheng Gu, NullMDR, ReadmeCritic.


Important: If you want to build the app by yourself rather than download the release directly, please consider to use the source code from the production branch, the master branch is under development and we cannot guarantee it to be stable.

Gitter Build Status Build Status Build Status Build Status

qq20160428-0 2x

Features (CHANGELOG)

  • Modern UI and all features from Web WeChat.
  • Block message recall.
  • Stickers showing support. [?]
  • Share subscribed passages on Weibo, Qzone, Facebook, Twitter, Evernote, and email.
  • Mention users in a group chat.
  • Drag and drop to send photos.
  • Behaves like a native app, based on dozens of optimization.
  • Removes URL link redirects and takes you directly to blocked websites (e.g. taobao.com).

How To Use

To clone and run this repository you'll need Git and Node.js (which comes with npm) installed on your computer. From your command line:

# Clone this repository
git clone https://github.com/geeeeeeeeek/electronic-wechat.git
# Go into the repository
cd electronic-wechat
# Install dependencies and run the app
npm install && npm start

To pack into an app, simply type one of these:

npm run build:osx
npm run build:linux
npm run build:win32
npm run build:win64

New: Install with your familiar package manager. Check out images maintained by the community!

New: Or, with homebrew!

brew cask install electronic-wechat

Download Released App

License MIT

Electronic WeChat is released by this open source project. While Web WeChat is a major component in the app, it should be noted that this is a community release and not an official WeChat release.

Issues
  • 非官方客户端提示,无法登陆

    非官方客户端提示,无法登陆

    每天都在用这个APP,刚刚发生的问题,Linux平台electronic-wechat version: 1.3 screenshot from 2016-08-17 10 03 50

    type: bug status: fixed/done 
    opened by owwlo 54
  • 有没有可能增加群聊内的提及(metion)功能?

    有没有可能增加群聊内的提及(metion)功能?

    之前一直用 Mac 版微信就是为了这个功能

    type: enhancement 
    opened by xream 32
  • add Chinese qiniu download server

    add Chinese qiniu download server

    现在还没想到好的办法对conf进行加密,不过空间里也没啥东西。没关系的

    priority: next release 
    opened by ray26 31
  • ESC关闭窗口问题

    ESC关闭窗口问题

    我有个习惯是打字的时候喜欢按ESC,但是会关闭窗口。 希望能够在Preference中加入‘是否使用ESC关闭窗口’的选项

    type: enhancement priority: next release type: feature request 
    opened by Vogen 22
  • 网页版微信抓包+注入实现表情贴纸显示

    网页版微信抓包+注入实现表情贴纸显示

    作者:Zhongyi Tong ([email protected])

    协议:知识共享-署名 (CC BY 2.5 AU)

    提示: 这是最初的实现方式。#13 中 @arrowrowe 提出了Angular注入的思路,取代了原先的DOM注入,极大地简化了逻辑并提升了性能。这份文档仅供参考。

    由于微信协议变动,目前表情商店里的贴纸无法显示。

    我们使用网页版微信登录时都会发现,聊天中的表情贴纸都无法显示,被替换成了一段[Sent a sticker. View on phone.]文本,提示你到手机上查看。原本以为微信在下发消息推送时根据终端做了手脚,但抓包的结果表明表情贴纸就在response中,只不过微信出于某些考虑,没有在前端解析出来。

    受够了万年不更新bug一大堆的官方微信客户端,我最近用Electron封装了一个Mac和Linux下的WeChat客户端。做了很多本地化的工作,包括自适应窗口、docker上的消息计数,还有就是这个表情贴纸注入,效果如下图所示。由于还没有到production-ready的程度,所以先分享一篇技术文,介绍这个功能的实现。

    qq20160224-0 2x

    请求分析

    为了知道收到的是不是贴纸,以及是什么贴纸,我们先来分析Web WeChat发起的网络请求。打开Chrome的DevTools,Network选项卡,只需要关注XHR请求即可。

    qq20160224-1 2x

    主要有下面两种请求:

    • GET https://webpush.weixin.qq.com/cgi-bin/mmwebwx-bin/synccheck

      消息的同步请求,HTTP长连接,默认30s或需要同步时返回。

    • POST https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxsync

      上面synccheck请求返回时,也就是有新消息时,微信发起一个webwxsync请求。在这个请求的response中,包含了我们需要的新消息数量AddMsgCount、消息IdMsgId、消息内容Content等等有用的内容。

    我们具体看看一个表情贴纸的消息Content是怎样的:

    <msg><emoji fromusername = "wxid_********" tousername = "filehelper" type="2" idbuffer="media:0_0" md5="ead80e721af1faf2bb33054450c61a66" len = "80226" productid="com.tencent.xin.emoticon.bilibili" androidmd5="ead80e721af1faf2bb33054450c61a66" androidlen="80226" s60v3md5 = "ead80e721af1faf2bb33054450c61a66" s60v3len="80226" s60v5md5 = "ead80e721af1faf2bb33054450c61a66" s60v5len="80226" cdnurl = "http://mmbiz.qpic.cn/mmemoticon/dx4Y70y9XctRJf6tKsy7FibsxibBIEComianWNa3zMITfOiaztUNzrgjhg/0" designerid = "" thumburl = "http://mmbiz.qpic.cn/mmemoticon/dx4Y70y9XctRJf6tKsy7F01Cqy3ej686O49bu7YrDWyQ2VPADkeFMg/0" encrypturl = "http://emoji.qpic.cn/wx_emoji/CkibiaVE4Z5fdDEKPW3LEPhPBVFvmicEQhLDWMQNtO6yH7ReGPGtgT44g/" aeskey= "be4577207982f4d793f3586790930af8" ></emoji> </msg>
    

    这就很清晰了,头部表明自己是个emoji,然后是一些CheckSum的数据,后面跟着的cdnurl是贴纸的gif资源,thumburl是贴纸的缩略图。理论上拿到这些资源之后,我们就可以在页面中显示贴纸了。

    Electron中的抓包

    先放一个无关的提醒,如果你想在Electron中嵌入第三方网页,直接用browserWindow.loadURL即可,不要使用官方提供的webview标签。webview标签带来的输入法错位、窗口resize性能问题对产品体验的影响非常严重。

    Electron的WebContents提供了did-get-response-details事件,但回调中只能获取到Response Headers,无法获取到Response Body。因此我们需要寻找一些tricky的方法来解决这个问题。我采用的方案是Chrome Debugging Protocol,这其实就是我们日常使用的DevTools为Chrome Apps暴露的一套API。只不过我们平时使用它的UI来调试,现在使用文本命令。

    在Electron中我们可以这样连接debugger [docs]

     try {
       browserWindow.webContents.debugger.attach("1.1");
     } catch (err) {
       console.log("Debugger attach failed : ", err);
     }
    
     browserWindow.webContents.debugger.on('detach', (event, reason) => {
       console.log("Debugger detached due to : ", reason);
     });
    
     browserWindow.webContents.debugger.on('message', (event, method, params) => {
       if (method == "Network.responseReceived" && params.type == "XHR") {
         // Code here.
       }
     });
    
     browserWindow.webContents.debugger.sendCommand("Network.enable");
    

    首先注册debugger,然后通过Network.enable开启记录Network日志,接收Network.responseReceived事件,类似于我们在DevTools Network选项卡中看到的请求。查看请求详情需要额外发送一个指令:

    debug.sendCommand("Network.getResponseBody", {
            "requestId": requestId
          }, (error, response) => {
            // Code here.
          });
    

    剩余的工作就是用正则表达式和一些逻辑判断从请求中获取到cdnurl,这里不再赘述,可以参考我的代码

    Electron中的页面注入

    如何在Electron中向WebContents注入代码请参考[文档]。大致思路是在dom-ready和有新的贴纸消息到达时分别注入下面两行代码:

    browserWindow.webContents.executeJavaScript(`injectBundle.initEmojiListJS()`);
    browserWindow.webContents.executeJavaScript(`injectBundle.updateEmojiListJS('${JSON.stringify(emojiList)}')`);
    

    我们在浏览器环境中维护一个window.emojiList对象,emojiList[msgId] = imageUrl。在DOM中找到div.js_message_bubbledata-cm标签中包含相应msgId的组件,注入background等CSS使其显示贴纸。

    我们要对页面上所有可见的贴纸消息气泡执行上述逻辑,因此注入的时机非常重要。Web WeChat是一个由Angular构建的应用,聊天气泡的加载是一个动态的过程,每次切换聊天,甚至是滚动聊天消息时,都会不断有节点的移除和加载。如果新加入的节点有贴纸消息的话,我们就需要及时注入。最后,我采用了一个对性能有些影响的解决方案:

    • 新的贴纸消息到达时替换这个贴纸消息
    • 切换聊天时替换所有贴纸消息
    • 滚动聊天消息时替换所有贴纸消息

    下面是注入部分的代码:

    injectBundle.replaceEmojiMessageJS = (msgId, imageUrl, delay) => {
      setTimeout(()=> {
        let $bubble = $(`div.js_message_bubble:regex("${msgId}")`)
            .css('background', `url('${imageUrl}') no-repeat`)
            .css('background-size', '120px')
            .css('height', '120px')
            .css('width', '120px');
        $bubble.addClass('no_arrow');
        $bubble.find('pre').text('')
            .css('width', '120px');
      }, delay);
    };
    
    injectBundle.updateEmojiListJS = (newList)=> {
      newList = JSON.parse(newList);
      window.emojiList = $.extend(window.emojiList, newList);
      for (let msgId in newList) {
        injectBundle.replaceEmojiMessageJS(msgId, window.emojiList[msgId], 0);
      }
    };
    
    injectBundle.initEmojiListJS = ()=> {
      $.expr[':'].regex = (elem, index, match) => {
        var regex = new RegExp(match[3]),
            $elem = $(elem);
        return regex.test($elem.attr('data-cm'));
      };
    
      window.emojiList = {};
      $('a.title_name').on('DOMSubtreeModified', () => {
        for (let msgId in window.emojiList) {
          injectBundle.replaceEmojiMessageJS(msgId, window.emojiList[msgId], 0);
        }
      });
      $('.chat_bd.scroll-content').on('DOMNodeInserted', (ev) => {
        if (ev.timeStamp - injectBundle.timestamp > 50) {
          injectBundle.timestamp = ev.timeStamp;
          for (let msgId in window.emojiList) {
            injectBundle.replaceEmojiMessageJS(msgId, window.emojiList[msgId], 0);
          }
        }
      })
    };
    

    完整的项目请见electronic-wechat

    官方文档 
    opened by geeeeeeeeek 18
  • 点击关闭按钮后再次打开窗口需要重新登录

    点击关闭按钮后再次打开窗口需要重新登录

    系统:OS X 10.11.3

    具体步骤:

    1. 点击关闭按钮
    2. 点击 Dock 上的 Electronic WeChat 图标
    3. 窗口再次打开,但是微信已经退出登录,需要重新扫码登录
    type: enhancement 
    opened by DIYgod 18
  • MAC版的包无法下载,各种梯子试了都没用

    MAC版的包无法下载,各种梯子试了都没用

    我和我的朋友都尝试在不同网络下,用各种梯子的方法下载mac版的安装包,但是下载时的速度都非常慢,请问能上传一个网盘版本吗?

    opened by Ade0408 16
  • 遇到编译困难:cnpm install electronic-wechat 命令的完整终端信息 on ubuntu 14.04 64bit

    遇到编译困难:cnpm install electronic-wechat 命令的完整终端信息 on ubuntu 14.04 64bit

    $ cnpm install electronic-wechat npm WARN engine [email protected]: wanted: {"node":">= 4.0"} (current: {"node":"0.10.33","npm":"1.4.28"}) npm WARN engine [email protected]: wanted: {"node":">=0.12.0","iojs":">=1.0.0"} (current: {"node":"0.10.33","npm":"1.4.28"}) npm WARN engine [email protected]: wanted: {"node":">=0.12.0","iojs":">=1.0.0"} (current: {"node":"0.10.33","npm":"1.4.28"}) npm WARN engine [email protected]: wanted: {"node":">=0.10.40"} (current: {"node":"0.10.33","npm":"1.4.28"}) npm WARN engine [email protected]: wanted: {"node":">=0.10.40"} (current: {"node":"0.10.33","npm":"1.4.28"}) npm WARN engine [email protected]: wanted: {"node":">=0.10.40"} (current: {"node":"0.10.33","npm":"1.4.28"}) npm WARN engine [email protected]: wanted: {"node":">=0.10.40"} (current: {"node":"0.10.33","npm":"1.4.28"}) npm WARN engine [email protected]: wanted: {"node":">=0.10.40"} (current: {"node":"0.10.33","npm":"1.4.28"}) npm WARN engine [email protected]: wanted: {"node":">=0.10.40"} (current: {"node":"0.10.33","npm":"1.4.28"})

    [email protected] postinstall /home/o/node_modules/electronic-wechat/node_modules/electron-prebuilt node install.js

    Downloading electron-v0.37.8-linux-x64.zip Error: connect ETIMEDOUT

    Error: connect ETIMEDOUT at errnoException (net.js:904:11) at Object.afterConnect as oncomplete npm WARN engine [email protected]: wanted: {"node":">=0.10.40"} (current: {"node":"0.10.33","npm":"1.4.28"}) npm WARN engine [email protected]: wanted: {"node":">=0.10.40"} (current: {"node":"0.10.33","npm":"1.4.28"}) npm WARN engine [email protected]: wanted: {"node":">=0.10.40"} (current: {"node":"0.10.33","npm":"1.4.28"})

    [email protected] install /home/o/node_modules/electronic-wechat/node_modules/pinyin/node_modules/nodejieba node-gyp rebuild

    make:进入目录'/home/o/node_modules/electronic-wechat/node_modules/pinyin/node_modules/nodejieba/build' CXX(target) Release/obj.target/nodejieba/lib/index.o CXX(target) Release/obj.target/nodejieba/lib/nodejieba.o SOLINK_MODULE(target) Release/obj.target/nodejieba.node SOLINK_MODULE(target) Release/obj.target/nodejieba.node: Finished COPY Release/nodejieba.node make:离开目录“/home/o/node_modules/electronic-wechat/node_modules/pinyin/node_modules/nodejieba/build” npm ERR! [email protected] postinstall: node install.js npm ERR! Exit status 8 npm ERR! npm ERR! Failed at the [email protected] postinstall script. npm ERR! This is most likely a problem with the electron-prebuilt package, npm ERR! not with npm itself. npm ERR! Tell the author that this fails on your system: npm ERR! node install.js npm ERR! You can get their info via: npm ERR! npm owner ls electron-prebuilt npm ERR! There is likely additional logging output above.

    npm ERR! System Linux 3.13.0-93-generic npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "--registry=https://registry.npm.taobao.org" "--cache=/home/o/.npm/.cache/cnpm" "--disturl=https://npm.taobao.org/dist" "--userconfig=/home/o/.cnpmrc" "install" "electronic-wechat" npm ERR! cwd /home/o npm ERR! node -v v0.10.33 npm ERR! npm -v 1.4.28 npm ERR! code ELIFECYCLE npm ERR! not ok code 0

    type: docs 
    opened by linux0ne 15
  • 节能模式 一段时间后 Crash,今晚尝试复现

    节能模式 一段时间后 Crash,今晚尝试复现

    先来给你 report 一下。 错误提示印象中是某关键组件,但是当时刚醒来,没记住。 查阅了 Lib/Logs 没有发现 crash 日志。 今晚尝试复现一下。

    type: can not reproduce 
    opened by n00d1e5 15
  • electron打包程序执行的时候出问题

    electron打包程序执行的时候出问题

    你好,请问一下,我在使用electron的时候,需要使用模板引擎去创建不同的html文件,然后在程序运行的过程中使用BrowserWindow.load去加载这个html文件,在Ubuntu下面调试运行的时候是没有问题的,但是经过打包成exe文件之后,运行的时候会报错,找不到这个文件,我查了一下,使用打包工具的时候,会把我创建html文件的目录位置打包成asar文件,而这种文件是只读的,所以程序在执行的时候,并没有在这个文件下面创建或者修改文件,所以导致我加载文件的时候失败,请问对于这种需求,有什么好的解决方案吗??

    opened by NeilZhy 0
  • build error

    build error

    os ubuntu 16.04 node9.4 cnpm run build:linux

    [email protected] build:linux /opt/wechat ./scripts/build.sh linux x64

    Start packaging for linux x64. Packaging app for platform linux x64 using electron v1.4.15

    <--- Last few GCs --->

    [3867:0x2917a60] 2053131 ms: Mark-sweep 1716.8 (2201.8) -> 1716.8 (2150.8) MB, 2538.2 / 5.6 ms (+ 0.0 ms in 0 steps since start of marking, biggest step 0.0 ms, walltime since start of marking 2744 ms) last resort GC in old space requested [3867:0x2917a60] 2055524 ms: Mark-sweep 1716.8 (2150.8) -> 1716.8 (2133.3) MB, 2392.9 / 5.6 ms last resort GC in old space requested

    <--- JS stacktrace --->

    ==== JS stack trace =========================================

    Security context: 0x3062d7f25501 1: 0x2d1c9153de39 <Symbol: Symbol.match>(aka [Symbol.match])(this=0x82cf81fcdd1 <JSRegExp <String[58]: dist|scripts|.idea|..md|..yml|node_modules/nodejieba>>,0x82cf81fcda9 <String[197]: /node_modules/[email protected]@es6-map/node_modules/es5-ext/node_modules/es6-symbol/node_modules/es5-ext/node_modules/es6-iterator/node_modules/es6-symbol/node_modules/es5-ext/test/array/#/@@iterator>) ...

    FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 1: node::Abort() [node] 2: 0x11f155c [node] 3: v8::Utils::ReportOOMFailure(char const*, bool) [node] 4: v8::internal::V8::FatalProcessOutOfMemory(char const*, bool) [node] 5: v8::internal::Factory::NewCode(v8::internal::CodeDesc const&, unsigned int, v8::internal::Handlev8::internal::Object, bool, int) [node] 6: v8::internal::CodeGenerator::MakeCodeEpilogue(v8::internal::TurboAssembler*, v8::internal::EhFrameWriter*, v8::internal::CompilationInfo*, v8::internal::Handlev8::internal::Object) [node] 7: v8::internal::compiler::CodeGenerator::FinalizeCode() [node] 8: v8::internal::compiler::PipelineImpl::FinalizeCode() [node] 9: v8::internal::compiler::PipelineCompilationJob::FinalizeJobImpl() [node] 10: v8::internal::Compiler::FinalizeCompilationJob(v8::internal::CompilationJob*) [node] 11: v8::internal::OptimizingCompileDispatcher::InstallOptimizedFunctions() [node] 12: v8::internal::StackGuard::HandleInterrupts() [node] 13: v8::internal::NativeRegExpMacroAssembler::CheckStackGuardState(v8::internal::Isolate*, int, bool, unsigned char**, v8::internal::Code*, v8::internal::String**, unsigned char const**, unsigned char const**) [node] 14: v8::internal::RegExpMacroAssemblerX64::CheckStackGuardState(unsigned char**, v8::internal::Code*, unsigned char*) [node] 15: 0x9ad0841916 ./scripts/build.sh: line 30: 3867 Aborted (core dumped) electron-packager . "${APP_NAME}" --platform=$PLATFORM --arch=$ARCH --electronVersion=1.4.15 --app-version=1.4.0 --asar --icon=assets/icon.icns --overwrite --out=./dist --ignore=${ignore_list}

    opened by yangliuan 0
  • Update README.md

    Update README.md

    Rewrote the Important description in README.md. The rewrite improves conciseness and removes ambiguities.

    opened by justinlew 0
  • no history messages in the subscription

    no history messages in the subscription

    A Request

    Usually, there is a history message button in the drop-down menu of '...' when reading a article in a subscription, It is really useful when following a public account by PC.

    Thanks for your talented work.

    opened by shangxy7 0
  • 中文pak怎么用

    中文pak怎么用

    Description

    First of all, thanks for your attention to open an issue for this project. Please notice that if you are requesting a feature, then you should give a brief description of your request. If you are reporting a bug, please follow the template below. A bug report without detailed information required will have a very low priority and even be ignored (closed directly)!

    Specifications

    • Version of Electron (run $ electron --version): ``
    • OS: Ubuntu
    • Stack trace from the error message (if any) 在locales里看到了中文pak, zh_CN.pak。 在那里能设置,希望开发相应功能。加个conf配置文件之类的也行
    <Stack trace here>
    
    opened by fenghoer 0
  • Segment Fault (core dump)

    Segment Fault (core dump)

    Specifications

    • Version of Electron (run $ electron --version): v1.4.15
    • OS: Kubuntu 18.10
    opened by SiqingYu 0
  • Can't input Chinese on Ubuntu

    Can't input Chinese on Ubuntu

    Description

    Just installed a new setup with Ubuntu 18.10 and configured a Chinese input source. Seems to work in every app, except electronic-wechat. It works fine in the browser though. I am using IBus.

    Specifications

    • OS: Ubuntu 18.10
    opened by tmattio 0
  • 关于广告的问题(AD)

    关于广告的问题(AD)

    opened by XmJwit 7
Releases(V2.0)
  • V2.0(Feb 15, 2017)

    v2.0 (2017.02.15)

    就不情人节发新版,哼。

    1. 升级 ElectronV1.4.15Chromium54
    2. 增加了偏好设置(感谢设计建议 @xiaoyusilen
    3. 增加了英文版本的支持
    4. 增加了一键隐藏窗口(ESC 键)
    5. 修复了 macOS 上窗口最小化时不显示新消息提示的红点(感谢 @wujysh 的贡献)
    6. 修复了聊天框内换行提示仅针对 macOS 的问题
    7. 增加了两个快捷键(感谢 @awmleer 的贡献)
      • 搜索联系人:Ctrl + F
      • 切换到全屏模式:macOSCtrl + Command + FLinux 下为 F11
    8. 修复了在 Linux 系统下部分菜单按钮失效的问题(感谢 @qzchenwl 的贡献)
    9. 更新了依赖的第三方库的版本至最新兼容版本

    Release Log:

    1. Update Electron to V1.4.15, Chromium API level 54
    2. Add Preference Panel (Thanks for the design advises from @xiaoyusilen](https://github.com/xiaoyusilen))
    3. Fully support English UI!
    4. Quick hide windows shortcut (Press ESC)
    5. Fix macOS new message red dot display improperly (Thanks to @wujysh)
    6. Tips in chat window now are adapted with platform
    7. Add two shortcuts (Thanks to @awmleer)
      • Search Contact人: Ctrl + F
      • Toggle Fullscreen Mode: macOS Ctrl + Command + F, Linux F11
    8. Fix unfunctional menu items on Linux (Thanks to @qzchenwl)
    9. All thrid party libraries are up-to-date
    Source code(tar.gz)
    Source code(zip)
    linux-ia32.tar.gz(133.44 MB)
    linux-x64.tar.gz(132.29 MB)
    mac-osx.tar.gz(130.04 MB)
  • v1.4.0(Aug 24, 2016)

  • v1.3.0(May 19, 2016)

    v1.3 (2016.05.19)

    1. 升级 electron 至 1.1.0, Chrome 至 50.0.2661.102,Node 至 6.1.0 (感谢 @lfs1102 的贡献)
    2. 新增 brew cask 安装方式 (最新可下载版本为 v1.2.0)
    3. 新增 Windows 下的安装脚本 (感谢 @3dseals 的贡献)
    4. 新增 应用启动动画,缩短首次展现时间
    5. 优化 应用启动稳定性,增加超时重试
    6. 优化 主要文案均统一为英文
    7. 优化 减少 20M 应用体积
    8. 修复 关于页面版本号显示的 bug
    9. 修复 Linux 系统下左边栏组件重叠的 bug
    10. 修复 部分 Linux KDE 系统下托盘图标空白的 bug
    11. 其他修改 (感谢 @wzyboy, @rivershang, @hexchain, @samurai00, @boltomli 的贡献)

    国内分流地址(暂时还在调整中,可能版本会不对,请等待下一个release): linux(32):http://o763lpzct.bkt.clouddn.com/linux-ia32.tar.gz linux(64):http://o763lpzct.bkt.clouddn.com/linux-x64.tar.gz mac:http://o763lpzct.bkt.clouddn.com/mac-osx.tar.gz

    Source code(tar.gz)
    Source code(zip)
    linux-ia32.tar.gz(41.84 MB)
    linux-x64.tar.gz(41.41 MB)
    mac-osx.tar.gz(41.62 MB)
  • v1.2.0(Apr 21, 2016)

    v1.2 (2016.04.21)

    1. 新增 更新检测模块,应用内即可检查更新
    2. 新增 公众号文章的第三方分享功能。现支持一键分享到微博、QQ 空间、Facebook、Twitter、Evernote 和邮件 (感谢 @oblank 的贡献)
    3. 新增 群聊 @ 提及成员功能,但收到提醒需要服务端支持 (感谢 @iamcc 的贡献)
    4. 优化 登录界面使用单独的尺寸 (感谢 @xnfa 的贡献)
    5. 优化 修改 OS X 下隐藏其他窗口的快捷键为 Command+Alt+H
    6. 优化 Linux 下可执行文件文件名使用小写字母,去除空格。
    7. 优化 Linux 下使用彩色图标。
    8. 升级 electron-prebuilt 版本至 0.36.7electron-packager 版本至 7.0.0
    9. 降级 Emoji贴纸显示的功能。由于微信协议调整和官方代码缺陷,现有商店内贴纸及部分个人收藏的贴纸无法显示。后续跟进微信的修复进行调整。
    Source code(tar.gz)
    Source code(zip)
    linux-ia32.tar.gz(41.36 MB)
    linux-x64.tar.gz(41.13 MB)
    mac-osx.tar.gz(41.36 MB)
  • v1.1.1(Mar 17, 2016)

    v1.1 (2016.03.17)

    1. 新增 OS X 和 Linux 下的托盘菜单,点击可进入应用、退出应用 (仅Linux) (感谢 @iamcc 和 @wenLiangcan 的贡献)
    2. 新增 cnpm 镜像提醒
    3. 优化 应用的退出逻辑,Cmd+Q 退出应用,Cmd+W 或点击关闭隐藏应用
    4. 优化 OS X 和 Linux 下的应用菜单显示
    5. 优化 Emoji贴纸的实现方式,避免滑动时内容抖动,无法回到底部
    6. 优化 接管应用刷新的逻辑,Cmd + R 重新加载页面
    7. 优化 OS X 下 build 后将应用拷贝到 Application 文件夹
    8. 优化 Linux 下使用 Ctrl+Shift+I 打开开发者工具 (感谢 @wenLiangcan 的贡献)
    9. 修复 错误的微信站内重定向 (感谢 @gucheen 的贡献)
    10. 修复 Linux 下应用图标的显示
    11. 修复 聊天列表滑动性能问题
    12. 修复 公众号新窗口打开报错 (感谢 @gzzhanghao 的贡献)

    rpm package: wechat-1.0.1-1.gitb43c562.fc23.noarch.rpm

    Source code(tar.gz)
    Source code(zip)
    linux-ia32.tar.gz(152.89 MB)
    linux-x64.tar.gz(191.72 MB)
    mac-osx.tar.gz(39.66 MB)
  • v1.0.1(Mar 1, 2016)

    v1.0 (2016.03.01)

    1. 新增 阻止消息撤回的功能 (感谢 @arrowrowe 的贡献)
    2. 新增 引入了 Travis CI 和 Gitter.im
    3. 优化 贴纸显示的实现方式 (感谢 @arrowrowe 的贡献)
    4. 优化 build 脚本 (感谢 @gaocegege, @viko16 和 @htc550605125 的贡献)
    5. 优化 Linux 下自动隐藏菜单 (感谢 @wenLiangcan 的贡献)
    6. 优化 Linux 下用户头像的显示
    7. 优化 禁用缩放、选中文本、默认光标
    Source code(tar.gz)
    Source code(zip)
    linux-ia32.tar.gz(152.88 MB)
    linux-x64.tar.gz(191.71 MB)
    mac-osx.tar.gz(39.66 MB)
  • v0.1(Feb 18, 2016)

    Warning: Deprecated!

    The release is out dated. Edit operations are not available.

    It is strongly recommended to download the code and built it yourself. You can refer to guide in README.

    v0.1 (2016.02.19)

    1. Create the project.
    2. Auto resize web content.
    3. Drag to send pictures.
    4. Open inhibited links without additional redirect.
    Source code(tar.gz)
    Source code(zip)
    WeChatElectron.zip(38.62 MB)
Owner
Zhongyi Tong
🎓 Carnegie Mellon University & Fudan University 💼 Google, NASA, Splunk, SAP & Teambition ✍️ O'Reilly book "Git for Teams", etc (g.co/kgs/ysND8k)
Zhongyi Tong
A "native-like" OS X, Windows, Linux desktop app for Google Allo

DEPRECATED With Google's latest announcement that allo is shutting down in March, this project will also be ending and moving to "archive" mode. I wou

Kelvin Nguyen 113 Apr 26, 2021
:computer: Wire for desktop

Wire™ This repository is part of the source code of Wire. You can find more information at wire.com or by contacting [email protected] You can find

Wire Swiss GmbH 984 Sep 13, 2021
Franz is a free messaging app for services like WhatsApp, Slack, Messenger and many more.

Franz 5 Messaging app for WhatsApp, Slack, Telegram, HipChat, Hangouts and many many more. Download Franz ?? www.meetfranz.com Or use homebrew (macOS

Franz 4.1k Sep 24, 2021
A glossy Matrix collaboration client for the web.

Element Element (formerly known as Vector and Riot) is a Matrix web client built using the Matrix React SDK. Supported Environments Element has severa

Element (formerly New Vector) 7.1k Sep 17, 2021
Unofficial GroupMe App

GroupMe Unofficial GroupMe app Download Current Release Linux Shortcut Create a file in ~/.local/share/applications/ called GroupMe.desktop with the f

Devin Rousso 81 Sep 20, 2021
Telegram Desktop messaging app

Telegram Desktop – Official Messenger This is the complete source code and the build instructions for the alpha version of the official desktop client

Telegram Desktop 16.8k Sep 23, 2021
Signal — Private Messenger for Windows, Mac, and Linux

Signal Desktop Signal Desktop is an Electron application that links with Signal on Android or iOS. Install the production version: https://signal.org/

Signal 11.4k Sep 15, 2021
Textual is an IRC client for OS X

Textual Textual is a highly customizable app for interacting with Internet Relay Chat (IRC) chatrooms on macOS. Textual can be customized with styles

Codeux Software, LLC 1.7k Sep 16, 2021
A truly native Matrix client for macOS - written in Swift/Cocoa, with E2E encryption support

Seaglass Seaglass is a truly native macOS client for Matrix. It is written in Swift and uses the Cocoa user interface framework. Install Seaglass You

Neil Alexander 466 Sep 16, 2021
Source code of Telegram for macos on Swift 5.0

Telegram for macOS Telegram is a messaging app with a focus on speed and security. It’s superfast, simple, and free! This repo contains the official s

Mike Renoir 3.4k Sep 24, 2021
macOS native TorChat client

Torchat-Mac TorChat for Mac is a macOS native and unofficial port of torchat. Technics TorChat for Mac is written in Objective-C with Cocoa framework.

Julien-Pierre Avérous 76 Aug 19, 2021
XMPP client for macOS based on TigaseSwift XMPP library

XMPP client for macOS What it is XMPP client for macOS based on TigaseSwift XMPP library. Features BeagleIM is powerful XMPP client with support for f

Tigase, Inc. 100 Sep 17, 2021
A native Mac app wrapper for WhatsApp Web

#ChitChat (formerly WhatsMac) A Mac app wrapper around WhatsApp's web client, WhatsApp Web. The latest version is available here. Need help? Ask me on

Sam Stone 1.9k Sep 5, 2021
Little sweet addition to your WhatsApp Desktop

WhatsAppBar Little sweet addition to your WhatsApp Desktop. on your Mac. What is WhatsAppBar WhatsAppBar helps you to send WhatsApp messages to someon

Aldy Chrissandy 33 Sep 12, 2021