热门产品

shim-cli

shim-cli

面向 Claude Code、Codex 等编码智能体用户的开源本地代理,自动打码密钥与个人数据,并展示会话发送内容与成本。

热门评论

PH 用户
Hi Product Hunt,我是 Mertcan,shim-cli 的开发者之一。

我们做它,是因为想看看我们自己的编程智能体到底给模型发了什么。一个请求携带的东西远不止你的 prompt:还有 system prompt 和 tools array,以及智能体一路读过的每个文件。当智能体打开一个 .env,里面的 key 也会发给模型,而会话里没有任何东西会告诉你这件事。

shim-cli 就放在你已经在用的智能体旁边,运行在你自己的机器上:

• shim install claude 会给 Claude Code 添加 hooks。当某个工具结果里含有 API key、密码、邮箱、IBAN、电话号码或土耳其身份证号时,模型拿到的是像 <SECRET_1> 这样的占位符。
• shim watch -- claude 让一次会话走本地 proxy,并打印 input token 都花到哪儿了、这次会话花了多少钱(或者如果用 API key 会花多少),以及请求和响应里出现了哪些敏感值。它会原样转发每一个字节。

不用账号,也没有遥测,hook 不会新增任何网络目标。Codex、GitHub Copilot CLI 和 VS Code 也支持,只是覆盖范围更小。

它做不到的事,先让你安装前心里有数:
• 你输入到 Claude Code 或 Codex 里的 prompt 不会被打码,因为这两个客户端都不让 hook 改写它。shim 会报告它,或者在 enforce 模式下拦住它。Copilot CLI 确实会拿到打码后的 prompt。
• 在 Claude Code 里,shell 命令、失败命令的输出,以及用 @ 附加的文件只会被报告,不会被打码。
• Codex 和 Copilot CLI 的工具流量不会被检查,VS Code 只做报告。
• 检测只能尽力而为,会漏掉一些值。它不是 DLP 边界。
• 只支持 macOS 和 Linux。Windows 是我们优先要支持的。

一分钟就能试:
uv tool install --python 3.12 shim
shim demo claude
shim install claude

项目在 GitHub 上以 Apache-2.0 开源。我们最想听的反馈是:shim 在你自己的会话里漏掉了什么,以及下一步该深入支持哪个客户端。
PH 用户
在模型看到之前就把工具结果里的敏感密钥打码,解决了我一直不敢让 Claude Code 放开跑的那个顾虑;而一个没有遥测的本地 proxy,正是我想要用来审计它的方式。
PH 用户
@mertcansaglam —— 给任何人的智能体工作流都加了个很棒的东西。祝发布顺利。
PH 用户
如果你在用 AI 智能体:你可以粘贴这段 prompt:

帮我在这台机器上装好 shim-cli 1.2.0,然后演示给我看它确实能用。

shim-cli 是一个开源 CLI(Apache-2.0)。它会找出我的编程智能体发给模型的内容里的密钥和个人数据,并在客户端允许的地方把它们打码。
先读:https://github.com/GetSHIM/shim-... 和 https://github.com/GetSHIM/shim-...

怎么做:
- 每条命令执行前,先展示给我,等我确认。
- 命令支持 --json 时就用 --json。根据 "code" 分支,并按 "fix" 说的做。
- 在我看过 --dry-run 输出并明确同意之前,绝不要加 --yes。
- 只能通过 shim 命令改设置。不要自己编辑客户端的设置文件。
- 不要用 sudo、把 curl 管道给 shell,也不要使用任何跳过权限或 hook 信任的 flag。
- 不要打开、打印或扫描我真实的 .env 文件或机密信息。要列出 .env 里的变量名但不显示值,用:shim keys .env --json
- 如果这里的任何内容和那个 tag 的 README 不一致,以 README 为准,并告诉我。

步骤:
1. 检查操作系统。shim-cli 运行在 macOS 和 Linux 上。如果是在 WSL 之外的 Windows,停下来告诉我。
2. 用 uv 安装;如果没有 uv,就用 pipx:
uv tool install --python 3.12 --compile-bytecode shim
pipx install --python python3.12 --fetch-missing-python shim
3. 问我用的是哪个智能体:claude、codex 还是 copilot。如果用 VS Code,就改按 README 的 "VS Code" 一节来。
4. 预览 hook,并把目标文件和要插入的片段展示给我:
shim install <client> --dry-run --json
等我同意后:shim install <client> --yes --json
5. 检查:shim doctor <client> --json
对每个不是 PASS 的检查,把它的 code 和 fix 展示给我。
6. 如果我使用 Codex,告诉我打开 Codex 里的 /hooks,并启用 shim 条目。
7. 告诉我 shim 在下一次会话里会做什么,按 README 的 "Supported clients" 表中针对我这个客户端的说明来。

只有我主动问时才做:shim audit 会统计我过去的 Claude Code 会话已经发送了多少内容,但不会打印任何具体值。
PH 用户
它是我和服务商之间的 router 吗?会让它变慢吗?
PH 用户
恭喜 Mertcan 和 shim 团队发布。能坦白说明哪些东西它遮不住,比如手动输入的 prompt 和命令失败时的输出,这反而让我更信任它其余的部分。当一个工具结果里本该是密钥的地方变成了 <SECRET_1>,而智能体又把这个占位符写进配置文件或 curl 调用里时,shim 会在往外输出时把真实值换回去吗,还是智能体最后只会得到一个坏掉的文件?
热门产品Ayşenur Karakuş2026-10-18原文

相关内容