Indosaram / hotspot-proxy
git clone https://github.com/Indosaram/hotspot-proxy.git
Turn your iPhone's Personal Hotspot into an HTTP/HTTPS/SOCKS5 proxy — SwiftUI app, Lock Screen widgets, and Mac auto-TUN
—
stars, 24h
+69
stars, 7 days · #724
+69
stars, 30 days · #3,571
69
★ total · +69% this week
17
forks · 0 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageSwift
License—
Created2026-10-15 (5d ago)
Last push5d ago
Watchers0
OwnerUser
GitHub topics
Links
README excerpt
Hotspot Proxy An iOS app that lets devices on your iPhone's Personal Hotspot use the iPhone's own cellular connection as a proxy . HTTP, HTTPS (CONNECT), and SOCKS5 (TCP + UDP ASSOCIATE) on a single port. --- ## Why Some carriers and plans classify tethered hotspot traffic separately and throttle or cap it. Hotspot Proxy runs a proxy server inside the iPhone. When devices on the hotspot (Mac, iPad, laptop) go through it, their traffic leaves as the iPhone app's own traffic. ## Screenshots | Main (running) | Hotspot off | Settings | Welcome | |---|---|---|---| | | | | | | | | | | ### Lock Screen and Home Screen widgets - **Lock Screen** has three widgets: - Circular shows the status and connection count. - Rectangular shows the status, `IP:port`, connections, and data transferred. - Inline shows a one-line status. - **Home Screen** has a small widget with a status chip, the proxy address, stats, and when it last updated. - Tapping a widget opens the app. The app reloads widgets only when the state changes, so they cost almost no battery. ## Features - **Status hero.** A "signal ring" shows the current state: green while running, amber when the hotspot is off, grey when stopped, and red on error. - **One-tap start and stop**, with haptic feedback. - **Copy the address.** One tap copies `172.20.10.1:8080` to enter on other devices. - **Live stats** for active connections, data transferred, and uptime. Stats update only while the screen is visible. - **Connection guides** for iPhone/iPad, macOS, Android, and Windows. - **Mac auto-TUN guide.** The `mac/` scripts route all system traffic through the proxy automatically. - **Welcome flow** that covers turning on the hotspot, local network permission, and how background keep-alive works. - **Accessibility:** Dark Mode, Dynamic Type (including accessibility sizes), VoiceOver labels, and Reduce Motion. ## Usage 1. On the iPhone, turn on **Settings › Personal Hotspot › Allow Others to Join**. 2. Open the app and tap **Start Proxy**. By default it starts automatically on launch. 3. Join the hotspot from another device and set its proxy manually: - Server: `172.20.10.1` (shown in the app) - Port: `8080` - HTTP, HTTPS, and SOCKS5 all use the same port. ### Mac: system-wide automatic proxy (optional) The `mac/` directory has a launchd setup built on sing-box TUN. It sends all traffic through the iPhone proxy, but **only while the Mac is on the hotspot**. [code] `hotspot-tun.sh` runs on every network change and every 30 seconds. When the Mac is on the iPhone hotspot (`172.20.10.x`) and `172.20.10.1:8080` responds, it turns the TUN and DNS on. Otherwise it restores the normal setup. ## Background behavior and battery iOS doesn't keep a background app's sockets alive for long. To stay running, the app loops **silent audio** (8 kHz, in 30-second segments). The audio mixes with other apps (`mixWithOthers`) at zero volume. UI timers run only while the screen is visible, and idle UDP flows are cleaned up a