Next Generation of ShadowsocksX (Backup)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Qiu Yuzhou acd84297d8 Update issue templates 8 months ago
.github/ISSUE_TEMPLATE Update issue templates 8 months ago
LaunchHelper Upgrade project settings. 1 year ago
Pods Make project build pass with swift 4.0 1 year ago
ShadowsocksX-NG Upgrade ss-local to version 3.1.3. 8 months ago
ShadowsocksX-NG.xcodeproj Upgrade ss-local to version 3.1.3. 8 months ago
ShadowsocksX-NG.xcworkspace Add shared schemes. 1 year ago
ShadowsocksX-NGTests Adds SIP002 URL for QR scaner 1 year ago
proxy_conf_helper Removes default bypass rules in proxy_conf_helper 1 year ago
.gitignore Update .gitingore file. 8 months ago
.travis.yml Edit .travis.yml in order to use xcode9 instead of xcode8. 1 year ago Update issue template. 1 year ago
LICENSE add license file 2 years ago
Podfile Remove feature ping which may make app crashed. 1 year ago
Podfile.lock Make project build pass with swift 4.0 1 year ago Bump version to 1.7.1 11 months ago
_config.yml Set theme jekyll-theme-slate 2 years ago Localize *.swift files. 2 years ago


Current version is 1.7.1

Build Status

Next Generation of ShadowsocksX


It’s hard to maintain the original implementation as there is too much unused code in it. It also embeds the ss-local source. It’s crazy to maintain dependencies of ss-local. So it’s hard to update the ss-local version.

Now I just copied the ss-local from Homebrew. Run ss-local executable as a Launch Agent in the background. Serve PAC JS file as a file URL. So there is only some source code related to GUI left. Then I will rewrite the GUI code in Swift.



  • macOS 10.11+


  • Xcode 9.2+
  • CocoaPods 1.3.1+


From here


  • Uses ss-local from shadowsocks-libev 3.0.5
  • Could update PAC by download GFW List from GitHub.
  • Shows QRCode for current server profile.
  • Scans QRCode from screen.
  • Auto launch at login.
  • User rules for PAC.
  • Support for AEAD Ciphers
  • HTTP Proxy by privoxy
  • Over kcptun. Version 20170322
  • Export/Import configure file.
  • An advanced preferences panel for configuring:
    • Local SOCKS5 listen address.
    • Local SOCKS5 listen port.
    • Local SOCKS5 timeout.
    • If enable UDP relay.
    • GFW List URL.
  • Manually specify network service profiles which would be used to configure the proxy.
  • Could reorder shadowsocks profiles by drag-&-dropping in servers preferences panel.
  • Configurable global shortcuts for toggle running and switch proxy mode.

Difference from original ShadowsocksX

ss-local is run as a background service through launchd, not as an in-app process. So after you quit the app, the ss-local might be still running.

Added a manual mode which won’t configure the system proxy settings, so that you could configure your apps to use the SOCKS5 proxy manually.


Contributions must be available on a separately named branch based on the latest version of the main branch develop.

ref: GitFlow


The project is released under the terms of the GPLv3.