clash-kit 1.0.7 → 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -38,22 +38,7 @@ clash init
38
38
  ck init
39
39
  ```
40
40
 
41
- ### 3. 启动服务
42
-
43
- 启动 Clash 核心服务(建议在一个单独的终端窗口运行):
44
-
45
- ```bash
46
- # 启动 Clash 代理服务
47
- ck start # 或者 ck on
48
-
49
- # 启动并自动开启系统代理
50
- ck start -s
51
-
52
- # 关闭服务并关闭系统代理
53
- ck stop # 或者 ck off
54
- ```
55
-
56
- ### 4. 添加订阅
41
+ ### 3. 添加订阅
57
42
 
58
43
  ```bash
59
44
  # 交互式管理订阅(添加、切换、删除等)【推荐使用这种方式来管理订阅】
@@ -66,6 +51,23 @@ ck sub -l
66
51
  ck sub -a "https://example.com/subscribe?token=xxx" -n "abcName"
67
52
  ```
68
53
 
54
+ ### 4. 启动服务
55
+
56
+ 启动 Clash 核心服务(建议在一个单独的终端窗口运行):
57
+
58
+ ```bash
59
+ # 启动 Clash 代理服务
60
+ ck on # 或者 ck start
61
+
62
+ # 启动并自动开启系统代理
63
+ ck on -s
64
+ # 启动并自动开启 TUN 模式(全局代理, 需要 sudo 权限)
65
+ ck on -t
66
+
67
+ # 关闭服务并关闭系统代理
68
+ ck off # 或者 ck stop
69
+ ```
70
+
69
71
  ### 4. 节点切换(自动测速)
70
72
 
71
73
  进入交互式界面,自动对当前节点组进行并发测速,并展示带有即时延迟数据的节点列表供选择。
@@ -83,10 +85,10 @@ ck node
83
85
 
84
86
  ```bash
85
87
  # 查看状态
86
- ck status
88
+ ck info # 或者 ck status, ck view
87
89
 
88
90
  # 节点并发测速 (仅测速不切换,支持别名: test, ls, t)
89
- ck list
91
+ ck list # 或者 ck test, ck ls
90
92
 
91
93
  # 设置系统代理
92
94
  ck sys on
@@ -99,20 +101,20 @@ ck tun off # 关闭
99
101
 
100
102
  ## 命令详解
101
103
 
102
- | 命令 (别名) | 说明 | 示例 |
103
- | ----------------------------- | -------------------------- | --------------------------------------- |
104
- | `ck init` | 初始化内核及权限 | `ck init` |
105
- | `ck start` (`on`) | 启动 Clash 服务 | `ck on` `ck on -s` (启动并设置系统代理) |
106
- | `ck stop` (`off`) | 停止服务并关闭代理 | `ck off` |
107
- | `ck status` (`info`, `view`) | 查看运行状态及当前节点延迟 | `ck status` |
108
- | `ck sysproxy` (`sys`) | 设置系统代理 | `ck sys on` / `ck sys off` |
109
- | `ck tun` | 设置 TUN 模式 (需要 sudo) | `ck tun on` |
110
- | `ck sub` | 管理订阅(交互式)【推荐】 | `ck sub` |
111
- | `ck sub -l` | 列出所有订阅 | `ck sub -l` |
112
- | `ck sub -a <url>` | 添加订阅 | `ck sub -a "http..." -n "pro"` |
113
- | `ck sub -u <name>` | 切换订阅 | `ck sub -u "pro"` |
114
- | `ck use` (`node`, `switch`) | 切换节点 (自动测速) | `ck use` / `ck node` |
115
- | `ck list` (`ls`, `test`, `t`) | 节点测速列表 (不切换) | `ck list` / `ck test` |
104
+ | 命令 (别名) | 说明 | 示例 |
105
+ | ----------------------------- | -------------------------- | ------------------------------------------------------------------------ |
106
+ | `ck init` | 初始化内核及权限 | `ck init` |
107
+ | `ck on` (`start`) | 启动 Clash 服务 | `ck on` `ck on -s` (启动并设置系统代理) `ck on -t` (启动并开启 TUN 模式) |
108
+ | `ck off` (`stop`) | 停止服务并关闭代理 | `ck off` |
109
+ | `ck info` (`status`, `view`) | 查看运行状态及当前节点延迟 | `ck info` / `ck status` / `ck view` |
110
+ | `ck sysproxy` (`sys`) | 设置系统代理 | `ck sys on` / `ck sys off` |
111
+ | `ck tun` | 设置 TUN 模式 (需要 sudo) | `ck tun on` |
112
+ | `ck sub` | 管理订阅(交互式)【推荐】 | `ck sub` |
113
+ | `ck sub -l` | 列出所有订阅 | `ck sub -l` |
114
+ | `ck sub -a <url>` | 添加订阅 | `ck sub -a "http..." -n "pro"` |
115
+ | `ck sub -u <name>` | 切换订阅 | `ck sub -u "pro"` |
116
+ | `ck use` (`node`, `switch`) | 切换节点 (自动测速) | `ck use` / `ck node` |
117
+ | `ck list` (`ls`, `test`, `t`) | 节点测速列表 (不切换) | `ck list` / `ck test` |
116
118
 
