CSS JavaScript Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.



Homepage: https://oldj.github.io/SwitchHosts/

SwitchHosts! is an App for managing hosts file, it is based on Electron, React, and Ant Design, CodeMirror, etc.




  • Switch hosts quickly
  • Syntax highlight
  • Remote hosts
  • Switch from system tray
  • macOS only: Alfred workflow support



You can download the source code and build it yourself, or download the built version from following links:


If you are useing macOS, you can install SwitchHosts! by brew cast:

brew cask install switchhosts

Thanks to @gobinathm and @iamybj for updating the brew cask version.


SwitchHosts! stores data at ~/.SwitchHosts (Or folder .SwitchHosts under the current user's home path on Windows), the ~/.SwitchHosts/data.json contains data, while the ~/.SwitchHosts/prefereces.json contains preferences info.

Run and Build


  • Install Node.js

  • Change to the folder ./, run npm install to install dependented libraries

  • Change to the folder ./app, run npm install again

    npm install
    cd app && npm install && cd ..

Build and run

  • Change to the folder ./, run npm run dll to build common files

  • Change to the folder ./, run npm run build

  • Change to the folder ./, run npm start, the App should start

    # create dll file
    npm run dll
    # build
    npm run build
    # start
    npm start
    # or start in developer mode
    npm run dev

Package and Zip

  • It is recommended to use electron-packager for packaging.

    # install electron-packager for use from cli
    npm install electron-packager -g
  • Go to the ./ folder, run npm run pack . The packaged file will be the ./dist folder.

  • This command may take several minutes to finish when you run it the first time, as it needs time to download dependent files. You can download the dependencies manually here, or Taobao mirror, then save the files to ~/.electron. You can check the Electron Docs for more infomation.

    # pack
    npm run pack  # the packed files will be in ./dist
    # or pack for a special platform
    npm run pack-mac  # pack for macOS, the packed files will be in ./dist
    npm run pack-win  # pack for Windows, the packed files will be in ./dist
  • After packaging, you can make a zip file by run the following command.

    # zip
    npm run zip  # the zipped files will be in ./dist


SwitchHosts! is a free and open source software based on the MIT license.