// DOCS

Connect. Automate.
Rotate.

Visual connection maps, the local control API, and practical commands for browsers, scripts, and AI agents.

Installation

Install the Android app first, then connect with the browser extension or configure the proxy endpoint manually.

1. Android APK

ANDROID 7+

Release APK

The build includes arm64-v8a and armeabi-v7a.

Download APK — Free
REQUIREMENTS

Phone + SIM

Active cellular data plus Wi‑Fi or USB LAN for the local connection.

Start setup
  1. Allow app installation from your selected source in Android Settings.
  2. Open the downloaded APK and confirm installation.
  3. Launch 8PROXY and allow notifications. The foreground notification keeps the service active.
No root is required for proxy traffic. Extra system access is only needed for unattended IP rotation.

2. First start

  1. Connect the phone and client to the same local network.
  2. Keep cellular data active on the phone.
  3. Use protocol AUTO and port 8888 unless your client requires a specific mode.
  4. Enable Basic Auth when the local network is shared.
  5. Tap Start and copy the endpoint shown in the app.

3. Enable IP rotation: set 8PROXY as the assistant

Required for IP rotation on a non-rooted standalone phone. Without this setting, the proxy can still carry traffic, but the app button, rotation timer, and /newip API cannot toggle airplane mode to request a new mobile IP.
  1. Open 8PROXY and tap Rotate IP Address.
  2. Open Settings → Apps → Default apps → Digital assistant app. On Samsung, use Settings → Apps → Choose default apps → Digital assistant app.
  3. Select 8PROXY and confirm.
  4. Return to 8PROXY and tap Rotate IP Address again.

Visual interface guide

The numbered markers identify the controls and values shown by the current Android app.

Dashboard

8PROXY dashboard with numbered controls 01 02 03 04 05 06 07 08
  1. 01
    Start / Stop

    Starts or stops the proxy. The center shows the connection time.

  2. 02
    Proxy address + copy

    Copy this address into the extension, browser, script, or proxy client.

  3. 03
    Rotate IP Address

    Requests an immediate mobile IP change.

  4. 04
    Mobile public IP

    The public address used by proxy traffic.

  5. 05
    Local Wi‑Fi / USB address

    The phone address used by clients on the local network.

  6. 06
    Settings

    Opens rotation, authentication, port, protocol, and interface settings.

  7. 07
    Proxy status

    ACTIVE means the local proxy is running.

  8. 08
    Cellular warning

    Mobile internet is unavailable. Proxy traffic cannot exit through the SIM.

Traffic & status

8PROXY dashboard traffic and rotation statistics with numbered markers 09 10 11 12 13 14
  1. 09
    Upload

    Total data sent through the proxy during the current session.

  2. 10
    Download

    Total data received through the proxy during the current session.

  3. 11
    Rotation count

    Number of completed IP rotations in the current run.

  4. 12
    Rotation interval

    Configured time between automatic IP rotations.

  5. 13
    Ping

    Current mobile-network latency.

  6. 14
    Protocol

    Active mode: AUTO, HTTP/S, or SOCKS5.

Settings

8PROXY settings overview with numbered fields 01 02 03 04 05 06 07
  1. 01
    IP Rotation

    Enables the rotation subsystem. Turn it off when the proxy must keep the same carrier session.

  2. 02
    Interval (minutes)

    0 means link/button-only rotation. Values from 1 to 1440 schedule automatic rotation while the service is running.

  3. 03
    Rotation URL

    Copyable local endpoint for scripts and AI agents: http://8proxy.local:PORT/newip.

  4. 04
    Protect /newip

    Requires a key on rotation requests. Enable this on shared Wi‑Fi so other devices cannot rotate the phone anonymously.

  5. 05
    Authentication

    Requires a username and password for proxy traffic. This is separate from the /newip key.

  6. 06
    Port

    Local listening port. Default: 8888. Clients, the extension, and control URLs must all use the same port.

  7. 07
    Protocol

    AUTO detects HTTP or SOCKS5 on the same port. HTTP supports plain HTTP and HTTPS CONNECT. SOCKS5 is for SOCKS-compatible clients and remote DNS.

  8. 08
    Connection interface — conditional

    The WI‑FI / USB selector appears only when both interfaces are available. It chooses the local address advertised to clients; outgoing traffic still uses cellular data.

Protect the /newip URL

