tg-ws-proxy-telegram-socks5

Local SOCKS5 proxy server that accelerates Telegram Desktop by routing traffic through WebSocket connections to Telegram DCs

22 stars

Best use case

tg-ws-proxy-telegram-socks5 is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Local SOCKS5 proxy server that accelerates Telegram Desktop by routing traffic through WebSocket connections to Telegram DCs

Teams using tg-ws-proxy-telegram-socks5 should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/tg-ws-proxy-telegram-socks5/SKILL.md --create-dirs "https://raw.githubusercontent.com/Aradotso/trending-skills/main/skills/tg-ws-proxy-telegram-socks5/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/tg-ws-proxy-telegram-socks5/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How tg-ws-proxy-telegram-socks5 Compares

Feature / Agenttg-ws-proxy-telegram-socks5Standard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Local SOCKS5 proxy server that accelerates Telegram Desktop by routing traffic through WebSocket connections to Telegram DCs

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# TG WS Proxy

> Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection.

**TG WS Proxy** is a local SOCKS5 proxy server for Telegram Desktop that reroutes traffic through WebSocket (WSS) connections to Telegram's Data Centers, bypassing network-level blocking without external servers.

```
Telegram Desktop → SOCKS5 (127.0.0.1:1080) → TG WS Proxy → WSS → Telegram DC
```

---

## How It Works

1. Starts a local SOCKS5 proxy on `127.0.0.1:1080`
2. Intercepts connections to Telegram IP addresses
3. Extracts DC ID from MTProto obfuscation init packet
4. Opens a WebSocket (TLS) connection to the matching DC via Telegram domains
5. Falls back to direct TCP if WebSocket returns a 302 redirect

---

## Installation

### From Source (All Platforms)

```bash
git clone https://github.com/Flowseal/tg-ws-proxy.git
cd tg-ws-proxy
pip install -e .
```

### Run Console Proxy (No GUI)

```bash
tg-ws-proxy
```

### Run with Tray GUI

```bash
# Windows
tg-ws-proxy-tray-win

# macOS
tg-ws-proxy-tray-macos

# Linux
tg-ws-proxy-tray-linux
```

### Linux — AUR (Arch-based)

```bash
paru -S tg-ws-proxy-bin
# or
git clone https://aur.archlinux.org/tg-ws-proxy-bin.git
cd tg-ws-proxy-bin
makepkg -si
```

### Linux — systemd CLI

```bash
sudo systemctl start tg-ws-proxy-cli@1080
```

### Linux — .deb

Download `TgWsProxy_linux_amd64.deb` from releases and install:

```bash
sudo dpkg -i TgWsProxy_linux_amd64.deb
```

### Linux — binary

```bash
chmod +x TgWsProxy_linux_amd64
./TgWsProxy_linux_amd64
```

---

## CLI Reference

```bash
tg-ws-proxy [--port PORT] [--host HOST] [--dc-ip DC:IP ...] [-v]
```

| Argument | Default | Description |
|---|---|---|
| `--port` | `1080` | SOCKS5 proxy port |
| `--host` | `127.0.0.1` | SOCKS5 proxy bind host |
| `--dc-ip` | `2:149.154.167.220`, `4:149.154.167.220` | Target IP per DC ID (repeat for multiple) |
| `-v`, `--verbose` | off | Enable DEBUG logging |

### Examples

```bash
# Default startup
tg-ws-proxy

# Custom port
tg-ws-proxy --port 9050

# Specify multiple DCs with IPs
tg-ws-proxy --dc-ip 1:149.154.175.205 --dc-ip 2:149.154.167.220 --dc-ip 4:149.154.167.220

# Verbose debug logging
tg-ws-proxy -v

# Full custom example
tg-ws-proxy --host 0.0.0.0 --port 1080 --dc-ip 2:149.154.167.220 -v
```

---

## Configuration File

The tray application stores config in a platform-specific location:

