brainstate

mapleafgo/singcast · source

Snapshot 0 · 2026-11-04T12:47:26Z · Dart · GPL-3.0

Content fingerprint92f0b0c79c8f76dffe13dbd53696e379c93fd302e6edf1e3d4b405d71cd4808d

GitHub description at capture

Multi-platform proxy client powered by sing-box, with full Clash, sing-box & v2ray subscription support

README at capture

<div align="center">
  <img src="assets/logo.svg" alt="Singcast" width="120" height="120">
  <h1>Singcast</h1>
  <p><strong>Multi-platform proxy client powered by <a href="https://github.com/SagerNet/sing-box">sing-box</a>, with full Clash, sing-box &amp; v2ray subscription support (unified to sing-box config on import)</strong></p>
</div>

<p align="center">
  <a href="README.md">English</a> | <a href="README_zh.md">中文</a>
</p>

<p align="center">
  <a href="https://t.me/+xcHAK5RADfY4NmZl">
    <img src="https://img.shields.io/badge/Telegram-Group-blue?logo=telegram&logoColor=white" alt="Telegram">
  </a>
</p>

Singcast is an open-source multi-platform proxy client built with Flutter and powered by a customized [sing-box](https://github.com/SagerNet/sing-box) core. It fully supports Clash, sing-box and v2ray subscriptions — config files in yaml/yml/json/txt as well as v2ray base64/URI list subscriptions are all unified to sing-box config on import. Just import and go.

Available on **Windows**, **Linux**, **macOS**, and **Android**. **iOS** is not supported.

- **Desktop**: Core runs as an independent privileged process communicating via JSON-RPC (IPC), keeping the UI sandboxed and stable.
- **Android**: Core is loaded as a native library via FFI, integrated with Android VPN service.

- **TUN mode**: Transparent proxy with automatic route management — no manual system proxy setup needed.

> [Documentation](https://mapleafgo.github.io/singcast)

## Preview

![Home](./docs/images/home_page.png)

## Features

- Full support for Clash, sing-box and v2ray subscriptions and config files (yaml/yml/json/txt, unified to sing-box on import)
- System proxy and TUN mode (transparent proxy)
- Proxy node selection and latency testing
- Real-time traffic statistics
- Subscription management, import and update subscription links
- Log viewer with export
- System tray on desktop

## Usage

### Linux

Make sure to install the following dependencies before using

```bash
sudo apt-get install libayatana-appindicator3
```

### Download

[GitHub Releases](https://github.com/mapleafgo/singcast/releases/latest)

## Build

1. Install `Flutter v3.41+`

   > Follow the Flutter official documentation to set up the environment for your target platform. For example, Android development requires Android SDK.

2. Download core

   Download the core for your platform from [singcast-cli Releases](https://github.com/mapleafgo/singcast-cli/releases/latest) and place it at:

   ```shell
   # Desktop (IPC standalone process)
   windows/core/singcast-core.exe
   linux/core/singcast-core
   macos/Frameworks/singcast-core

   # Mobile (FFI native library)
    android/app/libs/libsingcast.aar
   ```

3. Build and run

   ```shell
   # Install dependencies
   flutter pub get
   # Generate code
   dart run build_runner build
   # Run
   flutter run -d linux
   ```

## FAQ

### Subscription fetch / update failed

If the subscription keeps loading or returns an error, the provider may be restricting certain User-Agent strings. Try changing the UA in **Settings → General → Subscription User-Agent** (e.g. `clash-verge/v2.0.0`, `clash-meta`), then update the subscription again.

## Tech Stack

- [sing-box](https://github.com/SagerNet/sing-box)
- [Flutter](https://flutter.dev)
- [signals_flutter](https://github.com/rodydavis/signals.dart)
- [go_router](https://pub.dev/packages/go_router)
- [window_manager](https://github.com/leanflutter/window_manager)
- [desktop_tray](https://pub.dev/packages/desktop_tray)
- [dart_ipc](https://pub.dev/packages/dart_ipc)
- [ffi](https://dart.dev/guides/libraries/c-interop)