Network Conditions
Add latency, cap bandwidth and make connections fail, for everything or for a single host.
Network Conditions lets you test the bad network from a good one. Pick a profile for the traffic WireLens captures and watch how your app copes with a slow API, a flaky connection, or none at all. It is on the Mac and on Android.
Shaping only affects traffic that goes through WireLens. While a profile is on, the timings in the capture are the shaped timings.
On the Mac#
Open Tools ▸ Network Conditions. Status says whether WireLens is shaping traffic, and Reset Global Profile puts the global profile back to Unthrottled.
Profiles#
The Global profile applies to every captured request that no host override matches. Pick a Preset and adjust any field: Bandwidth for download and upload, Latency with a ± jitter, and Loss as the percentage of requests that are reset. Save as Preset keeps your own numbers under Saved presets.
| Preset | Download | Upload | Latency | Jitter | Loss |
|---|---|---|---|---|---|
| Very Bad Network | 128 kbps | 64 kbps | 800 ms | 400 ms | 5% |
| 2G / EDGE | 250 kbps | 100 kbps | 400 ms | 80 ms | 1% |
| Slow Network | 780 kbps | 330 kbps | 200 ms | 40 ms | 0% |
| 3G | 1.6 Mbps | 750 kbps | 150 ms | 30 ms | 0% |
| Medium Network | 4 Mbps | 1 Mbps | 100 ms | 20 ms | 0% |
| 4G / LTE | 12 Mbps | 5 Mbps | 50 ms | 10 ms | 0% |
| Wi-Fi | 30 Mbps | 15 Mbps | 20 ms | 5 ms | 0% |
| Wi-Fi 802.11ac | 240 Mbps | 120 Mbps | 5 ms | 2 ms | 0% |
The presets use steady, repeatable numbers rather than modelling a particular carrier. Unthrottled turns shaping off. Offline fails every connection rather than setting the speed to zero, which gives your app a real failure instead of a request that hangs.
Range gives download and upload a band instead of one number. WireLens then picks a new speed inside that band every second, the way a real connection varies.
Host overrides#
Add Host Override gives a matching host its own profile. The first enabled override whose host matches wins, and it replaces the global profile for that host rather than adding to it. Put a specific host above a broad wildcard. An override can also be narrowed by Conditions.
New overrides start switched off: check the host, then switch the override on. A common setup: leave the global profile unthrottled and give only your payments or upload host a Very Bad Network profile.
Where each setting applies#
- Latency, jitter, loss and upload speed apply to plain HTTP and to decrypted HTTPS, before WireLens connects to the server. Loss fails the whole exchange, because there is no single packet to drop once the connection ends at the proxy.
- Download speed applies to plain HTTP, to decrypted HTTPS and to tunnels.
- A tunnel is shaped by host rather than by request. Because WireLens cannot read inside it, an override narrowed by method or header does not apply there.
On Android#

Open Tools ▸ Network Conditions and pick a Profile. It applies to every decrypted and cleartext HTTP exchange the device captures.
| Profile | Added latency | Download | Upload |
|---|---|---|---|
| 3G | 300 ms | 780 kbps | 330 kbps |
| Slow 3G | 2000 ms | 400 kbps | 400 kbps |
| Edge | 840 ms | 240 kbps | 200 kbps |
| LTE | 70 ms | 12000 kbps | 6000 kbps |
| Very bad network | 500 ms | 1000 kbps | 1000 kbps |
Off leaves the network as it is. Custom takes your own Added latency (ms), Download (kbps) and Upload (kbps), where 0 means no limit. Tap Use custom profile to switch it on.
Android has one profile for all traffic, with no host overrides, jitter or loss.
Free and Pro#
| Free | Pro | |
|---|---|---|
| Mac | One thing at a time: the global profile, or one host override | As many host overrides as you need |
| Android | The built-in profiles | Custom profiles too |
Command line and MCP#
The command line and the MCP server run on the Mac. wirelens ships inside the app and is not on your PATH until you link it once.
wirelens rules throttle --delay 400
That sets the global profile's latency. The MCP tools are set_ for the global profile (presets unthrottled, edge, 3g, lte and wifi, or your own numbers), add_ for one host, and set_throttle for a plain delay.
Something here is unclear, or wrong for your setup? Contact support or write to support@wirelens.app.