Skip to main content
Mole
Features Tested apps Testimonials Pricing FAQ Blog
EnglishEN 简体中文中 繁體中文繁 日本語日 한국어한 FrançaisFR DeutschDE ItalianoIT EspañolES PortuguêsPT
Buy nowBuy Download

    Help, documentation, releases, and articles.

    Home/Apps tested with Mole

    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:

    1. Search Activity Monitor for Charles and check that its processes have exited.
    2. Move Charles from Finder's Applications folder to the Trash.
    3. 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: HTTPEnable controls HTTP, and HTTPSEnable controls 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/HTTPPort or HTTPSProxy/HTTPSPort with the address and port you actually configured for Charles (often 127.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 pgrep means Charles is not running.
    • No matching line from the two ls commands 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.ProxyHelper entry 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/Charles is listed but not selected.
    • The com.xk72.Charles preferences 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.ProxyHelper exists, 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.

    If Mac apps leave files behind after uninstalling, try Mole. I've personally tested and inspected 799 Mac apps.

    Try Mole

    Mole · 鼴

    Cleanup, software, and status for your Mac.

    v1.16.0 (304) · Release notes

    Product

    Mac Cleaner App Uninstaller Mac Optimizer Disk Analyzer System Monitor

    Support

    Help Documentation Releases Blog

    Legal

    Terms of Service Privacy Policy Refund Policy

    Resources

    CLI Tool Affiliate Program

    Connect

    Twitter hi@mole.fit

    Mole’s only official website mole.fit · Avoid installers from unknown sources

    The CLI stays free for terminal workflows.