{"id":40111548,"url":"https://github.com/geiserx/vpn-bypass","last_synced_at":"2026-04-20T00:08:39.863Z","repository":{"id":333095270,"uuid":"1134420390","full_name":"GeiserX/VPN-Bypass","owner":"GeiserX","description":"macOS menu bar app to bypass VPN for specific domains and services","archived":false,"fork":false,"pushed_at":"2026-01-19T14:28:29.000Z","size":8192,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-19T17:35:11.347Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GeiserX.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null},"funding":{"github":"geiserx","patreon":"geiser","buy_me_a_coffee":"geiser","thanks_dev":"u/gh/geiserx"}},"created_at":"2026-01-14T17:37:03.000Z","updated_at":"2026-01-19T14:28:33.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/GeiserX/VPN-Bypass","commit_stats":null,"previous_names":["geiserx/vpn-macos-bypass"],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/GeiserX/VPN-Bypass","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GeiserX%2FVPN-Bypass","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GeiserX%2FVPN-Bypass/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GeiserX%2FVPN-Bypass/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GeiserX%2FVPN-Bypass/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GeiserX","download_url":"https://codeload.github.com/GeiserX/VPN-Bypass/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GeiserX%2FVPN-Bypass/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28636694,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T15:01:31.228Z","status":"ssl_error","status_checked_at":"2026-01-21T14:42:58.942Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-19T12:00:57.900Z","updated_at":"2026-04-20T00:08:39.851Z","avatar_url":"https://github.com/GeiserX.png","language":"Swift","funding_links":["https://github.com/sponsors/geiserx","https://patreon.com/geiser","https://buymeacoffee.com/geiser","https://thanks.dev/u/gh/geiserx"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/images/banner.svg\" alt=\"VPN Bypass banner\" width=\"900\"/\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eVPN Bypass\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  A macOS menu bar app that automatically routes specific domains and services around your VPN, ensuring they use your regular internet connection.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/macOS-13%2B-blue?style=flat-square\u0026logo=apple\u0026logoColor=white\" alt=\"macOS 13+\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Swift-5.9-orange?style=flat-square\u0026logo=swift\u0026logoColor=white\" alt=\"Swift 5.9\"\u003e\n  \u003ca href=\"https://github.com/GeiserX/VPN-Bypass/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/GeiserX/VPN-Bypass?style=flat-square\u0026color=green\" alt=\"Version\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/GeiserX/VPN-Bypass/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/GeiserX/VPN-Bypass?style=flat-square\u0026logo=github\" alt=\"Stars\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/GeiserX/VPN-Bypass/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/github/license/GeiserX/VPN-Bypass?style=flat-square\" alt=\"License\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://codecov.io/gh/GeiserX/VPN-Bypass\"\u003e\u003cimg src=\"https://codecov.io/gh/GeiserX/VPN-Bypass/graph/badge.svg\" alt=\"codecov\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## Why?\n\nCorporate VPNs often route all traffic through the tunnel, which can cause issues:\n\n- **Performance**: Streaming and messaging apps become slow or buffer constantly\n- **Broken features**: Chromecast, AirPlay, and location-based features fail\n- **Unnecessary load**: Non-business traffic clogs the VPN tunnel\n- **Privacy**: Personal services don't need to go through corporate infrastructure\n\nVPN Bypass intelligently routes selected services directly to the internet while keeping business traffic secure through VPN.\n\n## Features\n\n- 🎯 **Menu bar app** - Quick access to status and controls\n- 🌐 **Custom domains** - Add any domain you want to bypass\n- 🔧 **Built-in services** - Telegram, YouTube, WhatsApp, Spotify, Tailscale, and more\n- 🔄 **Auto-apply** - Routes are applied automatically when VPN connects\n- 📋 **Hosts file management** - Optional DNS bypass via `/etc/hosts`\n- 🪵 **Activity logs** - See what's happening in real-time\n- 🔍 **VPN Detection** - Supports GlobalProtect, Cisco, Fortinet, Zscaler, Cloudflare WARP, and more\n- 📶 **Network Monitoring** - Detects VPN and network changes automatically\n- 🔔 **Notifications** - Alerts when VPN connects/disconnects and routes are applied\n- ✅ **Route Verification** - Ping tests to verify routes are actually working\n- 💾 **Import/Export Config** - Backup and restore your configuration\n- 🚀 **Launch at Login** - Start automatically when you log in\n- 🔄 **Auto DNS Refresh** - Periodically re-resolves domains and updates routes\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003ch3\u003e📸 Screenshots\u003c/h3\u003e\u003c/summary\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/screenshot-dropdown.png\" alt=\"Menu Bar Dropdown\" width=\"300\"\u003e\n  \u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003cimg src=\"assets/screenshot-settings.png\" alt=\"Settings Window\" width=\"400\"\u003e\n\u003c/p\u003e\n\n\u003c/details\u003e\n\n## Installation\n\n### Homebrew (Recommended)\n\n```bash\n# Add the tap (first time only)\nbrew tap geiserx/vpn-bypass\n\n# Install VPN Bypass\nbrew install --cask vpn-bypass\n```\n\nOr install directly from the repository:\n\n```bash\nbrew install --cask --no-quarantine https://raw.githubusercontent.com/GeiserX/VPN-Bypass/main/Casks/vpn-bypass.rb\n```\n\n### Manual Download\n\nDownload the latest `.dmg` from [Releases](https://github.com/GeiserX/VPN-Bypass/releases), open it, and drag **VPN Bypass** to your Applications folder.\n\n### Build from Source\n\n```bash\n# Clone the repository\ngit clone https://github.com/GeiserX/VPN-Bypass.git\ncd VPN-Bypass\n\n# Build and create release DMG\nmake release\n\n# Or just build and run\nmake run\n```\n\n### Xcode\n\nOpen `Package.swift` in Xcode and run the project.\n\n## Usage\n\n### Menu Bar\n\nClick the shield icon in the menu bar to:\n- See VPN connection status and type\n- View active bypass routes\n- Quick-add domains to bypass\n- Refresh or clear routes\n- Verify routes are working\n\n### Settings\n\nClick the gear icon to access settings:\n\n**Domains Tab**\n- Add custom domains to bypass\n- Enable/disable individual domains\n- See resolved IPs\n\n**Services Tab**\n- Toggle built-in services (Telegram, YouTube, Spotify, etc.)\n- Each service includes known domains and IP ranges\n\n**General Tab**\n- Launch at Login toggle\n- Auto-apply routes when VPN connects\n- Manage `/etc/hosts` entries\n- Enable route verification after apply\n- Notification preferences (connect, disconnect, routes, failures)\n- Import/Export configuration backup\n- Network status display (VPN type, interface, gateway, WiFi SSID)\n\n**Logs Tab**\n- View recent activity\n- Debug connection issues\n\n## Supported VPN Types\n\n| VPN Client | Detection |\n|------------|-----------|\n| GlobalProtect | ✅ Full |\n| Cisco AnyConnect | ✅ Full |\n| OpenVPN | ✅ Full |\n| WireGuard | ✅ Full |\n| Fortinet FortiClient | ✅ Full |\n| Zscaler | ✅ Full |\n| Cloudflare WARP | ✅ Full |\n| Pulse Secure | ✅ Full |\n| Check Point | ✅ Full |\n| Tailscale (exit node) | ✅ Full |\n| Tailscale (mesh only) | ❌ Not VPN |\n\n## How It Works\n\n1. **VPN Detection**: Monitors network interfaces and running processes to detect VPN type\n2. **Gateway Detection**: Identifies your local gateway (Wi-Fi/Ethernet router)\n3. **Route Management**: Adds host routes to send specific traffic through local gateway instead of VPN\n4. **Route Verification**: Optionally pings routes to verify they're working\n5. **DNS Bypass**: Optionally adds entries to `/etc/hosts` to bypass VPN DNS\n\n### VPN Detection Logic\n\nThe app intelligently detects corporate VPNs while avoiding false positives:\n\n| Interface Type | IP Range | Detection |\n|---------------|----------|-----------|\n| **Corporate VPN** (GlobalProtect, Cisco, etc.) | `10.x.x.x`, `172.16-31.x.x` | ✅ Detected as VPN |\n| **Cloudflare WARP** | `100.96-111.x.x` | ✅ Detected as VPN |\n| **Tailscale** (mesh networking) | `100.64-127.x.x` | ❌ Not detected* |\n| **Tailscale** (exit node active) | `100.64-127.x.x` | ✅ Detected as VPN |\n\n**\\*Tailscale in normal mode** only routes traffic to other Tailscale devices. It's not a \"full VPN\" because your regular internet traffic still goes through your normal connection. The app only considers Tailscale as a VPN when you're using an **exit node** (routing all traffic through another Tailscale device).\n\nThe detection also requires:\n- The interface must have the `UP` flag (actually connected, not just configured)\n- The interface must have an IPv4 address in a VPN range\n\n## Requirements\n\n- macOS 13.0 (Ventura) or later\n- Admin privileges (for route management and hosts file)\n\n## Permissions\n\nThe app requires:\n- **Network access**: To detect VPN connections and resolve domains\n- **Admin privileges**: To add routes and modify `/etc/hosts` (prompted when needed)\n- **Notifications**: Optional, for VPN status alerts (prompted on first launch)\n\n## Troubleshooting\n\n### Routes not being applied\n\n1. Check if VPN is actually connected (look for utun interface)\n2. Verify local gateway is detected in Settings → General\n3. Check Logs tab for errors\n4. Use \"Verify Routes\" button to test connectivity\n\n### Hosts file not updating\n\nThe app will prompt for admin password when modifying `/etc/hosts`. If you deny, disable this feature in Settings → General.\n\n### DNS still going through VPN\n\nSome VPNs force DNS through the tunnel. The hosts file entries help bypass this, but you may also need to:\n- Disable \"Route all DNS through VPN\" in your VPN client\n- Use a local DNS resolver\n\n### Route verification failing\n\nIf routes are applied but verification fails:\n- The destination host may be blocking ping (ICMP)\n- Try accessing the service directly - it may still work\n- Check if the service is actually accessible from your network\n\n## Contributing\n\nContributions are welcome! Here's how you can help:\n\n1. **Report bugs** - Open an [issue](https://github.com/GeiserX/VPN-Bypass/issues) with details\n2. **Suggest features** - Use the feature request template\n3. **Submit PRs** - Fork, create a branch, and submit a pull request\n\nPlease read the issue templates before submitting.\n\n## Supporters\n\n\u003e This project is made possible by generous supporters:\n\u003e **Lee**\n\n## License\n\nThis project is licensed under the [GPL-3.0 License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeiserx%2Fvpn-bypass","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeiserx%2Fvpn-bypass","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeiserx%2Fvpn-bypass/lists"}