作为开发者,你可能同时使用多个 AI 编码助手:Claude Code 擅长复杂推理,Codex 与 OpenAI 生态紧密集成,Pi 轻量快速,Gemini 则背靠 Google 的庞大模型。每个工具都有自己的 CLI(命令行界面),切换时不仅需要记住不同的命令,还无法在移动设备上快速操作。如果有一个统一的入口,能从手机上的 Telegram 直接控制它们,还能自动处理安全门控和企业网络拦截,是不是很方便?这正是 cliclaw 要解决的问题。
cliclaw 是一个用 TypeScript 编写的守护进程(后台长期运行的程序),它通过 Telegram Bot API 暴露接口,让你在 Telegram 聊天中直接与四个编码 CLI 交互。每个聊天会话独立维护每个代理的上下文,切换代理时旧会话保留,可以随时回来继续。未安装的代理自动从可选列表隐藏,你只需安装需要的 CLI。
安装过程极其简洁:确保系统是 macOS(Apple Silicon 或 Intel),安装 Bun 1.x 运行时,然后全局安装 @younggichoi/cliclaw 包。运行 cliclaw init 进入交互式设置,只需五步:第一步,从 Telegram 的 @BotFather 创建 bot 并获取 token;第二步,自动检测已安装的编码 CLI(Claude Code、Codex、Pi、Gemini),并让你选择默认代理;第三步,向你的 bot 发送任意消息以授权你的 Telegram 账号;第四步,可选检测企业 TLS 拦截器(如 Zscaler、Forticlient、Cisco Umbrella),如果存在则自动应用 CA 证书;第五步,安装 LaunchAgent(macOS 的开机自启机制)实现登录时自动启动。完成后,在 Telegram 中发送 /status 即可验证。
日常使用中,你可以通过 /claude、/codex、/pi、/gemini 切换当前聊天的活跃代理,发送任何文本或照片作为提示词给活跃代理。照片会被下载到工作区并自动附加到提示词前。每个聊天同时只能运行一个任务,发送新消息会拒绝,需要 /stop 取消或等待完成。还有 /health 查看系统状态,/reset 重置会话,/safety 开关安全模式。
安全是 cliclaw 的核心设计。默认安全模式开启时,危险 Bash 命令(如 rm -rf、git push --force、DROP、kubectl delete、sudo、curl|sh 等)会通过 Telegram 内联键盘([✅ Allow] [❌ Deny])要求二次确认,无响应则自动拒绝。这个确认门控(confirm gate)通过 Unix socket IPC(进程间通信)实现,在等待用户决策时阻塞危险命令的执行。同时,Claude 的 Read 工具被禁止读取敏感文件(~/.ssh/**、~/.aws/**、**/.env* 等)。你可以通过 confirmGate.extraPatterns 添加自定义规则。关闭安全模式后,所有 IPC 请求仍记录在审计日志 logs/audit.jsonl 中,每条记录包含决策和原因。安全模式状态持久化在 safety.json 中,重启后保持。
对于企业环境,cliclaw 在初始化时自动检测 $NODE_EXTRA_CA_CERTS 或 launchctl getenv NODE_EXTRA_CA_CERTS,识别 Zscaler 等 TLS 拦截器(企业网络中对 HTTPS 流量进行解密检查的代理),并将 CA 证书注入 LaunchAgent 环境,确保 bot 能正常连接 Telegram。日志中自动脱敏敏感信息:bot token、npm token、GitHub PAT 等,防止通过日志泄露。
架构上,所有状态隔离在 ~/.cliclaw/ 目录下:config.json(权限 600)、sessions.json、工作区 workspace/、日志 logs/ 等。代理发现分三阶段扫描:常见路径(~/.local/bin 等)、nvm 下的 node 对应路径、登录 shell 的 PATH。未检测到的代理优雅跳过。工作区作为共享沙箱,Claude 以 --permission-mode bypassPermissions 运行(危险命令由 confirm gate 捕获),Codex 使用 sandbox=workspace-write,Gemini 默认 approvalMode=auto_edit(编辑自动批准,破坏性命令提示)。状态目录可通过 CLICLAW_HOME 环境变量移动,方便多实例管理。
当然,cliclaw 也有局限:仅支持 macOS,部分代理(Codex、Pi、Gemini)不支持流式响应,Gemini 的危险命令依赖自身模式而非 confirm gate,不支持语音/文件附件(仅照片),同一聊天并发消息被拒绝。但作为 v1 版本,它已经提供了一个非常实用的统一管理方案。
这个项目的思路可以扩展到更多场景:如果你所在团队同时使用多个 AI 编码工具,或者你想通过即时消息平台(如 Slack、Discord)远程控制开发环境,cliclaw 的架构——独立会话、安全门控、企业网络适配——都是很好的参考。实际使用时,务必保护好 bot token(泄露等于远程 shell),保持安全模式开启,配置文件权限设为 600。对于企业开发者,TLS 拦截检测功能尤其值得借鉴,它解决了在受限网络中运行 bot 的常见痛点。
内容与图片版权归原作者所有 · 原文: https://github.com/choiyounggi/cliclaw