teamchong/pxpipe
cut Claude Code token usage by rendering text context as images
pxpipe – 用于 Claude Code 和其他 LLM 的令牌节省代理
它是什么 – pxpipe 是一个本地代理,在请求到达模型之前,将 LLM 请求中体积庞大的部分(系统提示词、工具定义、长聊天历史、文件差异等)改写为 PNG 图像。由于支持视觉的模型按图像令牌收费(取决于像素数,而不是图像内部的文本量),一个密集的代码或 JSON 块可以用比相同文本少得多的令牌来表示。该代理适用于 Anthropic 的 Claude Code、Google Gemini 以及任何接受视觉输入的 OpenAI 兼容端点。
关键概念
| 概念 | 工作原理 |
|---|---|
| 令牌密度提升 | 312×728 像素的图像(Claude-Fable-5 配置文件)大约包含 每个图像令牌 3.1 个字符,而 Claude Code 中每个文本令牌约 1 个字符。这意味着在 1M 令牌窗口中可容纳的字符数增加了 ~4.7-5 倍。 |
| 选择性压缩 | 只有符合条件的批量上下文才会被转换为图像(系统提示词、工具文档、已关闭的工具调用轮次、较旧的历史记录)。最近的轮次和任何字节关键数据(ID、哈希、机密)保持为纯文本。 |
| 有损但有保护 | 图像转换可能会误读精确的十六进制字符串(例如,Fable-5 上 15 个中正确 13 个)。附加到每个请求的“事实表”保留最多 96 个高精度令牌;其余为尽力而为。 |
| 盈利性门控 | pxpipe 对原始请求运行廉价的令牌计数探测(count_tokens),并且仅在预期成本节省超过阈值(密集工作负载约为 60-70%)时应用图像转换。 |
| 特定于模型的渲染配置文件 | 不同的模型使用不同的字体、单元格大小和页面尺寸(例如,Claude-Fable-5 使用 5×8 Spleen 字体,Grok 使用 JetBrains Mono 14px)。代理根据模型 ID 选择正确的配置文件。 |
如何试用(快速入门)
# 启动本地代理(监听 127.0.0.1:47821)
npx pxpipe-proxy
# 将 Claude Code 指向代理
ANTHROPIC_BASE_URL=http://127.0.0.1:47821 claude
http://127.0.0.1:47821/ 上的仪表板显示实时令牌节省、文本与图像渲染的并排比较以及一个终止开关。
或者,使用自动注入代理的 warp 包装器:
pxpipe warp -- claude # 无需设置 ANTHROPIC_BASE_URL
您还可以在无需运行代理的情况下将任何文本或 git 仓库导出为 PNG 页面:
npx pxpipe-proxy export src/ # 渲染 src/ 中的文件
cat prompt.txt | npx pxpipe-proxy export --stdin
npx pxpipe-proxy export --git # 渲染当前仓库历史
导出会创建一个包含 page-*.png、factsheet.txt、manifest.json 和原始 prompt.txt 的文件夹。
实际影响(仓库中报告)
| 指标 | 报告结果 |
|---|---|
| 端到端成本降低 | 生产工作负载的账单降低 ~59-70%(例如,演示中 $6.06 vs $42.21)。 |
| 令牌减少 | 48k 字符系统提示词的 25k 文本令牌 → 约 2.7k 图像令牌。 |
| 基准质量 | Claude-Fable-5 上算术 100/100,要点约 98/98,状态 18/18;十六进制字符串召回率略有下降(15 个中 13 个)。 |
| SWE-bench | “Lite”套件上请求大小减少 ‑65%,“Pro”套件上 ‑60%,精度相同。 |
限制与注意事项
- 有损转换 – 精确标识符(12 字符十六进制、机密)可能被误读;此类令牌在可能的情况下会特意保留为文本。
- 模型依赖性 – 对于接受视觉输入且具有大上下文窗口的模型,节省效果显著;稀疏的散文实际上可能会增加成本。
- 仅请求侧压缩 – 模型输出永远不会转换为图像,因此输出令牌成本不变。
- 盈利性门控是启发式的 – 内置阈值适用于作者的生产数据(约 391 行),但可能需要针对不同的工作负载进行调整。
- 支持的模型 – 默认:Claude-Fable-5、Claude-Opus-5-5、Gemini-Flash。其他模型(Grok、Sol、GPT-5.6-Sol 等)可通过
PXPIPE_MODELS选择加入。
谁可能使用它?
- 构建 代理工具(例如,代码助手、使用工具机器人)的开发人员,这些工具向 Claude Code 或 Gemini 发送大型系统提示词或长文件差异。
- 当工作负载是令牌密集型时,希望 减少 LLM API 支出 的团队。
- 对 视觉增强提示 和衡量令牌压缩权衡感兴趣的研究人员。
快速参考备忘单
| 命令 | 用途 |
|---|---|
npx pxpipe-proxy |
启动代理服务器(默认端口 47821)。 |
pxpipe warp -- <cmd> |
运行命令(例如 claude),自动注入代理。 |
pxpipe warp --route '<src>=<dst>' <cmd> |
为 Anthropic 以外的端点添加自定义路由规则。 |
pxpipe-proxy export <path> |
在无需运行代理的情况下,将文件或标准输入渲染为 PNG 页面。 |
pxpipe stats |
从事件日志(~/.pxpipe/events.jsonl)汇总节省的令牌/成本。 |
结论 – pxpipe 是一个实用的开源工具,利用视觉令牌定价将大型文本上下文压缩为图像,为令牌密集的 LLM 工作流提供可衡量的成本节省,同时保持集成表面简单(只需一个本地 HTTP 代理)。
相关
- Dispatch
- 项目
- 项目
- 项目
- 项目