8PROXY new IP control key settings with demonstration key 01 02 03
  1. 01
    Enable the key gate

    When enabled, /newip rejects requests that do not contain the correct key.

  2. 02
    Protected URL preview

    The copyable URL automatically includes ?key=…. Treat it as a local control secret.

  3. 03
    NEWIP KEY

    An eight-character key is generated when the gate is enabled for the first time. Edit it if needed; the screenshot uses the non-secret example DEMO_KEY.

Proxy authentication

8PROXY authentication settings with numbered login and password fields 01 02 03
  1. 01
    Proxy Authentication

    Protects HTTP and SOCKS5 proxy access with credentials. Recommended on any network you do not fully trust.

  2. 02
    Login

    Proxy username. Leave it empty to let 8PROXY generate one when the proxy starts.

  3. 03
    Password

    Proxy password. Leave it empty for automatic generation. Copy the complete authenticated endpoint from the Dashboard.

Android: Digital Assistant

Digital Assistant

Android Digital assistant app settings showing 8PROXY selected 01

Choose 8PROXY

Android default digital assistant list with 8PROXY selected 02
  1. 01
    Check the assistant

    The Digital assistant app row must show 8PROXY.

  2. 02
    Choose 8PROXY

    Open the row and select 8PROXY.

  3. 03
    Test IP rotation

    Return to 8PROXY and tap Rotate IP Address.

Chrome extension

8PROXY Proxy Manager connects Chrome to 8PROXY Mobile and keeps additional proxy profiles in one place.

8PROXY PROXY MANAGER

Chrome Web Store

Install it from the Chrome Web Store in one click.

Download Extension

Install in Chrome

  1. 01
    Open the store page

    Go to 8PROXY in the Chrome Web Store.

  2. 02
    Add to Chrome

    Click “Add to Chrome”, then confirm with “Add extension”.

  3. 03
    Pin it

    Pin Proxy Manager from Chrome’s Extensions menu.

Works in Chrome and Edge. Pin Proxy Manager from the Extensions menu for quick access.

Main screen

8PROXY Proxy Manager main screen with the active connection and 8PROXY Mobile endpoint
  • Current connectionPublic IP, country, session time, rotation count, ping, and protocol.
  • Rotate IPThe circular arrows request a new mobile public IP.
  • 8PROXY MobileYour phone’s local proxy endpoint. Use the power button to connect or disconnect it.
  • Refresh / SettingsReload connection data or open proxy settings.

Proxy list

8PROXY Proxy Manager list with 8PROXY Mobile and saved proxy profiles
  • 8PROXY MobileThe local address detected from your phone.
  • Other ProxySaved HTTP and SOCKS5 profiles with location and ping.
  • Power buttonConnect to the selected proxy or disconnect it.
  • Refresh / SettingsRefresh the list or open proxy management.

Settings

Proxy Manager Proxy settings tab with the Add Proxy form
  • Add ProxyEnter the proxy IP and port. Name, username, password, and note are optional.
  • Rotation URLAdd the provider’s URL when the proxy supports IP rotation.
  • Import listAdd multiple proxy profiles from a prepared list.

Bypass

Proxy Manager Bypass settings tab
  • Bypass listAdd one host rule per line. Matching addresses connect directly without the proxy.
  • DefaultsRestore the default local-address rules.
  • Save RulesApply the current bypass list.

Backup

Proxy Manager Backup settings tab
  • Export BackupDownload all proxy profiles and settings as a JSON file.
  • Import BackupReplace the current profiles and settings with a backup.
  • Keep it privateThe backup can contain proxy passwords in plain text.
Phone and computer must be on the same local network. The extension changes the proxy for the entire regular Chrome profile, not only the current tab.

Network path

Every client reaches the phone over the local network. 8PROXY then creates a separate upstream connection bound to the phone’s cellular network.

Two networks are involved: Wi‑Fi or USB carries traffic from the client to the phone; the SIM’s mobile data carries traffic from the phone to the internet.
01 · NETWORK PATH

Local in. Cellular out.

Client typeEntry pointUse when
Browser extension8proxy.local:8888Chrome or Edge needs a fast on/off switch.
HTTP proxyhttp://HOST:PORTcurl, scripts, browsers, and HTTP tooling.
HTTPS through proxyHTTP CONNECTThe destination itself uses HTTPS.
SOCKS5socks5h://HOST:PORTApps or bots that support SOCKS5 and remote DNS.
Control APIhttp://HOST:PORT/statusLocal automation and AI agents.
ADBUSB or configured wireless debuggingStart, stop, rotate, inspect, or reboot the phone.

