[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-82742":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":15,"stars30d":15,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":16,"rankGlobal":10,"rankLanguage":10,"license":17,"archived":18,"fork":18,"defaultBranch":19,"hasWiki":18,"hasPages":18,"topics":20,"createdAt":10,"pushedAt":10,"updatedAt":37,"readmeContent":38,"aiSummary":39,"trendingCount":15,"starSnapshotCount":15,"syncStatus":40,"lastSyncTime":41,"discoverSource":42},82742,"KaproTUN","fafnirov\u002FKaproTUN","fafnirov","Desktop VPN\u002Fproxy client with split-routing — Xray-core (VLESS\u002FReality, VMess, Trojan, Shadowsocks, Hysteria2). Windows \u002F macOS \u002F Linux.","https:\u002F\u002Fkaprovpn.pro",null,"Python",17,1,9,0,0.9,"GNU General Public License v3.0",false,"main",[21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36],"anti-censorship","censorship-circumvention","hysteria2","proxy","pyside6","reality","shadowsocks","split-tunneling","trojan","tun2socks","vless","vmess","vpn","vpn-client","xray","xray-core","2026-06-12 02:04:27","# KaproVPN\n\n[![Release](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Ffafnirov\u002FKaproVPN?style=flat-square&color=f59e0b&label=latest)](https:\u002F\u002Fgithub.com\u002Ffafnirov\u002FKaproVPN\u002Freleases\u002Flatest)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Ffafnirov\u002FKaproVPN?style=flat-square&color=blue)](LICENSE)\n[![Python](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3.10%2B-blue?style=flat-square)](https:\u002F\u002Fwww.python.org\u002F)\n[![Build](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002Ffafnirov\u002FKaproVPN\u002Frelease.yml?style=flat-square&label=build)](https:\u002F\u002Fgithub.com\u002Ffafnirov\u002FKaproVPN\u002Factions\u002Fworkflows\u002Frelease.yml)\n\n[English](README.md) · [Русский](README.ru.md)\n\nCross-platform proxy client (Windows \u002F macOS \u002F Linux) with **split routing\nvia a customisable direct-list**, built on top of\n[Xray-core](https:\u002F\u002Fgithub.com\u002FXTLS\u002FXray-core).\nFree and open-source forever — GPL v3, no paid tier, no telemetry.\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"docs\u002Fscreenshots\u002Fmain-window.png\" alt=\"KaproVPN main window — dark theme, single-screen layout\" width=\"640\">\n\u003C\u002Fp>\n\n---\n\n### ⬇️ Download\n\nLatest stable release — pick the file for your OS:\n\n| OS | File | Notes |\n|----|------|-------|\n| **Windows 10 \u002F 11 (x64)** | [`KaproVPN-Setup.exe`](https:\u002F\u002Fgithub.com\u002Ffafnirov\u002FKaproVPN\u002Freleases\u002Flatest) | Per-user install, no admin needed |\n| **macOS (Apple Silicon)** | [`KaproVPN-macOS-arm64.dmg`](https:\u002F\u002Fgithub.com\u002Ffafnirov\u002FKaproVPN\u002Freleases\u002Flatest) | Drag into Applications |\n| **Linux (x64)** | [`KaproVPN-Linux-x64.AppImage`](https:\u002F\u002Fgithub.com\u002Ffafnirov\u002FKaproVPN\u002Freleases\u002Flatest) | `chmod +x` and run |\n\nTUN mode (tunnel every app system-wide, including Telegram \u002F Steam \u002F games)\nneeds admin\u002Froot rights. HTTP-proxy mode works without admin and tunnels\nbrowser traffic.\n\n#### ⚠️ Windows SmartScreen warning on first run\n\nWhen you run `KaproVPN-Setup.exe`, Windows Defender SmartScreen may say\n**\"Windows protected your PC\"** and refuse to launch. This happens because\nwe don't pay Microsoft $300\u002Fyear for an EV code-signing certificate —\nthis is a free OSS project, not a commercial one. To proceed:\n\n1. Click **\"More info\"** on the SmartScreen dialog\n2. Click **\"Run anyway\"**\n\nYou only do this once per release. macOS may show a similar\n**\"unidentified developer\"** prompt — right-click the `.dmg` → **Open** →\n**Open** to bypass (one-time).\n\n---\n\n## What it does\n\nGUI for proxy\u002FVPN connections (Trojan, VLESS with REALITY and XHTTP, VMess,\nShadowsocks, Hysteria2) with one extra trick: domains in a configurable\nlist **bypass the proxy** and connect directly through your real IP.\nEverything else routes through the proxy server.\n\n## Why\n\nWhen you connect through a foreign proxy, some services refuse to work\nbecause they geofence to a specific country (banks, government portals,\nmarketplaces). Switching the VPN off every time you need to use one is\nannoying. KaproVPN keeps the proxy on for the open Internet and lets\nthe sites in your direct list see your real address.\n\n## Features\n\n- 🔌 **All major share-URL formats** — `vless:\u002F\u002F` (incl. REALITY & XHTTP),\n  `trojan:\u002F\u002F`, `vmess:\u002F\u002F`, `ss:\u002F\u002F`, `hysteria2:\u002F\u002F`\n- 📥 **Subscription URL import** — paste a single URL, get all configs\n  from your provider. Background auto-refresh every 12 h (additive-only,\n  never deletes working configs).\n- 🛡 **Real firewall kill-switch** — if the proxy dies, Windows Firewall\n  blocks all non-`xray.exe` outbound. No silent leak of your real IP.\n- 🔁 **Auto-reconnect** — transparently retries up to 3 times with\n  backoff if Xray crashes mid-session.\n- 🔒 **Encrypted-on-disk configs** — Windows DPAPI (same mechanism Chrome\n  uses for saved passwords). Old plaintext configs auto-upgrade on first\n  launch.\n- 🌐 **Two connection modes** —\n  - **HTTP-proxy** (default, no admin) — browser + system-proxy-aware apps\n  - **TUN** (admin\u002Froot) — tunnels every app, including games and Telegram.\n    Uses bundled tun2socks + WinTUN driver.\n- ✏️ **Editable \"always direct\" domain list** — 108 sensible defaults\n  (banks, government portals, marketplaces, media).\n- 📡 **Tray quick-connect** — top-3 fastest configs by ping in the tray\n  menu, one click to switch.\n- 🌍 **EN \u002F RU localisation** — auto-detected from system locale,\n  switchable in Settings.\n- 📊 **Live traffic stats + per-config ping** in the UI.\n- 🔄 **In-app auto-update** — checks GitHub Releases, downloads, installs.\n\n## Privacy\n\nShort version: **we don't collect anything.** No analytics, no telemetry,\nno remote logging. Configs are encrypted on disk on Windows. Xray's\naccess-log is explicitly disabled in our generated config (no per-domain\nlog on your disk). The optional download mirror on `kaprovpn.pro\u002Ffiles`\nkeeps nginx access-logs for 7 days then deletes them; the GitHub\nfallback is always available.\n\nFull details in [SECURITY.md](SECURITY.md) including the responsible\ndisclosure address.\n\n## Requirements\n\n| OS | Minimum |\n|----|---------|\n| Windows | 10 \u002F 11 (x64) |\n| macOS | 12+ (Apple Silicon) |\n| Linux | glibc 2.31+ (Ubuntu 20.04+ and equivalents) |\n\nDisk: ~80 MB total (~57 MB app + ~25 MB for Xray + tun2socks + WinTUN\ndownloaded on first connect).\n\n## Install & run\n\n### Option 1 — Installer (recommended)\n\nDownload the right file for your OS from\n[Releases](https:\u002F\u002Fgithub.com\u002Ffafnirov\u002FKaproVPN\u002Freleases\u002Flatest) and run it.\n\n### Option 2 — From source (for development \u002F contributing)\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Ffafnirov\u002FKaproVPN.git\ncd KaproVPN\npip install -r requirements.txt\npython run.py\n```\n\nTo build your own installer locally:\n\n```bash\npip install -r requirements-build.txt\npyinstaller KaproVPN.spec          # → dist\u002FKaproVPN.exe (portable, embedded into installer)\npyinstaller KaproVPN-Setup.spec    # → dist\u002FKaproVPN-Setup.exe (Windows installer)\n```\n\nOn first launch, the app downloads the latest Xray-core release into\n`%LOCALAPPDATA%\\KaproVPN\\xray\\` (Windows) or `~\u002F.local\u002Fshare\u002FKaproVPN\u002F`\n(macOS \u002F Linux). Same paths for tun2socks + wintun.dll on Windows.\n\n## How it works\n\n1. You paste a share URL (e.g. `vless:\u002F\u002F…`) or a subscription URL.\n2. The app parses it and generates an Xray-core JSON config with split\n   routing rules:\n   - domains from your \"direct\" list → `freedom` outbound (your real IP)\n   - everything else → proxy outbound (the parsed URL)\n   - public DNS resolvers and port 53 → always direct (anti-DNS-leak)\n3. `xray.exe` starts as a subprocess and listens on `127.0.0.1:2080` (HTTP)\n   and `:2081` (SOCKS5).\n4. **HTTP mode**: the OS HTTP-proxy is pointed at port 2080.\n   **TUN mode**: tun2socks creates a virtual network adapter and forwards\n   every packet through `127.0.0.1:2081`, then xray routes by rule.\n5. If Xray dies unexpectedly, auto-reconnect retries. If the firewall\n   kill-switch is enabled, traffic stays blocked until reconnect or\n   explicit disconnect — no silent leak.\n\n## Project layout\n\n```\nkapro_vpn\u002F\n├── core\u002F\n│   ├── parser.py             # share-URL parsers (vless \u002F vmess \u002F trojan \u002F ss \u002F hy2)\n│   ├── xray_config.py        # generates Xray-core JSON with split routing + DNS-leak hardening\n│   ├── xray_installer.py     # downloads Xray-core from GitHub releases (with mirror fallback)\n│   ├── xray_process.py       # Xray subprocess + log rotation\n│   ├── tun2socks_installer.py\n│   ├── tun2socks_process.py\n│   ├── network_routes.py     # Windows route\u002FDNS manipulation for TUN mode\n│   ├── network_routes_unix.py # macOS\u002FLinux equivalent\n│   ├── admin.py              # UAC \u002F sudo helpers\n│   ├── system_proxy.py       # OS HTTP-proxy controller (3 platforms)\n│   ├── storage.py            # persistent JSON, transparently routed through DPAPI on Win\n│   ├── secrets_store.py      # Windows DPAPI wrapper (Chrome-style on-disk encryption)\n│   ├── killswitch.py         # Windows Firewall rules for the real kill-switch\n│   ├── controller.py         # connect\u002Fdisconnect orchestration + auto-reconnect\n│   ├── subscription.py       # subscription-URL import + 12 h background refresh\n│   ├── i18n.py               # EN\u002FRU translation tables\n│   └── paths.py\n├── gui\u002F\n│   ├── main_window.py\n│   ├── tray.py               # system tray with top-3 quick-connect\n│   ├── onboarding.py         # first-launch 3-card welcome\n│   ├── subscription_dialog.py\n│   ├── sites_dialog.py\n│   ├── configs_picker.py\n│   ├── widgets.py\n│   └── styles.py\n├── scripts\u002F\n│   └── smoke_test.py         # CI gate — imports + parser + xray-config + installer-flow\n├── data\u002F\n│   └── default_sites.json\n└── main.py\n\ninstaller\u002F                    # standalone PyInstaller bundle for KaproVPN-Setup.exe\n├── gui.py                    # Welcome \u002F Maintenance (Reinstall+Uninstall) \u002F Installing pages\n├── operations.py             # download + copy + shortcuts + Programs & Features\n├── paths.py\n└── main.py\n```\n\nUser data (saved configs, edited site list, settings, logs) lives in:\n- Windows: `%LOCALAPPDATA%\\KaproVPN\\`\n- macOS: `~\u002FLibrary\u002FApplication Support\u002FKaproVPN\u002F`\n- Linux: `~\u002F.local\u002Fshare\u002FKaproVPN\u002F`\n\n## Contributing\n\nPRs welcome. The most useful directions right now:\n\n- **Native code-signing on macOS** — if you have a paid Apple Developer\n  account, a CONTRIBUTING patch that wires up codesigning + notarytool in\n  the GitHub Actions build would let macOS users skip the\n  \"unidentified developer\" Gatekeeper prompt.\n- **Android port** — there's a skeleton in `android\u002F` (VPNService + TUN +\n  config bridge to libv2ray.aar), needs UI polish and connect flow.\n- **IPv6 in TUN mode** — currently IPv4-only; IPv6 traffic can leak\n  outside the tunnel.\n- **More languages** — `kapro_vpn\u002Fcore\u002Fi18n.py` is dict-based, easy to add.\n- **Linux Wayland support** — works on X11\u002FXWayland; native Wayland needs\n  PySide6 platform-plugin tweaks.\n\n## Roadmap\n\n- Crash-report opt-in (user-initiated log upload, no auto-collect)\n- Public-IP\u002Fcountry indicator after connect (so you see proof the tunnel\n  is up)\n- macOS Keychain \u002F Linux libsecret equivalent of DPAPI for configs\n\n## License\n\n[GNU GPL v3](LICENSE). Any derivative work must also be GPL v3 — this\nis deliberate so the project cannot be quietly absorbed into a closed-\nsource product.\n","KaproTUN 是一个跨平台的桌面 VPN\u002F代理客户端，支持 Windows、macOS 和 Linux 系统。它基于 Xray-core 构建，支持多种协议如 VLESS\u002FReality、VMess、Trojan、Shadowsocks 和 Hysteria2。核心功能包括通过自定义直接列表实现的分割路由，允许用户指定某些域名绕过代理直接访问，而其他流量则通过代理服务器。此外，它还提供了 TUN 模式和 HTTP 代理模式，分别适用于需要系统级隧道的应用程序和仅需浏览器流量代理的场景。KaproTUN 适合需要在使用外国代理时仍然能够无障碍访问本地服务（如银行网站、政府门户等）的用户。",2,"2026-06-11 04:09:05","CREATED_QUERY"]