id = "charles" name = "Charles" homepage = "https://www.charlesproxy.com" description = "A web debugging proxy that lets a developer view all of the HTTP and HTTPS traffic between their machine and the Internet." # The default variant is near-white, meant for a dark header; mono is the same # mark in black. icon = "theSVG:charles/mono" executables = ["charles"] [dotfiles] # The Charles FAQ, under "Deploying license keys during installation": "The # Charles preferences file is found in different locations on each OS" — # Windows %APPDATA%\Charles\charles.config, macOS # ~/Library/Preferences/com.xk72.charles.config, Linux ~/.charles.config # (https://www.charlesproxy.com/documentation/faqs/). The Homebrew cask's # `zap trash:` names the macOS one alongside com.xk72.Charles.plist, the Cocoa # window-state domain (Casks/c/charles.rb). # # Three genuinely different locations rather than one place under three names: # a dot-file at the top of the home directory on Linux, a preferences-domain # file on macOS, an %APPDATA% subdirectory on Windows. Each keeps its own # spelling and none of them is a named base directory the others share. paths = [ "~/.charles.config", "[preferences]/com.xk72.charles.config", "%APPDATA%/Charles/charles.config", ] # ~/Library/Application Support/Charles, also in the cask's zap list, is not # named above, so there is nothing to carve out of what is. exclude = [] # No whole-file credential. The file is Charles's configuration end to end — # recording settings, SSL proxying and allow lists, map remote and map local # rules, rewrite and breakpoint rules, the external proxy settings — and that # is the reason to carry it. # # It is worth knowing that the licence key rides along inside it: the same FAQ # entry deploys a licence by copying this exact file from a machine that has # already been registered. That is a field, not the file, and the schema's rule # formats are toml, yaml and json, so there is no XML syntax here to carve the # registered name and key out with. A consumer that scans content will find # them; this entry cannot name them. secret = [] # No machine_lines. Charles's own preferences — ports, throttling presets, # proxy settings — are what a user wants on their other machine, and the # per-machine parts of the file (window frames, the recent session list) are # XML elements this rule syntax cannot reach either.