treg shell 透明CLI拦截模式实战子shell中所有命令自动注入密钥完整新手指南【免费下载链接】tregOpenRouter for agent tools. Join community here: https://discord.gg/6mQYYfFMAn项目地址: https://gitcode.com/GitHub_Trending/treg/tregtreg 是面向 agent 工具的 API 注册中心agent 工具的 OpenRouter。它的treg shell透明 CLI 拦截模式让你在一个子 shell 里像本地安装过一样直接使用团队的stripe、gh等命令行工具——所有命令自动注入团队密钥你本人从不需要接触密钥。本文带新手在 5 分钟内理解并上手这套机制一键进入、原理拆解、审计日志、进阶选项与干净退出。痛点为什么需要 CLI 拦截与密钥自动注入团队共享 API 密钥时通常有两种笨办法每人一份密钥泄露风险大轮换成本高每次显式调用treg run stripe -- ...安全但每条命令都要敲treg run前缀摩擦明显。treg shell给出的第三条路启动一个子 shell在里面输入stripe balance它就像装好并登录过一样直接工作——密钥由 treg 按命令注入全程可审计。这就是透明 CLI 拦截不靠 shell 钩子、不靠preexec陷阱而是利用PATH名字解析来拦截。最快上手步骤一键启动子 shell先拿到 treg仓库地址https://gitcode.com/GitHub_Trending/treg/treg登录团队后只需一条命令treg shell start你会看到这样的横幅输出到终端▚ treg shell — youre now in a shell where your teams CLIs just work. The tools below run with the team credential injected for you — no treg run, no keys on this machine, and every call is audited. Injected here (8): doctl flyctl gcloud gh openai stripe supabase vercel Leave any time with exit (or Ctrl-D) — your normal shell returns unchanged. (treg) $ 注意三个信号提示符出现了(treg)标记说明你已进入拦截子 shell横幅列出了本次被影子接管的 CLI带(server)标记的会在服务端运行git、ls等未注册命令完全不受影响。之后直接使用即可gh --version ▸ gh · audit #59 gh version 2.72.0 (2025-04-30)你敲的是gh不是treg run gh——但这次调用已被 treg 拦截并写入审计日志那行▸ gh · audit #59。原理拆解PATH 影子目录如何实现自动拦截这套机制的核心在 src/treg/shell.py逻辑可以概括为三步步骤做了什么关键点1️⃣ 建私有会话目录在$XDG_RUNTIME_DIR/$TMPDIR下创建 0700 权限的treg-shell-*目录不落在共享/tmp防他人窥视2️⃣ 为每个注册 CLI 写一个 shimshim 内容是exec env PATH$TREG_SHELL_REALPATH treg run tool -- $每个 shim 就是一个同名牌子3️⃣ 把 shim 目录放到PATH最前面再启动你的$SHELL交互子 shellshell 按PATH顺序解析命令名妙处在于这个命令该不该被拦截的判定由 shell 的名字解析免费完成——stripe先找到我们的 shim就被路由进 tregls没有 shim照常解析。没有钩子、没有包装函数所以不可能误伤未注册命令。两个精巧的细节见 shell.py 中的shim_script与write_shims防递归shim 内部用加目录前缀之前捕获的干净PATHTREG_SHELL_REALPATH调用treg run保证treg run找到的是真实二进制而不是 shim 自己Tab 补全旁路__complete*这类补全调用直接执行真实二进制——补全是本地 shell 元数据不需要密钥若走 treg 会一个按键一条审计地刷屏并烧掉每日配额。 更关键的是安全模型子 shell 的环境变量里没有任何密钥。每次命令执行时treg run才实时领取一次性授权grant用完即弃机器上不留痕。审计与用量每一次注入都留痕shell 模式完全复用treg run的本地执行链路授权、拒绝、runner 证明、审计与计量全部免费获得。退出后可随时回查treg runs --limit 1 # [ { tool: stripe, argv: [--version], exit_code: 0, duration_ms: 92, where: server } ]管理端也能在仪表盘看到运行明细本地与--server两种档位都在同一份日志里用where字段区分。进阶选项服务端执行与自动过期start的两个实用参数定义见 cli.pytreg shell start --server-for stripe --ttl 60--server-for a,b让这些 CLI在注册中心服务器上运行密钥永远不会落到你的机器上输出流式回传。横幅里会被标记为(server)若工具不具备server_runnable能力会回退到本地执行并给出警告--ttl 分钟硬性时间上限到点自动关闭会话只是便利设施——Phase 1 本来就不在本地留任何凭证--proxy可选额外启用本地 HTTPS 代理把你的 agent 自己发出的针对已注册主机的 HTTPS 请求也一并拦截注入。因为拦截可能影响证书钉死的客户端此特性为显式开启横幅会明确列出被捕获的主机——成员不应靠意外发现拦截。参数作用适用场景--server-for a,b指定工具在服务端运行密钥绝不上机--ttl MIN会话自动关闭临时会话防遗忘--proxy同时捕获 agent 的裸 HTTPS 调用脚本不感知 treg 的场景--proxy-port/--renew-ca改代理端口 / 重建 CA端口冲突、信任更新退出与回滚exit 之后零残留exit # 或 Ctrl-D或直接关闭终端 $ which gh /opt/homebrew/bin/gh # PATH 已恢复指向真实二进制exit触发会话拆除私有 shim 目录被删除PATH恢复原样不留任何文件、不留任何凭证见 shell.py 中的_teardown。会话内也可用treg shell stop主动通知父进程收尾。延伸阅读源码与文档路径想深入这套拦截模式的设计与实现按这个顺序读官方设计说明docs/context/interface/shell.md交互式教程含逐步输出演示src/treg/web/tutorial-import-shell.md核心实现src/treg/shell.pyplan_shims选谁被拦截、shim_script生成 shim、start_session管理生命周期命令接线与参数src/treg/cli.py行为测试tests/test_shell.py姊妹机制代理拦截docs/context/architecture/local-proxy.md 一句话总结treg shell start用一个放在PATH最前面的私有 shim 目录把团队注册过的 CLI同名牌子接管下来每条命令透明走treg run注入密钥并留审计exit即恢复机器零残留——这就是透明 CLI 拦截模式的完整闭环。【免费下载链接】tregOpenRouter for agent tools. Join community here: https://discord.gg/6mQYYfFMAn项目地址: https://gitcode.com/GitHub_Trending/treg/treg创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
