# Karing

Karing is a cross-platform proxy client built on top of a modified [[sing-box]] core, with a Flutter UI that runs on iOS, Android, macOS (Intel + Apple Silicon), Windows, Linux, and tvOS. It ingests subscription formats from the whole circumvention ecosystem — Clash, V2ray/V2fly, sing-box, Shadowsocks, generic Sub URLs, GitHub-hosted subscriptions — then runs one unified routing rule set across all of them.

## What makes it different

Most GUI clients in this space are tied to one config format: v2rayN speaks v2ray, Clash Verge speaks Clash, Happ speaks VLESS subscriptions only (see [[happ-proxy]]). Karing aggregates across formats. You can have a Clash subscription from one provider, a sing-box subscription from another, and a Shadowsocks URL pasted in — Karing merges them and applies the same routing decision logic to all nodes.

The client also ships the core it uses: a Karing-team fork of sing-box at [KaringX/sing-box](https://github.com/KaringX/sing-box). This is the same "own-the-core" pattern as [[mihomo]] (which forked from Clash to maintain control over the routing engine) and is how the team ships features faster than upstream.

## Sync

Unusual for this category: Karing treats config portability as a product feature, not a user problem.

- **iCloud** on Apple platforms.
- **LAN sync** over the local network.
- **WebDAV** for self-hosted storage.
- **ZIP import/export** for manual transfer.

The practical effect: pair a Mac and an iPhone via iCloud, or a Linux desktop and an Android phone via WebDAV, and subscriptions + custom routing rules stay in sync. Most clients require re-entering subscription URLs on each device.

## Routing rules

Ships with default rule groups intended for users who don't know what a rule group is. The defaults draw from the team's own [karing-ruleset](https://github.com/KaringX/karing-ruleset/) repo, built-in GeoIP and GeoSite databases, and ACL files. Users who want control can build their own rule groups and node groups — same mental model as [[mihomo]]'s rule engine.

The beginner mode is where Karing differs from mihomo most visibly: mihomo is YAML-config-first with optional dashboards; Karing is GUI-first with the rule engine abstracted behind groups and toggles.

## Platform coverage

One of the widest distribution footprints in the space:

- iOS / tvOS App Store (search "karing vpn")
- Android (GitHub, APKPure, Amazon AppStore)
- macOS / Windows / Linux (GitHub releases, `brew install karing`)
- iOS/tvOS TestFlight for betas

The tvOS support is rare — most proxy clients don't ship Apple TV builds. Linux builds target glibc ≥ 2.38, so older distros need to build from source.

System requirements: Windows 10+ (64-bit), Android 8+, iOS 15+, macOS 12+, tvOS 17+.

## Tradeoffs

- **License is "Other"** (the GitHub classifier). Not a standard OSI license — read the repo's license text before redistribution.
- **One more layer on top of sing-box.** If you already run sing-box directly from a config file, Karing adds GUI overhead without giving you anything the core doesn't already do. Value is for users who want cross-platform UX and sync without hand-maintaining configs.
- **App Store version lags behind GitHub.** iOS deployments typically trail because Apple review cycles are slower than the project's release cadence.

## Repo

https://github.com/KaringX/karing — 11,187 stars, Dart/Flutter, created 2023-11. Homepage: [karing.app](https://karing.app). Sibling project [Clash Mi](https://clashmi.app/) is the same team's Clash-focused client.

## Related

- [[sing-box]] — the proxy core Karing wraps
- [[mihomo]] — same "own-the-core" pattern, Go-based, more CLI/YAML-oriented
- [[3x-ui]] — server-side counterpart (Karing is the client; 3x-ui runs the server)
- [[xkeen]] — transparent proxy on Keenetic routers; Karing is the per-device end of the same spectrum
- [[happ-proxy]] — closer audience overlap (mobile proxy client), narrower protocol support
- [[xray-tutorial]], [[vless-subscription-format]] — the VLESS side of what Karing consumes
