diff --git a/.github/workflows/alpha.yml b/.github/workflows/alpha.yml
new file mode 100644
index 0000000000000000000000000000000000000000..a31ca54d63b1e27a9041b43d142d87d97d2611a7
--- /dev/null
+++ b/.github/workflows/alpha.yml
@@ -0,0 +1,100 @@
+name: Release CI
+
+on:
+  push:
+    branches: [alpha]
+  pull_request:
+    branches: [alpha]
+
+env:
+  CARGO_INCREMENTAL: 0
+  RUST_BACKTRACE: short
+
+jobs:
+  release:
+    strategy:
+      matrix:
+        os: [windows-latest, ubuntu-latest, macos-latest]
+    runs-on: ${{ matrix.os }}
+    if: startsWith(github.repository, 'zzzgydi')
+    steps:
+      - name: Checkout repository
+        uses: actions/checkout@v2
+
+      - name: Install Rust
+        uses: actions-rs/toolchain@v1
+        with:
+          toolchain: stable
+          profile: minimal
+          override: true
+
+      - name: Rust Cache
+        uses: Swatinem/rust-cache@ce325b60658c1b38465c06cc965b79baf32c1e72
+
+      - name: Install Node
+        uses: actions/setup-node@v1
+        with:
+          node-version: 14
+
+      - name: Install Dependencies (ubuntu only)
+        if: matrix.os == 'ubuntu-latest'
+        run: |
+          sudo apt-get update
+          sudo apt-get install -y libwebkit2gtk-4.0-dev build-essential curl wget libssl-dev libgtk-3-dev libappindicator3-dev librsvg2-dev libayatana-appindicator3-dev
+
+      - name: Get yarn cache dir path
+        id: yarn-cache-dir-path
+        run: echo "::set-output name=dir::$(yarn cache dir)"
+
+      - name: Yarn Cache
+        uses: actions/cache@v2
+        id: yarn-cache
+        with:
+          path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
+          key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
+          restore-keys: |
+            ${{ runner.os }}-yarn-
+
+      - name: Yarn install and check
+        run: |
+          yarn install --network-timeout 1000000
+          yarn run check
+
+      # - name: Tauri build
+      #   uses: tauri-apps/tauri-action@v0
+      #   # enable cache even though failed
+      #   continue-on-error: true
+      #   env:
+      #     GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+      #     TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
+      #     TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
+      #   with:
+      #     tagName: alpha
+      #     releaseName: "Clash Verge Alpha"
+      #     releaseBody: "Alpha Version"
+      #     releaseDraft: false
+      #     prerelease: true
+
+      # - name: Green zip bundle
+      #   if: matrix.os == 'windows-latest'
+      #   run: |
+      #     yarn run portable
+      #   env:
+      #     GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+      - name: Tauri build Meta
+        uses: tauri-apps/tauri-action@v0
+        # enable cache even though failed
+        # continue-on-error: true
+        env:
+          VITE_MULTI_CORE: 1
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+          TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
+          TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
+        with:
+          tagName: alpha
+          tauriScript: "yarn build:meta"
+          releaseName: "Clash Verge Alpha"
+          releaseBody: "Alpha Version"
+          releaseDraft: false
+          prerelease: true
diff --git a/package.json b/package.json
index e670c94710d92cf25d825b423fa59cc2ea2db50c..e2b7092e70af9acca76ef69019bcad92b66451f7 100644
--- a/package.json
+++ b/package.json
@@ -7,6 +7,7 @@
     "dev:diff": "tauri dev -f verge-dev -c src-tauri/tauri.diff.json",
     "dev:core": "cross-env VITE_MULTI_CORE=1 yarn dev:diff",
     "build": "tauri build",
+    "build:meta": "cross-env VITE_MULTI_CORE=1 tauri build -c src-tauri/tauri.meta.json",
     "tauri": "tauri",
     "web:dev": "vite",
     "web:build": "tsc && vite build",
diff --git a/src-tauri/tauri.meta.json b/src-tauri/tauri.meta.json
new file mode 100644
index 0000000000000000000000000000000000000000..9f4bb77979796ce1759622a37a0071fcf61c1490
--- /dev/null
+++ b/src-tauri/tauri.meta.json
@@ -0,0 +1,7 @@
+{
+  "tauri": {
+    "bundle": {
+      "externalBin": ["sidecar/clash", "sidecar/clash-meta"]
+    }
+  }
+}