用途:该技能用于从自然语言请求出发,操作运行中的 Clash / mihomo 代理,例如询问当前节点、切换节点、查看模式、开启 TUN、重载配置、排查代理不工作等,无需重新发现控制器细节或手写 curl。
主要能力:核心依赖 external-controller REST API,脚本 clashes_api.py 封装读操作 doctor、status、config、groups、proxies、rules、delay、group-delay、connections、egress,以及写操作 switch、mode、tun、allow-lan、reload、connections close,写操作均支持 --dry-run 预览。另有 clash_sysproxy.sh 用于在客户端没有开关时切换操作系统系统代理。
使用方式:在本技能目录下运行 python3 scripts/clash_api.py doctor 发现控制器并诊断,再用 status 查看节点、模式、TUN、端口与分组;分组切换前先用 delay 测延迟,再用 switch 校验成员后切换。控制器解析顺序为命令行参数、环境变量、可选 Television hook、本地配置文件、探测 127.0.0.1:9090 与 9097。系统代理可用 bash scripts/clash_sysproxy.sh detect|on host:port --yes|off --yes。
适用场景:Clash、mihomo、Clash Verge (Rev)、ClashX 等客户端的运行时控制与故障诊断,以及 headless/Ubuntu 环境下缺少系统代理开关的情况。
限制:不适用于订阅编写与规则发布、节点选购与订阅管理、Mixin/Merge 配置修改;控制器地址不固定,不能假设是 9090,令牌不应出现在命令参数中;TUN 需要提权核心,系统代理是操作系统设置而非 API 概念;group-delay、/providers、/restart、/memory 仅 mihomo 支持;切换 selector 会影响所有使用该代理的流量。部分客户端与平台细节见参考资料。