This guide explains how to configure proxy settings and exclusions on **MacOS** when using an IP-based proxy, including an exclusion list for applications that rely on **WebSockets**, such as:

- **Slack**
- **Lucidchart**
- **Figma**

These apps often fail behind proxies like **Squid**, which don't support **WebSockets** by default.

## Manual method (system settings)

1. Navigate to **System Settings** → **Network**.
2. Select your active interface (e.g., Wi-Fi).
3. Click **Details** → **Proxies**.
4. Under **web proxy (HTTP)** and **secure web proxy (HTTPS)**:
   - Replace`proxy.company.com`with your **proxy IP** (e.g.,`192.168.1.10`)
   - Set port (commonly`8080`)
5. In **bypass domains**, add the required domains (see below).
6. Click **OK**, then **Apply**.

---

## What this script does

- Applies proxy settings to **all network interfaces**
- Sets HTTP and HTTPS proxy
- Configures a list of **bypass domains** that will not use the proxy
- Ideal for use with`networksetup`and MDM-managed devices
---

## Scripted method (bash)

```bash
#!/bin/bash

# Define proxy server and port
PROXY="192.168.1.10"
PORT="8080"

# Domains to exclude from proxy — especially for WebSocket-based apps
EXCLUSIONS="localhost,127.0.0.1,*.microsoftonline.com,*.core.windows.net,*.slack.com,*.figma.com,*.lucidchart.com,*.lucid.app"

# Get all active network services
services=$(networksetup -listallnetworkservices | tail +2)

# Apply settings per service
for service in $services; do
  echo "Setting proxy for: $service"
  networksetup -setwebproxy "$service" "$PROXY" "$PORT"
  networksetup -setsecurewebproxy "$service" "$PROXY" "$PORT"
  networksetup -setproxybypassdomains "$service" $(echo $EXCLUSIONS | tr "," " ")
done
```

---