Using Proxies with Kameleo on macOS
We've seen many customers struggle with getting Kameleo to work properly behind corporate proxies, especially on macOS. This guide will help you configure both the CLI and GUI versions without disrupting your other applications.
The Proxy Challenge
If you're trying to use Kameleo in an environment where direct internet access is restricted, you'll likely face these issues:
- The CLI and GUI handle proxies differently
- Setting macOS system-wide proxies affects all your other apps (not ideal!)
- Getting the syntax right for authenticated proxies can be tricky
We've just recently had a customer who faced these exact problems, and here's what worked:
Basic Proxy Configuration
The Kameleo CLI makes this fairly straightforward. You can pass proxy parameters directly in the command:
/Applications/Kameleo.app/Contents/Resources/CLI/Kameleo.CLI email=EMAIL password=PASSWORD httpProxy=http://proxy:port httpsProxy=http://proxy:port socksProxy=socks5://proxy:port
If your proxy requires authentication (as most corporate ones do), use this format instead:
/Applications/Kameleo.app/Contents/Resources/CLI/Kameleo.CLI email=EMAIL password=PASSWORD httpProxy=http://username:password@proxy:port httpsProxy=http://username:password@proxy:port
We found that specifying both httpProxy and httpsProxy works best, even if they point to the same server.
The GUI Solution
Here is what we've also discovered, and it's quite interesting:
- The GUI ignores environment variables like
HTTP_PROXY
set in Terminal - By default, it only uses the system-wide proxy settings (which affects all apps)
You can launch the GUI with specific proxy settings using the macOS open
command:
open /Applications/Kameleo.app --args "httpProxy=http://proxy:port httpsProxy=http://proxy:port socksProxy=socks5h://proxy:port"
For authenticated proxies:
open /Applications/Kameleo.app --args "httpProxy=http://username:password@proxy:port httpsProxy=http://username:password@proxy:port"
Troubleshooting Tips
Enable Detailed Logging
When things aren't working, verbose logging can save hours of frustration:
# For CLI
/Applications/Kameleo.app/Contents/Resources/CLI/Kameleo.CLI email=EMAIL password=PASSWORD httpProxy=http://proxy:port verbose=2
# For GUI
open /Applications/Kameleo.app --args "httpProxy=http://proxy:port verbose=2"
By default the value is set to h verbose=1
, yet we do recommend changing it to verbose=2
, but you can try these other levels:
-
0
: Minimal logging (the default) -
1
: Basic info - not usually detailed enough for proxy issues -
2
: Detailed logs - my go-to setting for troubleshooting -
3
: Everything including network traffic - use when you're really stuck
Understanding How Traffic Flows
Kameleo handles proxies at two different levels:
- The command-line/launch arguments proxies are only used for Kameleo to communicate with its licensing servers
- The proxies you configure inside each profile control where the actual browser traffic goes
This distinction is crucial - you might need different proxies for each!
For Windows Users
If you're on Windows, the equivalent commands are:
"C:\Users\{username}\AppData\Local\Programs\Kameleo\Kameleo.CLI.exe" email=EMAIL password=PASSWORD httpProxy=http://username:password@proxy:port httpsProxy=http://username:password@proxy:port
Or with PowerShell:
Start-Process -FilePath "C:\Users\{username}\AppData\Local\Programs\Kameleo\Kameleo.CLI.exe" -ArgumentList "email=EMAIL password=PASSWORD httpProxy=http://username:password@proxy:port httpsProxy=http://username:password@proxy:port"
The Windows version seems to handle proxies more consistently in my testing, but these commands should work in either case.