A native macOS menu bar app for managing Cloudflare Tunnels. Quickly create, manage, and monitor tunnels without touching the command line.
- Quick Tunnels - Create temporary public URLs instantly (trycloudflare.com)
- Named Tunnels - Connect persistent tunnels with token authentication
- Custom Ingress Rules - Route multiple hostnames to different local services
- Presets - Save tunnel configurations for one-click access
- Auto-start - Launch specific tunnels when the app starts
- Real-time Logs - View tunnel output in a dedicated window
- History - Track past tunnel connections with easy recreation
- Secure Storage - Tunnel tokens stored in macOS Keychain
- Notifications - Get notified when tunnels connect or disconnect
- macOS 13.0 or later
- cloudflared CLI tool
brew install cloudflaredDownload the latest release from the Releases page, or build from source.
# Clone the repository
git clone https://github.com/user/iturnel.git
cd iturnel
# Open in Xcode
open cloudflare-turnel.xcodeproj
# Build and run (Cmd+R)- Click the iTurnel icon in your menu bar
- Click "New Tunnel"
- Enter a name and your local service details (e.g.,
localhost:3000) - Select "Quick Tunnel" type
- Click "Create Tunnel"
You'll get a temporary public URL like https://random-words.trycloudflare.com
- Create a tunnel in the Cloudflare Zero Trust Dashboard
- Copy the tunnel token
- In iTurnel Settings > Tokens, paste and save your token
- Create a new tunnel with "Named Tunnel" type
- Ingress rules are configured in the Cloudflare Dashboard
For local ingress rules routing multiple hostnames:
- Run
cloudflared tunnel loginto create credentials - Create a new tunnel with "Named Tunnel" type
- Select "Config File" mode
- Enter your tunnel UUID and credentials file path
- Add ingress rules (e.g.,
api.example.com→http://localhost:3000)
Save any tunnel configuration as a preset for quick access:
- When creating a tunnel, check "Save as Preset"
- Optionally enable "Auto-start on Launch"
- Access presets from the Presets tab
Settings are available in the menu bar dropdown or via Cmd+,:
| Setting | Description |
|---|---|
| Launch at Login | Start iTurnel when you log in |
| Auto-start Presets | Launch marked presets on app start |
| Show Notifications | Notify on tunnel connect/disconnect |
| Copy URL on Connect | Auto-copy public URL to clipboard |
| Default Protocol | HTTP, HTTPS, TCP, or SSH |
| Default Host | Default local host (e.g., localhost) |
| Default Port | Default local port (e.g., 8080) |
- Presets & History:
~/Library/Application Support/iTurnel/ - Tunnel Tokens: macOS Keychain
- Settings: UserDefaults
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Cloudflare Tunnel for the underlying tunnel technology
- Built with SwiftUI for macOS