Vibeleaderboard
Index / tool
Visit github.com
Category
Developer Tools
Rank
No. 1866Tools index

Previous survey · No. 1801 ·

Pricing
Open Source
Type
TOOL
Use case
Security & Identity
Interfaces
CLI
GitHub
4 stars
Date

About

sockLight is a SOCKS5 development proxy with a live terminal dashboard that shows every outbound connection by hostname, category, and live speed, letting developers block, allow, and throttle traffic in real time without restarting apps or installing a CA certificate. It runs as a normal user process, supports 34 traffic categories, and can export rules to Privoxy, PAC, or Adblock formats.

What it does

A local relay that containers, browsers and command-line tools send their network requests through, so you can watch which servers they reach. Clients hand it names rather than addresses, which is why it can show readable server names instead of raw IPs. It never decrypts anything: encrypted bytes pass through untouched and it records only destination, port, byte counts and rate. A small rules language filters or slows traffic by name pattern or by named group of domains, and bandwidth changes reach connections that are already open.

Why it's ranked here

Narrow, honest and readable. It solves one developer problem, telling a stalled download from a dead one, without the certificate setup that intercepting tools demand, and it states plainly where it stops: no request bodies, no authentication, not for production. The code is small and written to teach, with long comments on the protocol and the async patterns it uses. MIT licensed. Against that: tested only on Linux, the install instructions point at the git repository rather than a package index, and its own documentation disagrees with itself on some details.

What's good

Bandwidth limits are re-read on every chunk of data, so tightening a limit on a live download takes effect on the next read with no reconnect. At low limits it shrinks each read to roughly a tenth of a second of data, so the client sees a steady trickle instead of bursts, and it resets its accounting after more than a second behind schedule so a paused stream cannot burst at full speed. Domain grouping indexes patterns by the last two name labels and tests only that small bucket per host. A headless mode logs to standard output for running as a service.

Tradeoffs

The documentation contradicts itself. The readme and command reference promise 34 built-in groups; the command-line help and architecture notes say 32. The architecture notes say added latency applies per chunk, but the relay applies it once, before any data flows, and the live-updatable settings carry only bandwidth, so a latency change does not reach an open connection. It listens on all network interfaces by default with no authentication, so anyone who can reach the port can use it. Only the plain connect command is supported, with no UDP relay. Closed-connection history keeps the last 200 entries.

How to use it well

Best for a developer running containers or coding agents who wants to see, and trim, what they call out to, or to reproduce a slow upstream without writing a mock server. Bind it to the loopback address unless containers need to reach it, and use the name-resolving proxy setting so rules match hostnames. Tools that only speak HTTP proxies need a Privoxy bridge in between. Wildcard rules skip the bare domain, so block both forms. Set latency rules before the connection opens. It never shows request contents; for that, use an intercepting proxy such as mitmproxy.

Technical notes+

socklight/relay.py runs two AnyIO tasks per connection and cancels the sibling in a finally block; each read is sized min(chunk_size, max(1024, bps // 10)) and the window resets when more than 1 s behind. delay_ms is slept once before relaying, and ThrottleState in socklight/throttle.py holds only download_bps and upload_bps, while docs/ARCHITECTURE.md describes per-chunk latency. socklight/socks5.py accepts NO_AUTH and CONNECT only. socklight/server.py keeps a two-generation DNS cache (512 entries per generation, 60 s TTL), a 10 s connect timeout and an optional semaphore for --max-connections. socklight/tracker.py caps history at deque(maxlen=200). socklight/cli.py help says 32 categories where docs/COMMANDS.md says 34, and it installs uvloop although docs/ARCHITECTURE.md names a Trio backend.

Observed

License
MIT (LICENSE)
Language
Python, requires 3.11 or newer (pyproject.toml)
Install
pip install from the git repository; console script socklight
Dependencies
anyio, pyperclip, textual, uvloop on Linux only (pyproject.toml)
Interfaces
Textual terminal dashboard, plus a --no-tui headless mode logging to stdout (socklight/cli.py)
Platform support
Developed and tested on Linux; macOS and Windows untested per README.md
Protocol support
SOCKS5 CONNECT only, no-authentication method only (socklight/socks5.py)
Default listener
0.0.0.0 port 1080 (socklight/cli.py)
Rule export formats
Privoxy action file, PAC file, Adblock Plus filter list (docs/COMMANDS.md)

Read from README.md, pyproject.toml, LICENSE, docs/ARCHITECTURE.md, docs/COMMANDS.md, socklight/cli.py, socklight/server.py, socklight/socks5.py, socklight/relay.py, socklight/classifier.py, socklight/throttle.py, socklight/tracker.py.

What it can do

  • Display live outbound connections with hostname, category, and speed in a terminal dashboard

    Outbound network traffic → Live connection list

  • Export traffic rules to Privoxy, PAC, or Adblock formats

    Traffic rules → Privoxy/PAC/Adblock file

Tags

socks5proxynetwork-monitoringdeveloper-toolsprivacyterminal-uibandwidth-throttlingad-blocker

Tech Stack

Python

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.