- **Windows:** `%APPDATA%/TgWsProxy/config.json`
- **macOS:** `~/Library/Application Support/TgWsProxy/config.json`
- **Linux:** `~/.config/TgWsProxy/config.json` (or `$XDG_CONFIG_HOME/TgWsProxy/config.json`)

### config.json structure

```json
{
  "port": 1080,
  "dc_ip": [
    "2:149.154.167.220",
    "4:149.154.167.220"
  ],
  "verbose": false
}
```

---

## pyproject.toml Script Registration

CLI entry points are declared in `pyproject.toml`:

```toml
[project.scripts]
tg-ws-proxy = "proxy.tg_ws_proxy:main"
tg-ws-proxy-tray-win = "windows:main"
tg-ws-proxy-tray-macos = "macos:main"
tg-ws-proxy-tray-linux = "linux:main"
```

---

## Connecting Telegram Desktop

### Manual Setup

1. Open Telegram Desktop
2. Go to **Settings → Advanced → Connection type → Use custom proxy**
3. Click **Add Proxy** and set:
   - **Type:** SOCKS5
   - **Server:** `127.0.0.1`
   - **Port:** `1080`
   - **Username/Password:** leave empty
4. Click **Save** and enable the proxy

### Automatic (Tray GUI)

Right-click the tray icon → **"Открыть в Telegram"** — this opens a `tg://socks` deep link that auto-configures Telegram Desktop.

---

## Code Examples

### Launching the Proxy Programmatically

```python
from proxy.tg_ws_proxy import main
import threading

# Run proxy in background thread
proxy_thread = threading.Thread(target=main, daemon=True)
proxy_thread.start()
```

### Using the Proxy with Python Requests (via PySocks)

```bash
pip install requests[socks]
```

```python
import requests

proxies = {
    "http":  "socks5h://127.0.0.1:1080",
    "https": "socks5h://127.0.0.1:1080",
}

response = requests.get("https://api.telegram.org/botTOKEN/getMe", proxies=proxies)
print(response.json())
```

### Using with Telethon (MTProto client)

```python
from telethon import TelegramClient
from telethon.network.connection.tcpabridged import ConnectionTcpAbridged
import socks

client = TelegramClient(
    'session',
    api_id=int(os.environ["TG_API_ID"]),
    api_hash=os.environ["TG_API_HASH"],
    proxy=(socks.SOCKS5, '127.0.0.1', 1080)
)

async def main():
    await client.start()
    me = await client.get_me()
    print(me.username)

import asyncio
asyncio.run(main())
```

### Custom DC IP Mapping (Python)

```python
import subprocess

dc_map = {
    1: "149.154.175.205",
    2: "149.154.167.220",
    3: "149.154.175.100",
    4: "149.154.167.220",
    5: "91.108.56.130",
}

dc_args = []
for dc_id, ip in dc_map.items():
    dc_args += ["--dc-ip", f"{dc_id}:{ip}"]

subprocess.Popen(["tg-ws-proxy", "--port", "1080"] + dc_args)
```

---

## Building Binaries (PyInstaller)

```bash
# Windows
pyinstaller packaging/windows.spec

# macOS
pyinstaller packaging/macos.spec

# Linux
pyinstaller packaging/linux.spec
```

Builds are also produced automatically via GitHub Actions in `.github/workflows/build.yml`.

---

## Minimum OS Support

| Binary | Minimum Version |
|---|---|
| `TgWsProxy_windows.exe` | Windows 10+ |
| `TgWsProxy_windows_7_64bit.exe` | Windows 7 x64 |
| `TgWsProxy_windows_7_32bit.exe` | Windows 7 x32 |
| `TgWsProxy_macos_universal.dmg` (Intel) | macOS 10.15+ |
| `TgWsProxy_macos_universal.dmg` (Apple Silicon) | macOS 11.0+ |
| `TgWsProxy_linux_amd64` | Linux x86_64 + AppIndicator |

---

## Troubleshooting