Address & protocols

The proxy listens on port 8888 by default. Use mDNS when supported or the phone’s LAN address shown in the app.

8proxy.local:8888 192.168.110.99:8888 user:password@192.168.110.99:8888
AUTO

Mixed clients

Detects HTTP or SOCKS5 from the first byte on the same port.

HTTP

HTTP + HTTPS

Forwards plain HTTP and creates CONNECT tunnels for HTTPS.

SOCKS5

SOCKS clients

Supports RFC 1928 and username/password authentication.

# HTTP proxy; HTTPS is tunneled with CONNECT curl --proxy http://8proxy.local:8888 https://api.ipify.org # SOCKS5 with DNS resolved through the proxy curl --proxy socks5h://8proxy.local:8888 https://api.ipify.org
If 8proxy.local does not resolve, use the numeric Wi‑Fi or USB IP from the dashboard. IP rotation changes the mobile public IP, not the phone’s local proxy address while LAN connectivity remains active.

API for AI & automation

The control API is intentionally small and runs on the same host and port as the proxy. It is designed for local scripts, orchestration tools, and AI agents that can make HTTP requests or run shell commands.

Base URL

http://8proxy.local:8888 http://PHONE_LAN_IP:8888
EndpointPurposeAuthenticationTypical time
GET /statusProxy listener state and LAN address.NoneImmediate
GET /newipRequest one mobile IP rotation and wait for its result.Optional ?key=Several seconds; hard timeout is 45 s

GET /status

curl --fail-with-body --silent --show-error \ --connect-timeout 3 --max-time 5 \ http://8proxy.local:8888/status {"running":true,"port":8888,"protocol":"auto","uptime":732,"lanIp":"192.168.110.99"}

running=true confirms that the listener is active. It does not guarantee that the carrier currently has working internet, so critical automation should also perform a request through the proxy.

GET /newip

# Open endpoint curl --fail-with-body --silent --show-error \ --connect-timeout 3 --max-time 50 \ http://8proxy.local:8888/newip # Protected endpoint; --data-urlencode safely encodes the key curl --fail-with-body --silent --show-error \ --connect-timeout 3 --max-time 50 --get \ --data-urlencode "key=$EIGHTPROXY_ROTATION_KEY" \ http://8proxy.local:8888/newip {"success":true,"ip":"29.198.132.196"}

Response contract

HTTPBodyAgent action
200{"success":true,"ip":"…"}Accept the new IP and verify the next request.
403{"success":false,"err":"invalid or missing key"}Fix the key; do not retry anonymously.
500{"success":false,"err":"rotation failed"}Check SIM, mobile data, and rotation setup.
504{"success":false,"err":"rotation timed out"}Wait, check status, then retry once.

Agent-ready shell runbook

BASE_URL="${EIGHTPROXY_BASE_URL:-http://8proxy.local:8888}" PROXY_URL="${EIGHTPROXY_PROXY_URL:-http://8proxy.local:8888}" # 1. Confirm that 8PROXY is listening curl -fsS --connect-timeout 3 --max-time 5 "$BASE_URL/status" # 2. Record the current mobile public IP BEFORE_IP=$(curl -fsS --proxy "$PROXY_URL" --max-time 20 https://api.ipify.org) # 3. Request exactly one rotation curl -fsS --connect-timeout 3 --max-time 50 --get \ --data-urlencode "key=$EIGHTPROXY_ROTATION_KEY" \ "$BASE_URL/newip" # 4. Verify traffic and the resulting public IP AFTER_IP=$(curl -fsS --proxy "$PROXY_URL" --max-time 20 https://api.ipify.org) printf 'before=%s\nafter=%s\n' "$BEFORE_IP" "$AFTER_IP"
AI safety rules: serialize rotation requests; allow up to 45 seconds; keep at least 12 seconds between completed rotations; retry at most once; never expose port 8888 directly to the public internet; enable the /newip key on shared LANs.

IP rotation

A rotation briefly resets the cellular radio, waits for mobile service to return, closes stale upstream sockets, and reports the newly observed public IP.

TriggerBest useLAN impact
App buttonManual operation on the phone.Depends on the available rotation method.
GET /newipBrowser automation, scripts, and AI agents.URL stays reachable when Wi‑Fi remains connected.
Native timerUnattended rotation every configured interval.Runs even when the Flutter UI is closed.
ADB broadcastDevelopment rigs and managed phone farms.Control travels over the ADB connection.
adb shell svc dataDirect shell rotation.Wi‑Fi stays active.
Airplane modeFallback when mobile-data toggle is unavailable.May disconnect Wi‑Fi temporarily.
For non-rooted standalone use, complete the Digital Assistant setup first. For a computer-controlled setup, ADB can use svc data disable/enable, which keeps Wi‑Fi connected.

ADB control & phone reboot

The code contains several control paths that look similar from the outside but do different work. ADB is the system-control channel; the HTTP API and the app’s internal rotation pipeline are separate.

What “restart” means

OperationWhat changesImplemented command
Rotate mobile IPResets cellular connectivity and keeps the proxy process alive.GET /newip, app button/timer, ADB broadcast, or direct ADB shell.
Restart proxy listenerRebinds the port/protocol, drops active connections, preserves the process and counters.Internal HttpProxyServer.restart() when settings change; no public HTTP endpoint.
Restart app processStops and launches the Android application.adb shell am force-stop plus launcher command.
Reboot phoneRestarts Android and temporarily removes every proxy/control connection.adb reboot; no in-app or HTTP reboot command exists.

Internal commands vs external ADB

AirplaneModeService contains internal Runtime.exec attempts for cmd connectivity and svc data. They run as the normal app UID and usually fail on a non-rooted consumer phone because those commands require shell privileges. The app then falls back to the configured Digital Assistant path. This is not an embedded ADB client.

The ADB broadcast path is different: an external adb shell process sends an intent to the exported ProxyCommandReceiver, which then calls the same process-level ProxyCore rotation queue used by the UI and /newip.

Start, stop, rotate, and inspect

PKG="com.eightproxy.eight_proxy" RECEIVER="$PKG/.ProxyCommandReceiver" # Pass values explicitly: the current receiver fallback is port 8080 + HTTP adb shell am broadcast -a com.eightproxy.START_PROXY -n "$RECEIVER" \ --ei port 8888 --es protocol auto adb shell am broadcast -a com.eightproxy.STOP_PROXY -n "$RECEIVER" adb shell am broadcast -a com.eightproxy.ROTATE_IP -n "$RECEIVER" adb shell am broadcast -a com.eightproxy.STATUS -n "$RECEIVER" # Read the status response written by the broadcast receiver adb logcat -d | grep "8Proxy-CMD"
Current broadcast behavior: START_PROXY starts the listener, mDNS, and cellular binding without opening Flutter. It does not load saved Basic Auth credentials, and its code-level defaults are 8080 / http, so automation should always pass --ei port 8888 --es protocol auto. It also bypasses the UI start sequence that enables the Foreground Service and WakeLock; use the normal app start path when long background survival is required.

Direct external ADB rotation

These commands bypass ProxyCommandReceiver and change Android connectivity directly. The running proxy observes the network loss and rebinds when cellular service returns.

adb shell svc data disable sleep 2 adb shell svc data enable # Alternative: may also disconnect Wi-Fi adb shell cmd connectivity airplane-mode enable sleep 2 adb shell cmd connectivity airplane-mode disable

Restart only the 8PROXY app

PKG="com.eightproxy.eight_proxy" adb shell am force-stop "$PKG" adb shell monkey -p "$PKG" -c android.intent.category.LAUNCHER 1

Reboot the entire phone

# Confirm the intended device before a disruptive action adb devices # Reboot Android adb reboot # Wait until ADB is available again, then start the proxy adb wait-for-device adb shell am broadcast -a com.eightproxy.START_PROXY \ -n com.eightproxy.eight_proxy/.ProxyCommandReceiver
Important for AI agents: require an explicit device match before adb reboot, never reboot in a retry loop, and expect the proxy to be unavailable until Android and cellular service finish starting.

Limits & operational notes

  • An active SIM and working cellular data are required.
  • The client and phone must be reachable on the same local network unless you provide your own secure private tunnel.
  • mDNS 8proxy.local is convenient but not universal; use the numeric LAN IP as the fallback.
  • Your carrier assigns the next public IP. A different address is not guaranteed after every radio reset.
  • Active upstream connections may drop during rotation or when changing the proxy port or protocol.
  • Basic Auth protects proxy use. The separate /newip key protects rotation. /status remains available on the local listener.
  • The HTTP API cannot reboot Android, restart the app, or change system settings. Use ADB for those operations.
  • Speed and latency depend on the phone, signal, plan, and carrier.