How to uninstall Charles on Mac
Charles reaches further into macOS than its own folders. It switches the system proxy settings on while it runs, it may have installed a privileged helper to do that, and if you used SSL proxying you installed and trusted a Charles root certificate in your keychain. Removing the app handles none of those three by itself. Your Charles settings, the license included, are kept in ~/Library/Preferences/com.xk72.charles.config, according to Charles's FAQ; copy that file somewhere safe if you want them back later. This guide covers Charles from its disk image and the Homebrew cask charles.
Quit Charles normally first
Charles's configuration guide says it configures the macOS proxy settings when it starts and reconfigures them when it quits. Quit it from the Charles menu instead of force quitting it, so it can put the proxy settings back. Then:
- Search Activity Monitor for Charles and check that its processes have exited.
- Move Charles from Finder's Applications folder to the Trash.
- Open System Settings › General › Login Items & Extensions. In the recorded test Charles had registered an item,
com.xk72.charles, and it was still listed after the app was in the Trash. Turn it off there if it remains.
Check that no proxy is left pointing at Charles
If Charles crashed or was force quit, the system can keep sending traffic to a proxy that no longer exists, and web pages stop loading. Check the current proxy settings:
scutil --proxy
HTTPEnable : 0andHTTPSEnable : 0, or no HTTP entries at all, means no web proxy is active.HTTPEnable : 1withHTTPProxy : 127.0.0.1and aHTTPPortthat matches your Charles port (8888 unless you changed it) means the Charles proxy is still set. Open System Settings › Network, choose the network you use, click Details, then Proxies, and turn off the web proxy entries that point at your own Mac.- A proxy pointing at another address belongs to something else, such as a company configuration or another tool. Leave it alone.
Decide what to do with the Charles root certificate
The root certificate is a separate decision from uninstalling. Charles's SSL page says each installation generates its own root certificate, which you installed through Help › SSL Proxying › Install Charles Root Certificate and set to Always Trust in Keychain Access.
- Keep it if you plan to reinstall Charles and keep debugging HTTPS on this Mac.
- Remove it if you are done with Charles. A trusted root you no longer use lets whoever holds its key present certificates your Mac accepts for any site. Open Keychain Access, search for
Charles Proxy, select the certificate under Certificates and delete it. macOS asks for your password if the trust setting has to change.
Phones and simulators that you set up for Charles hold their own copies. On an iPhone, turn it off under Settings › General › About › Certificate Trust Settings and remove its profile under Settings › General › VPN & Device Management. Removing Charles from the Mac does not touch them.
This read-only command shows whether a Charles certificate is still in your keychains:
security find-certificate -a -c "Charles Proxy" | grep labl
A labl line naming Charles Proxy means a certificate is still there. No output means none of your keychains holds one. An error mentioning that the item could not be found means the same thing.
Check for the proxy helper
Charles can install a helper so it can change network settings without asking each time. These read-only commands show whether one is present:
pgrep -il charles
ls -l /Library/PrivilegedHelperTools | grep -i xk72
ls /Library/LaunchDaemons | grep -i xk72
- No output from
pgrepmeans Charles is not running. - No output from the two
lslines means no Charles helper was installed, which is common if you never granted Charles permission to change the proxy settings. - A
com.xk72.Charles.ProxyHelperentry means the helper is still installed. Remove it only after Charles is gone, in Finder, with administrator authorization; do not remove anything else in those folders.
Where Charles keeps its data
| Location | What it holds | What to do |
|---|---|---|
~/Library/Preferences/com.xk72.charles.config |
All Charles settings and the license | Copy it before removal if you want your setup back |
~/Library/Application Support/Charles |
App support data | Review, then remove when you no longer need it |
~/Library/Preferences/com.xk72.Charles.plist |
macOS preferences for the app | Safe to remove after quitting |
~/Library/Saved Application State/com.xk72.Charles.savedState |
Saved window state | Safe to remove after quitting |
Saved sessions and exported traffic are files you chose a place for; they are not app data.
If you installed it with Homebrew
The charles cask's plain uninstall step unloads com.xk72.Charles.ProxyHelper, deletes /Library/PrivilegedHelperTools/com.xk72.Charles.ProxyHelper, and then runs a step that deletes the Charles certificates from the keychain. brew uninstall --cask charles therefore removes the root certificate even without --zap, and after a reinstall you install and trust it again through the Help menu. The zap list adds ~/Library/Application Support/Charles, com.xk72.charles.config, the com.xk72.Charles preferences file and the saved window state, so brew uninstall --cask --zap charles also removes your settings and license.
To keep your settings, leave out the zap step:
brew uninstall --cask charles
Mole adds --zap only when every path on the zap list sits inside ~/Library, none of them touches a row you left unchecked, and no other installed app claims them. ~/Library/Application Support/Charles is listed but unselected by default, so Mole leaves --zap out unless you tick that row. The plain uninstall step, including the certificate step, still runs when Mole removes a Homebrew install. A brew command you type yourself never consults Mole's checkboxes.
What Mole lists
For Charles from its disk image:
~/Library/Application Support/Charlesis listed but not selected.- The
com.xk72.Charlespreferences file and saved window state are selected by default. ~/Library/Preferences/com.xk72.charles.config, taken from the Homebrew zap list, is listed but not selected, so your settings stay unless you tick it.- If
/Library/PrivilegedHelperTools/com.xk72.Charles.ProxyHelperexists, it is listed but not selected. - Mole does not read or change keychain certificates or proxy settings, and it does not edit login items. Use the steps above for those.
What this test covered
On September 19, 2026, Charles 5.2.1 was copied from its disk image into Applications, opened, and uninstalled with a Preview build of Mole 1.15. There was no Homebrew receipt. ~/Library/Application Support/Charles was listed, left unselected and stayed on disk. The com.xk72.charles login item was still listed afterwards, pointing at the app in the Trash. SSL proxying, the root certificate, the proxy helper and the Homebrew cask were not tested.
