背景是迫于有好几套 provider ——公司网关一套、自己买的订阅、中转站有几套
之前一直靠 ANTHROPIC_* 这些环境变量配置,或者 cc switch 之类工具来切换,但都是全局切换,所有终端跟着一起变,没法同时两边各自跑,用了公司的网关就没法再同时跑自己的
写了个小工具来满足这个需求,叫 hats (戴不同的施工帽干活
每套配置存成一个 "hat",hats work 就只在这次启动的进程里套上这套环境,其他终端完全不受影响。启动前会先把继承来的 ANTHROPIC_*、OPENAI_* 相关变量清掉,避免串配置,这样就用
hats add work claude # 按提示配一套环境
hats work # 这个终端用 work 的配置跑 claude
也添加了 --isolated 选项,用来把配置目录( settings 、MCP 、history )一起隔离,用于想彻底分开的场景
因为平时用 herdr 比较多,为了方便,加了个让 agent 列表展示对应用的哪个 hat 的小功能
GitHub: https://github.com/Colafornia/hats
目前的功能主打满足自己日常使用,感觉琢磨琢磨,应该还可以加一些好用的小功能
README 里有演示 GIF ,有需要的可以试试,问题欢迎提 issue