{"id":51148997,"url":"https://github.com/radiumcn/skylark","last_synced_at":"2026-06-26T05:00:16.136Z","repository":{"id":367028738,"uuid":"1277729174","full_name":"radiumCN/skylark","owner":"radiumCN","description":"Skylark（云雀）— 基于 sing-box 的跨平台 GUI 代理客户端，支持 Windows / macOS","archived":false,"fork":false,"pushed_at":"2026-06-25T10:12:05.000Z","size":6222,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-25T10:21:16.794Z","etag":null,"topics":["clash","macos","proxy","rust","sing-box","tauri","tun","vpn","vue","windows"],"latest_commit_sha":null,"homepage":"https://github.com/radiumCN/skylark/releases","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/radiumCN.png","metadata":{"files":{"readme":"README.en.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-23T06:24:52.000Z","updated_at":"2026-06-25T10:12:10.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/radiumCN/skylark","commit_stats":null,"previous_names":["radiumcn/sing-box-desktop","radiumcn/skylark"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/radiumCN/skylark","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radiumCN%2Fskylark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radiumCN%2Fskylark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radiumCN%2Fskylark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radiumCN%2Fskylark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/radiumCN","download_url":"https://codeload.github.com/radiumCN/skylark/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/radiumCN%2Fskylark/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34803678,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-26T02:00:06.560Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clash","macos","proxy","rust","sing-box","tauri","tun","vpn","vue","windows"],"created_at":"2026-06-26T05:00:15.239Z","updated_at":"2026-06-26T05:00:16.053Z","avatar_url":"https://github.com/radiumCN.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Skylark\n\nA cross-platform (Windows / macOS) GUI proxy client powered by the [sing-box](https://github.com/SagerNet/sing-box) core, built with Tauri v2 + Vue 3, featuring a native title bar and a frosted-glass UI.\n\n\u003e [中文](./README.md) | English\n\n## Features\n\n- ✅ **Subscription management** — Clash YAML / V2Ray Base64 / SIP008 / single-node links, with auto-update\n- ✅ **Node management** — grouped display, one-click latency / speed test, sort by latency\n- ✅ **Dynamic auto-select** — continuously picks the fastest node via URLTest, with \"all nodes\" and \"per-subscription\" groups; test URL / interval / tolerance are configurable in settings; the dashboard and tray show the concrete node currently in use\n- ✅ **Minimal proxy control** — the dashboard exposes only two mutually-exclusive switches: **System Proxy** and **TUN Mode**; turning either on starts the proxy. Rule / Global / Direct modes supported\n- ✅ **Realtime dashboard** — up/down speed chart, uptime, memory usage\n- ✅ **Traffic statistics** — cumulative upload / download since the service started (sourced from the core, so it persists across page navigation and resets automatically on restart)\n- ✅ **Connections viewer** — live active-connections list with rules, proxy chains, and up/down bytes (Clash API compatible)\n- ✅ **Log viewer** — realtime sing-box logs with level filtering\n- ✅ **Routing rule editor** — visually edit routing rules (domain / GeoSite / GeoIP / IP / port / process)\n- ✅ **System tray** — close-to-tray, quick menu (mutually-exclusive System Proxy / TUN switches, status, restore main window)\n- ✅ **TUN mode** — system-wide traffic capture; on Windows includes a UAC elevation prompt and automatic WinTun driver download\n- ✅ **Auto-start / restore on launch** — launch on login and optionally restore the previous proxy state on next start\n- ✅ **Core updates** — check / one-click download of the sing-box core with progress; periodic checks after launch with a sidebar red-dot indicator\n- ✅ **Theme** — follow system / light / dark\n\n## Tech Stack\n\n| Layer | Technology |\n|-------|-----------|\n| Desktop framework | Tauri v2 (Rust) |\n| Frontend | Vue 3 + TypeScript |\n| Build | Vite 6 + Tailwind CSS v4 |\n| Routing | Vue Router 4 |\n| State | Pinia |\n| Charts | Chart.js + vue-chartjs |\n| UI | Native title bar + Fluent / frosted-glass style, light \u0026 dark themes |\n\n## Requirements\n\n- Node.js \u003e= 18\n- Rust \u003e= 1.88 (installed via rustup)\n- OS: Windows 10/11 x64 or macOS 11+\n- [sing-box binary](https://github.com/SagerNet/sing-box/releases) — place it under `src-tauri/binaries/`:\n  - Windows: `src-tauri/binaries/sing-box.exe`\n  - macOS / Linux: `src-tauri/binaries/sing-box`\n  - Note: a core downloaded via the in-app \"Core update\" feature is stored in the user data directory and takes priority over the bundled one.\n\n## Quick Start\n\n```bash\n# 1. Clone the repository\ngit clone https://github.com/radiumCN/skylark.git\ncd skylark\n\n# 2. Install frontend dependencies\nnpm install\n\n# 3. Download the sing-box binary\n# Get the build for your platform from\n# https://github.com/SagerNet/sing-box/releases\n# Windows -\u003e src-tauri/binaries/sing-box.exe\n# macOS   -\u003e src-tauri/binaries/sing-box\n\n# 4. Run in development mode\nnpm run tauri dev\n\n# 5. Build a release\nnpm run tauri build\n```\n\n## Project Structure\n\n```\nskylark/\n├── src/                      # Vue 3 frontend\n│   ├── App.vue               # Root component (sidebar + content layout)\n│   ├── main.ts               # Entry point\n│   ├── router/index.ts       # Routes\n│   ├── stores/app.ts         # Pinia store (global state / traffic monitor poller)\n│   ├── styles/main.css       # Global styles (Tailwind + custom variables)\n│   ├── components/\n│   │   └── Sidebar.vue       # Side navigation + status footer\n│   └── views/\n│       ├── Home.vue          # Dashboard (switches, mode, traffic, chart)\n│       ├── Subscriptions.vue # Subscription management\n│       ├── Nodes.vue         # Node list / auto-select\n│       ├── Connections.vue   # Active connections\n│       ├── Logs.vue          # Runtime logs\n│       ├── Rules.vue         # Routing rule editor\n│       └── Settings.vue      # Settings\n├── src-tauri/                # Tauri Rust backend\n│   └── src/\n│       ├── lib.rs            # App entry (tray, window events, command registry)\n│       ├── commands.rs       # IPC commands (frontend ↔ backend)\n│       ├── singbox.rs        # sing-box process lifecycle\n│       ├── subscription.rs   # Subscription parsing \u0026 sing-box config generation\n│       ├── config.rs         # Config persistence\n│       ├── proxy.rs          # System proxy (Windows registry, etc.)\n│       ├── tun.rs            # TUN mode / WinTun driver handling\n│       ├── rules.rs          # Routing rule model\n│       ├── updater.rs        # sing-box core download / update\n│       ├── auto_update.rs    # Periodic update checks after launch\n│       └── types.rs          # Shared type definitions\n└── package.json\n```\n\n## Supported Subscription Formats\n\n| Format | Description |\n|--------|-------------|\n| Clash YAML | YAML with a `proxies:` field; supports ss/vmess/vless/trojan/hysteria2 |\n| V2Ray Base64 | Base64-encoded list of node links |\n| Single-node link | `vmess://` `vless://` `ss://` `trojan://` `hysteria2://` `hy2://` |\n| SIP008 | Shadowsocks standard JSON subscription format |\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fradiumcn%2Fskylark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fradiumcn%2Fskylark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fradiumcn%2Fskylark/lists"}