Proxyman is a native proxy client for macOS and iOS, designed for intercepting, viewing, and modifying HTTP/HTTPS traffic during application development. According to the official Proxyman website (2025), the tool is used by more than 10,000 companies and supports all modern versions of iOS and macOS. This proxy client offers a free basic version and differs from Charles Proxy with a more modern interface, support for JavaScript scripts for real-time data modification, and built-in compatibility with the iOS simulator.
Key Takeaways
Proxyman is an HTTP/HTTPS proxy client created specifically for the Apple ecosystem. Unlike cross-platform solutions, Proxyman uses native macOS frameworks (Swift, AppKit), which ensures high performance and seamless integration with system proxying mechanisms. The tool supports macOS 11+ and iOS 14+.
Proxyman positions itself as a modern alternative to Charles Proxy for Apple ecosystem developers. Key advantages: a free version with full basic functionality, a native interface that matches the macOS design system, and automatic configuration for the iOS simulator without additional steps. Proxyman has been actively developed since 2018 and has an open feedback system with the developer community.
Proxyman runs on macOS (native application, not Electron) and provides a companion application for iOS. Physical devices (iPhone, iPad) are configured via WiFi Proxy similar to Charles. The iOS companion app (Proxyman iOS companion) allows viewing traffic directly on the device without a computer — this feature is unique to Proxyman.
Proxyman operates on the standard MITM principle: the application is configured as a system proxy through which all HTTP/HTTPS traffic passes. The tool uses native macOS Network Extension mechanisms to intercept traffic without needing manual proxy configuration for the iOS simulator.
On macOS, Proxyman uses Apple Network Framework for transparent traffic interception. When the proxy is activated, Proxyman creates a virtual network interface through which traffic from all applications passes. For the iOS simulator, configuration happens automatically at startup — Proxyman detects running simulators via Xcode and redirects their traffic without manual proxy setup in settings.
For HTTPS decryption, Proxyman installs a local root certificate in the macOS system keychain. On first launch, the program prompts you to install and trust the certificate. All certificates for specific domains are generated on the fly and signed with the Proxyman root certificate. For the iOS simulator, the certificate is installed automatically when the proxy starts.
// Proxyman script example for response modification
// Scripting: change response status to 500 for error testing
function onResponse(request, response) {
if (request.url.includes("/api/users")) {
response.statusCode = 500;
response.body = JSON.stringify({
error: "Internal Server Error",
code: "SERVER_TIMEOUT"
});
}
return response;
}
Proxyman provides a unique set of features that distinguish it from other proxy tools. Special emphasis is placed on script-based traffic modification and native performance.
The main feature of Proxyman is support for JavaScript scripts for modifying requests and responses. Instead of manually editing each request through Breakpoints (as in Charles), the developer can write a script that will automatically apply to specific URLs. Scripts support full access to headers, request and response bodies, status codes, and metadata. This allows automating routine operations: token substitution, header modification, error emulation for testing.
Proxyman offers a flexible rule-based filter system. You can create profiles that automatically group traffic by domains, content types, or status codes. For example, all requests to your application's API automatically go into one group, while static assets (CSS, JS, images) go into another. This is especially useful when debugging and you need to focus only on specific endpoints.
| Feature | Proxyman | Charles Proxy | Note |
|---|---|---|---|
| Scripting | JavaScript | No | Automatic modification without Breakpoints |
| iOS Simulator | Automatic | Manual setup | Proxyman detects simulator via Xcode |
| Free version | Yes | 30-day trial | Proxyman — no time limit |
| Platform | macOS, iOS | Windows, macOS, Linux | Charles is cross-platform, Proxyman — Apple only |
| HAR Export | Yes | Yes | Both support the standard format |
Proxyman displays a request timeline in a Gantt-chart style, where each request is represented by a colored bar indicating duration, status, and size. The timeline is interactive: you can select a time range and see only requests from that period. For each request, phase breakdown is available: DNS, Connect, TLS Handshake, Request, Response.
A unique Proxyman capability is a separate iOS application that can be installed on an iPhone or iPad. It allows viewing network traffic directly on the device without connecting to a computer. Traffic is displayed in real-time with filtering and search capabilities. The app is especially useful for field testing when no computer is available.
Proxyman offers different setup methods for iOS and Android. Thanks to native Xcode integration, configuration for the iOS simulator is almost automatic. For physical devices and Android, manual configuration is required.
The simplest scenario: launch Proxyman, open the iOS Simulator tab, and click Start. Proxyman automatically detects running simulators via Xcode and configures the proxy. The HTTPS certificate is also installed automatically. No additional actions are required — simulator traffic immediately appears in the Proxyman window. This is a significant advantage over Charles, where simulator setup requires manual proxy configuration.
For iPhone or iPad: connect the device to the same WiFi network as your computer. In the device's WiFi settings, specify HTTP Proxy: the computer's IP address and port 9090 (Proxyman's default port). Then open Safari and go to http://proxy.man/ssl to install the certificate. On iOS 10.3+, make sure to enable certificate trust in Settings → General → About → Certificate Trust Settings.
Android devices are configured similarly to iOS: WiFi Proxy with the computer's IP address and port 9090. For HTTPS, you need to install the certificate via the browser at http://proxy.man/ssl. On Android 7+ for debug builds, you will need a network_security_config.xml file trusting user certificates. For the Android emulator, use the host IP address (usually 10.0.2.2) instead of the computer's IP.
<!-- network_security_config.xml for Android with Proxyman -->
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<debug-overrides>
<trust-anchors>
<certificates src="user" />
<certificates src="system" />
</trust-anchors>
</debug-overrides>
<base-config cleartextTrafficPermitted="false">
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
</network-security-config>
The choice between Proxyman and Charles Proxy depends on your team's specific needs and development platform. Let's examine the key differences to help developers make an informed decision.
Proxyman is written in Swift with AppKit, providing native macOS performance and minimal memory consumption. Charles is written in Java (Eclipse RCP), which enables cross-platform compatibility but can lead to slightly higher memory usage and a non-native interface on macOS. For Apple ecosystem developers, Proxyman generally feels more responsive.
Charles offers a more mature and extensive set of tools: Rewrite Rules with a visual editor, Repeat for replaying requests, Map Local/Remote, Auto Save sessions. Proxyman counters with more modern features: JavaScript Scripting, automatic simulator configuration, and an iOS companion for viewing traffic on the device. Charles has an advantage in complex automation scenarios (Rewrite, Repeat), while Proxyman excels at quick and flexible modification through scripts.
Proxyman offers a free version with basic functionality and no time limit. The Pro version (subscription ~$12/year or one-time purchase ~$59) unlocks advanced features: scripting, filters, export. Charles costs $50 per license with a 30-day trial. For indie developers, Proxyman is more affordable; for enterprise environments, the difference is negligible.
Frequently Asked Questions
Proxyman has a free version with basic HTTP/HTTPS traffic interception functionality and no time limit. Paid subscriptions (Pro and Team) add scripting, advanced filters, HAR export, and priority support. For most debugging tasks, the free version is sufficient.
Proxyman is a native macOS application, but it can intercept traffic from Android devices via WiFi Proxy similar to Charles. Android devices are configured as HTTP proxies with the computer's IP address and Proxyman's port. For the Android emulator, use IP 10.0.2.2. The HTTPS certificate is installed separately.
There are two methods: Local Edit — double-click on a request, select the Response tab, edit manually, then click Execute to send the modified response to the application. Scripting — write a JavaScript script that automatically applies changes to specified URLs on every request.
Yes, Proxyman supports export to formats: HAR (HTTP Archive), Proxyman Session (.pxm), Curl Command (for each request), Plain Text. Export is available via the context menu on a request or group of requests. HAR format is compatible with Charles Proxy, Chrome DevTools, and online viewers.
Proxyman automatically detects running iOS Simulators via Xcode and redirects their traffic without manual configuration. When the proxy starts, Proxyman injects a system proxy through Network Extension on macOS, which automatically applies to all simulators. The HTTPS certificate is also installed automatically.
Summary
We will develop a mobile application turnkey
IT Sectr creates iOS and Android applications for startups and businesses since 2017. We will advise you and propose the best solution.
Read also