### Telegram still not connecting

- Confirm the proxy is running: `tg-ws-proxy -v` and watch for connection logs
- Make sure Telegram Desktop is set to SOCKS5, not HTTP/MTProxy
- Try restarting the proxy from the tray menu (**Перезапустить прокси**)
- Check no firewall or other process is blocking port `1080`

### Port already in use

```bash
# Find what's using port 1080
lsof -i :1080        # macOS/Linux
netstat -ano | findstr :1080  # Windows

# Run on a different port
tg-ws-proxy --port 1081
```

Then update Telegram Desktop's proxy port to `1081`.

### Windows Defender false positive (Wacatac)

- Download the `win7` variant — functionally identical, lower detection rate
- Or temporarily disable Defender, download, add to exclusions, re-enable
- Verify the build on [VirusTotal](https://virustotal.com) using the file hash

### macOS "unverified developer" block

1. Open **System Settings → Privacy & Security**
2. Scroll down and click **Open Anyway** next to TG WS Proxy

### Linux tray icon not visible

AppIndicator is required. Install it:

```bash
# Ubuntu/Debian
sudo apt install gir1.2-appindicator3-0.1

# Fedora
sudo dnf install libappindicator-gtk3
```

### WebSocket not available — proxy falls back to TCP

This is expected behavior. If WS returns a 302 redirect, the proxy automatically uses direct TCP. No action needed; Telegram will still connect.

### Verbose debug logging

```bash
tg-ws-proxy -v
```

Or set `"verbose": true` in `config.json` for the tray app.

Related Skills

tavily-key-generator-proxy

22
from Aradotso/trending-skills

Auto batch-register Tavily API keys via browser automation and pool them behind a unified proxy gateway with web console

masterhttprelayvpn-proxy

22
from Aradotso/trending-skills

Domain-fronted HTTP/SOCKS5 proxy tunneling traffic through Google Apps Script with MITM TLS interception and DPI evasion

gooserelayvpn-socks5-tunnel

22
from Aradotso/trending-skills

Expert knowledge for building, configuring, and operating GooseRelayVPN — a SOCKS5 VPN that tunnels raw TCP through Google Apps Script to a VPS exit server using AES-256-GCM encryption and domain fronting.

freellmapi-proxy

22
from Aradotso/trending-skills

OpenAI-compatible proxy aggregating 14 free-tier LLM providers with automatic failover and per-key rate tracking.

freebuff2api-openai-proxy

22
from Aradotso/trending-skills

OpenAI-compatible proxy server for Freebuff that translates standard OpenAI API requests into Freebuff's backend format with multi-token rotation and Docker deployment.

deepclaude-proxy

22
from Aradotso/trending-skills

Use Claude Code's autonomous agent loop with DeepSeek V4 Pro, OpenRouter, or any Anthropic-compatible backend at up to 17x lower cost.

crabtrap-llm-proxy

22
from Aradotso/trending-skills

LLM-as-a-judge HTTP/HTTPS proxy that secures AI agents by intercepting and evaluating outbound requests against security policies before they reach external APIs.

cc-gateway-ai-proxy

22
from Aradotso/trending-skills

Deploy and configure CC Gateway, a reverse proxy that normalizes Claude Code device fingerprints and telemetry for privacy-preserving API proxying

```markdown

22
from Aradotso/trending-skills

---

zeroboot-vm-sandbox

22
from Aradotso/trending-skills

Sub-millisecond VM sandboxes for AI agents using copy-on-write KVM forking via Zeroboot

yourvpndead-vpn-detection

22
from Aradotso/trending-skills

Android app that detects VPN/proxy servers (VLESS/xray/sing-box) via local SOCKS5 vulnerability, exposing exit IPs and server configs without root

xata-postgres-platform

22
from Aradotso/trending-skills

Expert skill for Xata open-source cloud-native Postgres platform with copy-on-write branching, scale-to-zero, and Kubernetes deployment