117
119
  ## License
118
120
 
package/bin/index.js CHANGED
@@ -28,14 +28,15 @@ program
28
28
 
29
29
  // 启动 clash 服务
30
30
  program
31
- .command('start')
32
- .alias('on')
33
- .description('启动 Clash 服务')
31
+ .command('on')
32
+ .alias('start')
33
+ .description('启动 Clash 服务, -s 自动开启系统代理, -t 自动开启 TUN 模式(全局代理)')
34
34
  .option('-s, --sysproxy', '启动后自动开启系统代理')
35
+ .option('-t, --tun', '启动后自动开启 TUN 模式')
35
36
  .action(start)
36
37
 
37
38
  // 停止 clash 服务
38
- program.command('stop').alias('off').description('停止 Clash 服务').action(stop)
39
+ program.command('off').alias('stop').description('停止 Clash 服务').action(stop)
39
40
 
40
41
  // 设置系统代理
41
42
  program
@@ -49,7 +50,7 @@ program
49
50
  program.command('tun').description('设置 TUN 模式 (可能需要提权)').argument('[action]', 'on 或 off').action(setTun)
50
51
 
51
52
  // 查看 clash 状态
52
- program.command('status').alias('st').alias('view').alias('info').description('查看 Clash 运行状态').action(status)
53
+ program.command('info').alias('status').alias('view').description('查看 Clash 运行状态').action(status)
53
54
 
54
55
  // 管理订阅
55
56
  program
@@ -1,12 +1,14 @@
1
1
  import * as sysproxy from '../sysproxy.js'
2
2
  import { main as startClashService } from '../../index.js'
3
+ import { setTun } from './tun.js'
3
4
 
4
5
  export async function start(options) {
5
6
  await startClashService()
6
7
 
8
+ const sleep = ms => new Promise(resolve => setTimeout(resolve, ms))
9
+
7
10
  if (options.sysproxy) {
8
11
  console.log('正在等待 Clash API 就绪以设置系统代理...')
9
- const sleep = ms => new Promise(resolve => setTimeout(resolve, ms))
10
12
 
11
13
  // 尝试 5 次,每次间隔 1 秒
12
14
  for (let i = 0; i < 5; i++) {
@@ -19,4 +21,10 @@ export async function start(options) {
19
21
  }
20
22
  }
21
23
  }
24
+
25
+ if (options.tun) {
26
+ // 稍微延迟一下,确保服务可能有响应
27
+ await sleep(1000)
28
+ await setTun('on')
29
+ }
22
30
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clash-kit",
3
- "version": "1.0.7",
3
+ "version": "1.0.9",
4
4
  "type": "module",
5
5
  "description": "A command-line interface for managing Clash configurations, subscriptions, and proxies.",
6
6
  "bin": {