Your hosts file,
but better

Locale is a free macOS app that lets you save groups of hostname‑to‑IP mappings and switch between them in one click. No terminal. No editing system files.

Download for Mac View source
macOS 14+ Apple Silicon & Intel Free & open source
Locale app window on macOS showing a DNS context with host mappings and status feedback

How it works

Create a context.
Turn it on.

A context is a named list of host entries — hostname, IP address, optional note. When you activate a context, Locale's DNS proxy resolves matching hostnames to your chosen IPs. Everything else goes through your normal DNS.

01
Name your context
Give it a name and a color. Work VPN, home lab, staging — whatever you need.
02
Add host entries
Type in an IP and a hostname. Add as many as you want. Disable individual rows without deleting them.
03
Activate
One click. Locale starts its DNS proxy and routes matching queries to your entries. System files stay untouched.
04
Switch from the menu bar
The active context shows in your menu bar. Switch or deactivate without opening the main window.
Work VPN context · DNS proxy answers
# Locale: Work VPN (active)
# Matching hostnames resolve locally
 
api.company.internal A 127.0.0.1
db.internal A 10.0.1.42
redis.internal A 10.0.1.10
# legacy-auth is disabled
logs.company.internal A 10.0.1.75
router.local A 192.168.1.1
 
# Everything else goes through normal DNS

What it does

One thing, done well

Locale manages DNS contexts. That's it. No VPN, no firewall, no catch-all network settings.

Named contexts
Save groups of host mappings with a name and color. Work VPN, staging, home lab — keep them separate.
Host management
Add, remove, or disable entries. Sort by IP, hostname, or status. Edit inline.
Per-context settings
Each context stores its own name, color, and full host list. Completely independent.
Menu bar
See which context is active. Switch from anywhere without opening the main window.
JSON import / export
Back up or share your contexts. Plain, human-readable JSON.
System files untouched
Locale uses a sandboxed DNS proxy extension. Your /etc/hosts stays clean.
Locale new context dialog with name field, color picker, and live preview
Create a context with a name, color, and live preview.
Locale main window showing an active DNS context with host entries and status
Active context with host entries and status feedback.

How DNS stays safe

DNS proxy
Only your mapped hostnames resolve locally
App Group
Main app and extension share mappings
Forwarding
Unmapped queries use your normal DNS
Revert
Switch to Home to clear all mappings

Why not just edit /etc/hosts?

Locale vs. manual DNS editing

Editing /etc/hosts
Needs sudo / root access
One flat file for everything
Manual commenting to “disable”
Easy to break formatting
No grouping or switching
Using Locale
No sudo, no system file edits
Named groups with colors
Toggle entries on/off per row
Sandboxed DNS proxy extension
One-click context switching

Get Locale

Download or build from source

Locale is a notarized macOS app. Grab it from GitHub Releases or clone and build it yourself.

Download the latest release from GitHub.
Locale-notarized.zip macOS 14+ · notarized ZIP
Requires
macOS 14 Sonoma or later
Apple Silicon or Intel
System extension approval on first launch
Privacy
All data stays on your Mac
No telemetry, no analytics
No account required
MIT licensed, source on GitHub

Questions

Frequently asked

Locale is a free, open-source macOS app that lets you create named groups of hostname-to-IP mappings (DNS contexts) and switch between them in one click, without editing /etc/hosts or using the terminal.
No. Locale uses Apple's NEDNSProxyProvider network extension to handle DNS resolution. Your system host files stay untouched.
Yes. Locale is completely free and open source under the MIT license. No account required, no telemetry, no subscriptions.
Locale requires macOS 14 Sonoma or later and runs on both Apple Silicon and Intel Macs.
Locale runs a sandboxed DNS proxy via Apple's Network Extension framework. Only hostnames you've mapped get resolved locally — everything else passes through to your normal DNS. Switch back to the Home context to clear all Locale mappings.
A DNS context in Locale is a named group of hostname-to-IP mappings. For example, you might have a “Work VPN” context that maps internal hostnames to specific IPs, and a “Home Lab” context for your local network. You can switch between them instantly.