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
- Inspect HTTP and HTTPS independently:
HTTPEnablecontrols HTTP, andHTTPSEnablecontrols HTTPS. Both disabled or absent means neither explicit HTTP nor HTTPS proxy is enabled in this output; it does not rule out automatic proxy configuration or other network tools. - If one is enabled, compare its
HTTPProxy/HTTPPortorHTTPSProxy/HTTPSPortwith the address and port you actually configured for Charles (often127.0.0.1:8888). A local address alone does not identify Charles. Only after confirming the matching entry was left by Charles, open System Settings › Network, select the active network, then Details › Proxies, and disable that corresponding HTTP or HTTPS entry. - Keep all other proxy entries, including other proxies on your own Mac, company configurations and automatic proxy settings.
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, first open Settings › Wi-Fi, tap the information button beside the connected network and open Configure Proxy. If it points to the Mac and port you used for Charles, turn that proxy off; keep any unrelated company or other proxy configuration. Then turn off the Charles certificate 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. An item-not-found error means the search found no matching certificate in the searched keychain scope. Other errors or no displayed line alone do not prove that every keychain is free of Charles certificates; use Keychain Access to inspect the relevant keychains.
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 matching line from the two
lscommands means no matching filename was shown in those folders, provided neither command reported an error. It does not establish whether a helper was installed in the past. - A
com.xk72.Charles.ProxyHelperentry needs an ownership check. Inspect the exact registered system job before stopping it:
launchctl print system/com.xk72.Charles.ProxyHelper
If its program points to /Library/PrivilegedHelperTools/com.xk72.Charles.ProxyHelper, quit Charles and stop that verified job before deleting the helper:
sudo launchctl bootout system/com.xk72.Charles.ProxyHelper
After a successful stop, open /Library/PrivilegedHelperTools with Shift + Command + G in Finder and move only com.xk72.Charles.ProxyHelper to the Trash with administrator authorization. In /Library/LaunchDaemons, remove a plist only after opening it and confirming that its Label and program identify that same Charles helper. Do not select other xk72 files. Repeat the launchctl print check: a service-not-found result means this exact job is no longer registered; permission errors remain unresolved. Check Activity Monitor for the helper as well. Homebrew installations can use the ordinary uninstall route below, which already unloads this helper.
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, with Remove data and settings with apps off; leaving it unchecked suppresses zap. 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, with Remove data and settings with apps off:
~/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 macOS background-task databases. Check any remaining login item in System Settings using the steps above.
With Remove data and settings with apps on, eligible local support and settings rows can be preselected. Uncheck them to retain your setup. The privileged helper is outside the user-home data-selection setting and still needs the separate service-removal procedure above.
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.
