Skip to content

Latest commit

Β 

History

459 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

WARPture πŸ›‘οΈ

Cloudflare WARP GUI Manager β€” App Split Tunneling Edition

A production-grade GUI manager for Cloudflare WARP with per-application split tunneling support on macOS and Linux.


✨ Features

  • System Tray / Menu Bar Integration β€” Quick toggle with status indicator
  • Per-App Split Tunneling β€” Route individual apps through or around WARP
  • Auto App Detection β€” Scans installed apps and .desktop files automatically
  • Two Tunneling Modes β€” Proxy-based (no root) and IP rule-based (with root)
  • Real-time Process Monitoring β€” Detects newly launched apps instantly
  • Cross-Platform β€” macOS (Intel + Apple Silicon) + Linux (Debian/Ubuntu/Fedora/Arch)
  • Persistent Config β€” Settings survive reboots via ~/.config/warp-gui/

πŸ“Έ Screenshots

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  πŸ›‘οΈ WARPture            [●] ON  β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  Search apps...         πŸ”      β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  Chrome        [INCLUDE ●]      β”‚
β”‚  Firefox       [INCLUDE ●]      β”‚
β”‚  Zoom          [EXCLUDE β—‹]      β”‚
β”‚  Slack         [DEFAULT ~]      β”‚
β”‚  Discord       [INCLUDE ●]      β”‚
β”‚  Steam         [EXCLUDE β—‹]      β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  Preset: [Work] [Gaming] [Stream]β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  βš™οΈ Settings    πŸ“Š Stats        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     IPC/WS      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   warp-gui   │◄───────────────►│  tunnel-agent    β”‚
β”‚  (Electron+  β”‚                 β”‚  (Go REST+WS)    β”‚
β”‚   React)     β”‚                 β”‚                  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                          β”‚ gRPC/REST
                                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                 β”‚ process-monitor  β”‚
                                 β”‚  (Python)        β”‚
                                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                          β”‚
                                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                 β”‚   warp-cli        β”‚
                                 β”‚  (Cloudflare)     β”‚
                                 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

See docs/ARCHITECTURE.md for full details.


πŸš€ Quick Start

macOS

# Install via DMG
open WARPture-v1.0.0.dmg

# Or install via Homebrew (coming soon)
brew install --cask warpture

# Manual build
make build-macos

Linux (Debian/Ubuntu)

sudo dpkg -i warpture_1.0.0_amd64.deb
# or
sudo apt install ./warpture_1.0.0_amd64.deb

Linux (Fedora/RHEL)

sudo rpm -i warpture-1.0.0.x86_64.rpm

From Source

git clone https://github.com/mehranredrose/WARPture.git
cd WARPture
make install-deps
make dev

πŸ“‹ Prerequisites

  • Cloudflare WARP CLI β€” Install from cloudflareclient.com
  • Node.js β‰₯ 18 (for warp-gui)
  • Go β‰₯ 1.21 (for tunnel-agent)
  • Python β‰₯ 3.11 (for process-monitor)

βš™οΈ Configuration

Config is stored at ~/.config/warp-gui/split-tunnel.json:

{
  "version": 1,
  "defaultPolicy": "warp",
  "includedApps": [
    {
      "name": "Firefox",
      "bundleId": "org.mozilla.firefox",
      "path": "/Applications/Firefox.app"
    }
  ],
  "excludedApps": [
    {
      "name": "Zoom",
      "bundleId": "us.zoom.xos",
      "path": "/Applications/zoom.us.app"
    }
  ]
}

Tunneling Modes

Mode Root Required How it Works
Proxy Mode (default) ❌ No WARP local proxy on 127.0.0.1:40000, env injection
IP Rule Mode βœ… Yes ip rule / pfctl routing rules per-app

🧩 Split Tunneling Logic

Include Mode

App traffic is forced through WARP regardless of default policy.

Exclude Mode

App traffic bypasses WARP entirely β€” direct internet connection.

Default Policy

Apps not in either list follow the global default: warp, bypass, or system.


πŸ› οΈ Development

# Start all services (dev mode)
docker-compose up

# Or run individually:
cd services/warp-gui && npm run dev
cd services/tunnel-agent && go run cmd/server/main.go
cd services/process-monitor && python monitor.py

# Run tests
make test

# Lint
make lint

πŸ§ͺ Testing

# Unit tests
make test-unit

# Integration tests
./scripts/integration-test.sh

# Test split tunnel logic only
cd services/tunnel-agent && go test ./internal/split/...

πŸ“ Project Structure

WARPture/
β”œβ”€β”€ services/
β”‚   β”œβ”€β”€ warp-gui/          # Electron + React frontend
β”‚   β”œβ”€β”€ tunnel-agent/      # Go REST+WebSocket middleware
β”‚   └── process-monitor/   # Python process scanner
β”œβ”€β”€ scripts/               # Install/uninstall scripts
β”œβ”€β”€ packaging/             # Platform packaging configs
β”œβ”€β”€ docs/                  # Architecture & API docs
└── Makefile               # Build automation

πŸ”’ Security

  • No hardcoded credentials
  • Proxy mode requires no elevated privileges
  • IP rule mode uses a minimal privileged helper (warp-helper) via SMJobBless (macOS) or polkit (Linux)
  • All IPC communication is local-only

πŸ“œ License

MIT β€” see LICENSE


πŸ‘€ Author

mehranredrose β€” github.com/mehranredrose


🀝 Contributing

  1. Fork the repo
  2. Create a feature branch: git checkout -b feature/my-feature
  3. Follow Git-Flow
  4. Submit a PR to develop

About

A production-grade GUI manager for Cloudflare WARP with per-application split tunneling support on macOS and Linux.

Topics

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages