explaingit

theermia/splustunnel

Analysis updated 2026-06-24

31PythonAudience · developerComplexity · 3/5LicenseSetup · hard

TLDR

Python tunnel that sends regular internet traffic through a SoroushPlus voice call, using a LiveKit WebRTC data channel and a local SOCKS5 proxy on port 1080.

Mindmap

mindmap
  root((SPlusTunnel))
    Inputs
      LiveKit tokens
      SoroushPlus call
      Server side host
    Outputs
      SOCKS5 proxy
      Encrypted channel
      500 KB per sec
    Use Cases
      Censorship bypass
      Telegram routing
      Light browsing
    Tech Stack
      Python
      LiveKit
      WebRTC
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Bypass network filters in Iran by routing browser or Telegram traffic through a SoroushPlus voice call.

USE CASE 2

Study how a LiveKit data channel can carry SOCKS5 proxy traffic between two peers.

USE CASE 3

Build a manual peer-to-peer proxy that uses an existing chat app as the rendezvous layer.

USE CASE 4

Pair a home server with a restricted client so the restricted side gets free internet access.

What is it built with?

PythonLiveKitWebRTCSOCKS5

How does it compare?

theermia/splustunnelautolearnmem/automemcortex-ai-network/crypto-arbitrage-bot-automated-trading
Stars313232
LanguagePythonPythonPython
Setup difficultyhardhardmoderate
Complexity3/55/52/5
Audiencedeveloperresearchergeneral

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Both sides must sign in at web.splus.ir, place a voice call, and copy a LiveKit token from browser dev tools each time the call drops.

MIT license. You can use, modify, and redistribute the code for any purpose, including commercially, as long as you keep the copyright notice.

In plain English

SPlusTunnel is a Python tool that lets two computers send normal internet traffic through what looks like a voice call on SoroushPlus, an Iranian chat app. The README is direct about why it exists: the author built it to help users in Iran reach websites and apps that are blocked by their network. Inside the call, the project rides on WebRTC, the same browser technology that powers video chat, and uses an encrypted data channel run by LiveKit to carry the actual data. One side is the server, and it runs on a machine that has open internet access. The other side is the client, and it runs on the restricted device. The client opens a local SOCKS5 proxy on port 1080, so a browser or Telegram can be pointed at 127.0.0.1:1080 and have their traffic forwarded through the call. Getting it running is a manual process. Both users sign in at web.splus.ir, place a voice call to each other, and then open the browser's developer tools to copy out a LiveKit access token from the WebSocket connection to k.splus.ir:8446. Each side has its own token. The server is started first with python app.py server, then the client with python app.py client, pasting the right token in each. If the voice call drops, a new pair of tokens has to be pulled again. The README quotes a working speed of around 500 KB per second, fast enough for Telegram and light browsing but not for heavy downloads. The project needs Python 3.10 or newer and depends on livekit version 0.11.1 plus the certifi package. It is released under the MIT license, and the author closes the README with the line, hoping for better days for Iran.

Copy-paste prompts

Prompt 1
Walk me through SPlusTunnel app.py end to end. Show how the LiveKit data channel connects to the local SOCKS5 listener on port 1080.
Prompt 2
Write a Python helper that watches the LiveKit connection in SPlusTunnel and auto reconnects when the SoroushPlus voice call drops.
Prompt 3
Replace the manual dev tools token grab in SPlusTunnel with a small Playwright script that signs in to web.splus.ir and extracts the LiveKit token.
Prompt 4
Port the SPlusTunnel client side to a single static binary using PyInstaller and document the steps for a Windows user.
Prompt 5
Explain the security trade offs of running SPlusTunnel on a restricted device. What can the SoroushPlus operator see versus what stays encrypted in the LiveKit channel.

Frequently asked questions

What is splustunnel?

Python tunnel that sends regular internet traffic through a SoroushPlus voice call, using a LiveKit WebRTC data channel and a local SOCKS5 proxy on port 1080.

What language is splustunnel written in?

Mainly Python. The stack also includes Python, LiveKit, WebRTC.

What license does splustunnel use?

MIT license. You can use, modify, and redistribute the code for any purpose, including commercially, as long as you keep the copyright notice.

How hard is splustunnel to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is splustunnel for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.