Token导航 LogoToken导航TokenDH.com
cachebro (Glommer) logo
开发工具stdio官方级别未说明来源级核验

cachebro (Glommer)

MCP Server

cachebro

cachebro是一个用于AI编码代理的文件缓存服务,通过跟踪文件差异减少重复读取,显著节省token使用量。

工具数

4

提示词数

0

GitHub Stars

181

资源数

0
开发工具TypeScriptClaudeClaudeCursor

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

glommer

提供方

glommer

最后核验

2026/5/17 20:20

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx cachebro init # auto-configures Claude Code, Cursor, OpenCode

详细介绍

cachebro

带有AI编码代理差异跟踪的文件缓存。由...驱动 图尔索,一个高性能的嵌入式数据库。

代理商浪费了大部分代币预算重新读取他们已经看到的文件。cachebro修复了这一问题:在第一次读取时,它会缓存文件,在后续读取中,它要么返回“不变”(一行而不是整个文件),要么返回更改内容的紧凑差异。代理自行采用的文件读取的插入式替换。

基准

我们运行了一个受控的a/B测试:在268个文件的TypeScript代码库上执行相同的重构任务(开放代码),同样的代理人(克劳德·奥普斯),同样的提示。唯一的区别:cachebro启用与禁用。

没有cachebro有cachebro
代币总数158248117188
工具调用6058
已触摸的文件1212

代币减少26%。同样的任务,同样的结果。 cachebro通过提供缓存读取和压缩差异而不是完整文件内容,节省了约33000个令牌。

与同一代码库上的连续任务相比,节省的成本更高:

任务使用的令牌缓存保存的令牌累计节省
1.添加会话导出命令6219029252925
2.将标记添加到会话列表411671557118496
3.添加会话统计子命令631693535553851

按任务3,cachebro已保存 单个任务中有35355个令牌 --减少了36%。在3任务序列上, 在消耗的166526个代币中,节省了53851个代币(约24%).

特工们在没有被告知的情况下收养了它

我们测试了代理人是否会自愿使用cachebro。我们推出了一个编码代理,将cachebro配置为MCP服务器,但 没有给代理人任何指示代理人选择了 cachebro.read_file 而不是内置的读取工具。仅凭工具描述就足够了。

运作原理

First read:   agent reads src/auth.ts → cachebro caches content + hash → returns full file
Second read:  agent reads src/auth.ts → hash unchanged → returns "[unchanged, 245 lines, 1,837 tokens saved]"
After edit:   agent reads src/auth.ts → hash changed → returns unified diff (only changed lines)
Partial read: agent reads lines 50-60 → edit changed line 200 → returns "[unchanged in lines 50-60]"

缓存保存在本地 图尔索 (兼容SQLite)数据库。内容哈希(SHA-256)检测更改。没有网络,没有外部服务,没有文件路径之外的配置。

安装

npx cachebro init     # auto-configures Claude Code, Cursor, OpenCode

就是这样。重新启动编辑器,cachebro处于活动状态。代理会自动发现它。

或者手动配置——添加到MCP配置中(.claude.json, .cursor/mcp.json等等):

{
  "mcpServers": {
    "cachebro": {
      "command": "npx",
      "args": ["cachebro", "serve"]
    }
  }
}

用法

作为MCP服务器(推荐)

MCP服务器公开了4个工具:

工具说明
read_file使用缓存读取文件。首次读取时返回完整内容,后续读取时返回“未更改”或diff。支持 offset/limit 部分阅读。
read_files使用缓存批量读取多个文件。
cache_status显示统计数据:跟踪的文件,保存的令牌。
cache_clear重置缓存。

代理会自动发现这些工具,并更喜欢它们而不是内置的文件读取,因为工具描述会宣传令牌节省。

作为CLI

cachebro serve      # Start the MCP server
cachebro status     # Show cache statistics
cachebro help       # Show help

CACHEBRO_DIR 控制缓存数据库的存储位置(默认值: .cachebro/ 在当前目录中)。

作为SDK

import { createCache } from "cachebro";

const { cache, watcher } = createCache({
  dbPath: "./my-cache.db",
  sessionId: "my-session-1",  // each session tracks reads independently
  watchPaths: ["."],          // optional: watch for file changes
});

await cache.init();

// First read — returns full content, caches it
const r1 = await cache.readFile("src/auth.ts");
// r1.cached === false
// r1.content === "import { jwt } from ..."

// Second read — file unchanged, returns confirmation
const r2 = await cache.readFile("src/auth.ts");
// r2.cached === true
// r2.content === "[cachebro: unchanged, 245 lines, 1837 tokens saved]"
// r2.linesChanged === 0

// After file is modified — returns diff
const r3 = await cache.readFile("src/auth.ts");
// r3.cached === true
// r3.diff === "--- a/src/auth.ts\n+++ b/src/auth.ts\n@@ -10,3 +10,4 @@..."
// r3.linesChanged === 3

// Partial read — only the lines you need
const r4 = await cache.readFile("src/auth.ts", { offset: 50, limit: 10 });
// Returns lines 50-59, or "[unchanged in lines 50-59]" if nothing changed there

// Stats
const stats = await cache.getStats();
// { filesTracked: 12, tokensSaved: 53851, sessionTokensSaved: 33205 }

// Cleanup
watcher.close();

建筑

packages/
  sdk/     cachebro — the core library
           - CacheStore: content-addressed file cache backed by an embedded database
           - FileWatcher: fs.watch wrapper for change notification
           - computeDiff: line-based unified diff
  cli/     cachebro — batteries-included CLI + MCP server

数据库:图尔索 数据库文件 file_versions (内容寻址,按路径+哈希键), session_reads (每个会话读取指针),以及 stats/session_stats 桌子。正确处理了多个会话和分支开关——每个会话都跟踪它最后看到的版本。

变更检测: 每次读取时,cachebro都会对当前文件内容进行哈希运算,并将其与缓存的哈希值进行比较。相同的哈希值=不变。不同哈希=计算差异,更新缓存。无需投票,也不需要观察者来保证正确性——哈希是真理的来源。

令牌估计: ceil(characters * 0.75)。代码虽然粗糙,但方向正确。对于“节省的代币”指标来说,这已经足够好了。

许可证

麻省理工学院

目录标签

目录标签

开发工具TypeScriptClaude文件缓存本地部署AI编码辅助token优化性能提升

支持客户端

ClaudeCursor

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

cachebro

工具数量(toolCount,工具数)

4

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP