Gas Mask is a free and open-source hosts file manager for OS X. This is a small, yet very useful utility for web developers.
Normally, you’d have to manually edit your hosts file each time you need to make a change, and then flush your local DNS cache, to force the change, by running:
dscacheutil --flushcache
Now it’s as simple as picking from a dropdown in your menubar to switch between hosts file setups for different sites. Gas Mask handles the DNS cache flush for you, and the switch is instantaneous.
I initially started using this app when I would run local servers using the same domain as the live site. This made swapping WordPress databases between local and production much easier as I wouldn’t have to deal with find/replace on serialized data. Since that time, I’ve started using newer tools like WP Migrate DB Pro and Interconnect/it’s Search and Replace script which make migrating databases much easier and running a local server on the live domain is less important. I still use this to manage my hosts file when switching between sites running on MAMP Pro.
A few things to watch out for
In the screenshot above, you’ll see I have my computer’s hostname Joshs-MacBook-Air
listed after the initial localhost declaration. The default hosts file content in Gas Mask won’t include this, but I found that I had trouble using hosts files without my machine’s hostname included there. Also, the editor could use some work, as some of the standard OS X keyboard shortcuts don’t function the same. The project is open source, so anyone who knows Objective-C can hop in and make changes, or make a donation to fund a feature for the project.
Price: Free (open source, donationware)
Hi, thanks for the article. I love Gas Mask for OSX but I have one question. I’m trying to make a combined file of a personal local hosts file ‘myhosts’, a remote hosts file from Github by StevenBlack and lastly a local file ‘whitelist’ to whitelist a few domains of StevenBlack’s list. The first two things work amazing but I can’t seem to make my local whitelist work properly. Do you have any idea to make this happen? Thanks in advance!