Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Version License Build Status Gitter

Prevent your Mac from leaking MACs

This is an intuitive macOS status menu application written in Swift to help you spoof the MAC addresses of your Wi-Fi and Ethernet interfaces. It is free open-source.

➡️ How do I install this?

If you star this project (by clicking on ✭ in the top-right corner), you help me to prioritize among my open-source projects.



  • macOS Sierra (10.12) or later (see releases for older versions).
  • Administrator privileges (you will be asked for your root password once).


If you have Homebrew, just run brew install --cask linkliar.

To install it manually, follow these instructions in the documentation.


What you're looking at right now is the technical documentation.

The end-user documentation is located at

There is also a source-code documentation in progress, see bin/docs for inspiration.


  • When your Wi-Fi (aka Airport) is turned off, you cannot change its MAC address. You need to turn it on first.
  • If you change a MAC address while the interface is connected, you will briefly loose connection.
  • If you rapidly close and open your MacBook, the MAC address may change while the Wi-Fi connection remains and you loose the connection (that is, if you have configured LinkLiar to re-randomize the MAC address).
  • Whenever you successfully changed your MAC address, your System Preferences will still show you the original hardware MAC address. This is normal behavior and your actual network traffic uses the new, changed MAC address.
  • 2018 MacBooks cannot change their MAC address, because of a bug in macOS.
  • As of macOS 12.3 (Monterey), the MAC address of an interface cannot be modified while connected to a network. That's why LinkLiar will disassociate from any connected network before modifying the MAC address.


You can create this logfile and whenever it exists, all LinkLiar components will write to it:

touch "/Library/Application Support/LinkLiar/linkliar.log"

Delete the log file again to silence logging.

Once LinkLiar is started and the menu is visible, you can hold the Option ⌥ key for advanced options. This is only intended for developers.

If you want a more colorful output, clone this git repository and run bin/logs. That's what I use when I'm debugging. This utility is also bundled in LinkLiar so you can run it with

# Run this in a Terminal for live debugging logs.



To update the HelpBook (end-user documentation), change the source files in LinkLiarHelp/en.lproj and then generate the output with bin/docs.

Future work

  • Add badge with test coverage to README


  • The icon in Link/Images.xcassets is from Iconmonstr.


MIT 2012-2021 halo. See MIT-LICENSE.