[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-93327":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":16,"stars30d":16,"stars90d":15,"forks30d":15,"starsTrendScore":17,"compositeScore":18,"rankGlobal":9,"rankLanguage":9,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":20,"topics":23,"createdAt":9,"pushedAt":9,"updatedAt":32,"readmeContent":33,"aiSummary":34,"trendingCount":15,"starSnapshotCount":15,"syncStatus":35,"lastSyncTime":36,"discoverSource":37},93327,"Aether-GUI","MatinSenPai\u002FAether-GUI","MatinSenPai","One-click desktop GUI for the Aether censorship-circumvention tunnel — Tauri v2, React 19, Rust",null,"TypeScript",635,29,144,3,0,360,51,78.43,"GNU Affero General Public License v3.0",false,"main",true,[24,25,26,27,28,29,30,31],"anti-censorship","censorship-circumvention","desktop-app","proxy","react","rust","tauri","typescript","2026-07-22 04:02:08","# Aether-GUI\n\n[![Release](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002FMatinSenPai\u002FAether-GUI?sort=semver)](https:\u002F\u002Fgithub.com\u002FMatinSenPai\u002FAether-GUI\u002Freleases)\n[![License: AGPL v3](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002FMatinSenPai\u002FAether-GUI)](LICENSE)\n![Platform](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fplatform-Windows-0078D6)\n![Tauri](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTauri-2-24C8DB?logo=tauri&logoColor=white)\n![React](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FReact-19-61DAFB?logo=react&logoColor=black)\n![Rust](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FRust-stable-000000?logo=rust&logoColor=white)\n\n**English** · [فارسی](README_fa.md)\n\nA one-click desktop GUI for [**Aether**](https:\u002F\u002Fgithub.com\u002FCluvexStudio\u002FAether), a censorship-circumvention tunnel built for heavily restricted networks. Aether itself is a terminal tool: it discovers a working route out, establishes an encrypted tunnel, and exposes a local SOCKS5 proxy. Aether-GUI wraps that terminal tool in a small, animated desktop app so you don't have to touch a command line to use it — press Connect, and everything else (identity provisioning, route discovery, prompt answering) happens automatically in the background.\n\nThis project does not reimplement any of Aether's tunneling logic. It drives the real `aether` binary in a pseudo-terminal, answers its interactive setup prompts on your behalf, and watches its output to tell you what's happening. All the actual censorship-circumvention work — MASQUE\u002FQUIC obfuscation, WireGuard, route probing — is [Aether's](https:\u002F\u002Fgithub.com\u002FCluvexStudio\u002FAether), not this repo's.\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"docs\u002Fscreenshot-idle.png\" alt=\"Aether-GUI — one-click connect screen with an animated 3D backdrop\" width=\"380\">\n\u003C\u002Fp>\n\n## Features\n\n- **Auto mode** — the default screen is just a single button. No configuration is required; it connects using your last-successful settings (or sensible defaults on first run).\n- **Advanced panel** — for when you want control, a collapsible panel exposes the three real options Aether's setup prompts support:\n  - **Protocol**: MASQUE (HTTP\u002F3-QUIC, disguises traffic as normal HTTPS), WireGuard (lighter, faster), or WARP-in-WARP\u002Fgool (two nested WireGuard tunnels for extra security at a speed cost)\n  - **Scan Mode**: Turbo, Balanced, Thorough, or Stealth — trading route-discovery speed against how much probe traffic it generates\n  - **IP Version**: IPv4, IPv6, or both\n  \n  Each option has an explanation on hover.\n- **Live progress** — while Aether searches for a working route, the GUI shows real elapsed time and, once Aether reports its own scan budget, an actual percentage and progress bar — not just a spinner.\n- **Automatic reconnect** — if the tunnel drops unexpectedly mid-session (observed occasionally with WARP-in-WARP, but handled the same way for every protocol), the GUI retries automatically with backoff, shown as a visible \"Reconnecting… (attempt N of 3)\" rather than silently dying or dumping you back to a bare error. A user-requested disconnect is never retried.\n\n## Installing\n\nGrab the latest installer from the [Releases page](https:\u002F\u002Fgithub.com\u002FMatinSenPai\u002FAether-GUI\u002Freleases):\n\n- `Aether-GUI_x.y.z_x64-setup.exe` — standard installer (recommended)\n- `Aether-GUI_x.y.z_x64_en-US.msi` — MSI package, for scripted or enterprise installs\n\nWindows x64 only for now — see [Building from source](#building-from-source) for other platforms.\n\n## Building from source\n\n1. **Prerequisites**\n   - [Node.js](https:\u002F\u002Fnodejs.org\u002F) and npm\n   - [Rust](https:\u002F\u002Frustup.rs\u002F) (stable toolchain)\n   - Tauri's platform prerequisites — see the [Tauri v2 prerequisites guide](https:\u002F\u002Fv2.tauri.app\u002Fstart\u002Fprerequisites\u002F) (on Windows this is the MSVC C++ Build Tools + WebView2 Runtime, both usually already present; macOS needs Xcode Command Line Tools; Linux needs `webkit2gtk` and friends)\n\n2. **Install frontend dependencies**\n\n   ```sh\n   npm install\n   ```\n\n3. **Fetch the Aether binary**\n\n   Aether-GUI bundles the real `aether` binary from [CluvexStudio\u002FAether releases](https:\u002F\u002Fgithub.com\u002FCluvexStudio\u002FAether\u002Freleases) rather than building it — this repo only ships the GUI. Fetch and checksum-verify it for your platform:\n\n   ```sh\n   .\u002Fsrc-tauri\u002Fbinaries\u002Ffetch-aether.sh\n   ```\n\n   This script covers Linux and macOS directly. On Windows, download the matching `aether-windows-*.zip` from the [Aether releases page](https:\u002F\u002Fgithub.com\u002FCluvexStudio\u002FAether\u002Freleases) yourself, verify it against the published `SHA256SUMS.txt`, and extract `aether.exe` into `src-tauri\u002Fbinaries\u002F`.\n\n4. **Run in development mode**\n\n   ```sh\n   npm run tauri dev\n   ```\n\n5. **Build a release installer**\n\n   ```sh\n   npm run tauri build\n   ```\n\n   Installers land under `src-tauri\u002Ftarget\u002Frelease\u002Fbundle\u002F` (NSIS `.exe` and `.msi` on Windows; `.dmg`\u002F`.app` on macOS; `.deb`\u002F`.AppImage`\u002F`.rpm` on Linux — cross-platform bundles must each be built on their own OS, or via CI).\n\n## How it works\n\n- **Frontend**: React 19 + Tailwind v4, state managed with Zustand, animated with [Motion](https:\u002F\u002Fmotion.dev\u002F) — all talking to the Rust backend over Tauri's IPC. Deliberately lightweight: the ambient background is two compositor-only CSS gradient orbs, and every looping animation freezes while the window is unfocused, so the app costs next to nothing sitting in the background.\n- **Backend**: Rust, using [`portable-pty`](https:\u002F\u002Fdocs.rs\u002Fportable-pty) to spawn the real `aether` binary (v1.1.1) in a genuine pseudo-terminal. Your chosen profile — protocol, scan mode, IP version, quick reconnect — is passed as CLI flags up front, so Aether's interactive prompts normally never appear; a background thread still watches the output and can answer any prompt that does, while forwarding every line live to the GUI's log panel.\n- **Ground truth for \"connected\"**: the GUI doesn't trust Aether's log wording alone (that's fragile across releases) — it treats a successful TCP connection to the local SOCKS5 port (`127.0.0.1:1819`) as the actual proof the tunnel is up.\n- **State machine**: `Idle → Launching → Connecting → Connected`, with `Reconnecting` and `Error` as the two ways a connection attempt can end up needing your attention — `Reconnecting` retries automatically (with backoff, capped at 3 attempts), `Error` is the final word once retries are exhausted or something isn't retriable (e.g. the binary itself is missing).\n\n## About Aether\n\n[Aether](https:\u002F\u002Fgithub.com\u002FCluvexStudio\u002FAether) is the actual censorship-circumvention engine this app wraps — a standalone terminal tool that discovers reachable routes and establishes the tunnel, independent of any GUI. If you'd rather use it directly from a terminal, or want to understand exactly what it's doing under the hood, that's the repo to read. Aether-GUI exists purely to make that tool one click away for people who don't want to live in a terminal.\n\n## License\n\n[GNU Affero General Public License v3.0](LICENSE).\n","Aether-GUI 是一款为 Aether 抗审查隧道工具提供的单击式桌面图形界面应用。它基于 Tauri 2、React 19 和 Rust 构建，通过自动化交互方式驱动原生 Aether 命令行程序，实现免命令行的 SOCKS5 代理连接：自动处理身份配置、路由探测、协议选择（MASQUE\u002FQUIC、WireGuard、WARP-in-WARP）及扫描模式切换，并提供实时进度反馈与断线自动重连。适用于网络审查严格地区的技术非专业用户，尤其适合需快速、稳定建立加密隧道但不熟悉终端操作的场景。",2,"2026-07-16 02:30:07","CREATED_QUERY"]