一站式 Clash 规则编辑 / 校验 / 测试 工具,支持可选的 AI 优化与解释。
- 编辑器 + 校验统一:CodeMirror linter 与页面“验证结果”复用同一套解析/校验逻辑(避免“双轨分叉”)
- 规则测试:输入 domain / process / src/dst IP/port / network / uid 等,查看命中规则与解释
- GeoIP 真实模式(离线库):IP -> 国家码 ->
GEOIP规则匹配(Server 模式服务端查询;Static Export 也可用但会下载 mmdb) - AI 助手:一键优化规则 / 解释命中原因(Server 模式推荐走同源
/api代理;Static Export 可选浏览器直连) - 数据管理:Policy / GeoSite / ASN 等数据源管理与启用开关
要求:Node.js ≥ 18,pnpm
pnpm install
pnpm dev默认访问:http://localhost:3000
自定义端口(可选):
pnpm dev -- -p 4001本项目支持两种模式:
支持 app/api/*(AI / GeoIP 都依赖它):
pnpm build
pnpm start导出到 out/(注意:静态导出不支持 Route Handlers,因此同源 /api/* 代理不可用):
pnpm export更多细节见 deploy/README.md。
本仓库使用 pnpm 的 patchedDependencies(用于浏览器侧 GeoIP)。Vercel 默认可能使用 pnpm@9;
如果你本地用 pnpm@10 更新过 pnpm-lock.yaml,可能会在 Vercel 出现 ERR_PNPM_LOCKFILE_CONFIG_MISMATCH。
- 推荐:在本地运行
npx -y pnpm@9 install --no-frozen-lockfile生成兼容的pnpm-lock.yaml并提交 - 或:按 Vercel 官方文档启用 corepack 来显式使用 pnpm@10:https://vercel.com/docs/deployments/configure-a-build#corepack
- AI Key 会保存在浏览器本地存储:
- Server 模式:通过同源
/api/ai/*由服务端转发到提供商(推荐) - Static Export:浏览器会直连第三方接口(可能被 CORS 阻止,且 Key 暴露面更大)
- Server 模式:通过同源
- 请勿在共享设备/公开环境中填写敏感 Key;优先使用可撤销/限额的 Key。
- 代码 vs 真实运作差距与方案:
docs/runtime-gaps.md - React/Next CVE 与审计记录:
docs/security-cve-react-nextjs.md
本项目使用 IPLocate 的免费 IP 数据库(CC BY-SA 4.0):https://www.iplocate.io/free-databases
欢迎 PR / Issue(请尽量附复现步骤、截图与预期行为)。
MIT