内容
<div align="center">
# 知识库记忆
**您的代码库从不遗忘.**
AI 代理在每次会话时都会丢失上下文。知识库记忆(repomemory)解决了这个问题 — 只需一个命令,就能创建一个持久的、可搜索的知识库,任何 AI 工具都可以读取、搜索和写入。
[](https://www.npmjs.com/package/repomemory)
[](https://www.npmjs.com/package/repomemory)
[](https://github.com/DanielGuru/repomemory/blob/main/LICENSE)
[](https://github.com/DanielGuru/repomemory/actions)
```bash
npx repomemory go
```
</div>
---
<div align="center">
<video src="https://github.com/DanielGuru/repomemory/raw/main/repomemory-demo.gif.mp4" width="100%" autoplay loop muted playsinline></video>
</div>
## 问题
每次您打开一个项目与 Claude Code、Cursor、Copilot 或任何 AI 编程代理:
- 它会从头开始重新发现您的架构。
- 它会提出已经讨论和拒绝的更改。
- 它会重新引入已经修复的错误。
您的 `CLAUDE.md` / `.cursorrules` 有帮助,但它是静态的并且会过时。
## 解决方案
```
.context/
├── index.md ← 快速定位(每次会话都加载)
├── facts/ ← 架构、数据库、部署
├── decisions/ ← "我们选择了 Drizzle 而不是 Prisma,因为..."
├── regressions/ ← "这之前已经坏了。这里发生了什么。"
├── preferences/ ← 您的编码风格 — 在所有代码库中遵循
├── sessions/ ← 自动捕获的 AI 会话摘要
└── changelog/ ← 每月 git 历史记录同步
```
**事实**告诉代理事情是如何工作的。**决策**防止重新讨论。**回归**防止重新出现错误。**偏好**教导代理您如何编码。
## 快速开始
### 使用 API 密钥(Claude Code,终端工作流)
```bash
npx repomemory go
```
一个命令:设置全局配置文件,创建 `.context/`,配置 Claude Code + Cursor,运行 AI 分析,打印 CLAUDE.md 说明。
### 使用 Cursor(不需要 API 密钥)
```bash
npx repomemory setup cursor
```
这安装了 Cursor 需要的一切:
- **MCP 服务器** 在 `~/.cursor/mcp.json`(在每个项目中自动启动 repomemory)
- **规则** 在 `.cursor/rules/repomemory.mdc`(教导 Cursor 的 AI 使用上下文)
- **6 个命令** 在 `.cursor/commands/`(在 Cursor 聊天中使用 `/` 运行)
然后在 Cursor 聊天中输入:
```
/repomemory-analyze
```
Cursor 的 AI 使用 MCP 工具扫描您的代码库并通过 `.context/` 填充。无需外部 API 密钥 — 您的 Cursor 订阅处理它。
**可用的 Cursor 命令:**
| 命令 | 功能 |
|---------|-------------|
| `/repomemory-analyze` | 完整的代码库分析 — 填充事实、决策、索引 |
| `/repomemory-orient` | 会话开始时的快速定位 |
| `/repomemory-search` | 搜索知识库 |
| `/repomemory-record` | 记录事实、决策或回归 |
| `/repomemory-session` | 保存会话摘要 |
| `/repomemory-status` | 显示上下文覆盖率 |
### 引导式向导
```bash
npx repomemory wizard
```
通过提供者选择、工具集成和首次分析进行引导。如果未检测到 API 密钥,则提供 **"无 — 我使用 Cursor"** 选项,完全跳过外部分析。
### 非交互式(CI 安全)
```bash
npx repomemory go --yes --provider anthropic --embedding-provider gemini --max-files 80
```
使用 `--yes` / `--defaults` / `--no-prompt` 时不会出现提示。
## MCP 服务器 — 具有真实记忆的代理
真正的强大功能是 MCP 服务器。 通过 `repomemory setup claude` 配置后,它会自动启动与 Claude Code,并为代理提供 7 种工具:
| 工具 | 功能 |
|------|-------------|
| `context_search` | 跨代码库和全局上下文的混合关键字 + 语义搜索 |
| `context_auto_orient` | 一次调用定位:索引、偏好、最近的会话 |
| `context_write` | 使用智能范围路由(偏好 → 全局)写入条目 |
| `context_read` | 读取完整内容,优先使用代码库然后使用全局回退 |
| `context_list` | 浏览带有 `[代码库]`/`[全局]` 来源标签的条目 |
| `context_risk` | 评估修改风险 — 热点、隐藏耦合、总线因子 |
| `context_delete` | 删除过时的知识 |
```
代理: “让我在这个项目中定位...”
→ context_auto_orient()
→ 返回:项目概述、偏好、最近的会话、最近的更改
代理: “让我搜索有关身份验证流程的上下文...”
→ context_search("身份验证流程")
→ 自动路由到 facts/ 类别,返回紧凑的结果
代理: “我发现了一个竞态条件。让我记录一下。”
→ context_write(category="regressions", filename="token-refresh-race", content="...")
→ 已持久化。检测它是否取代现有的条目。
```
会话在关闭时自动捕获。零配置 — `repomemory setup claude` 处理一切。
## 支持的工具
| 工具 | 集成 | 需要 API 密钥? |
|------|------------|-------------------|
| **Claude Code** | MCP 服务器(自动启动)+ 提交后钩子 | 是(用于分析) |
| **Cursor** | MCP 服务器 + 规则 + 6 个斜杠命令 | **否** — 使用 Cursor 的内置 AI |
| **GitHub Copilot** | `copilot-instructions.md` | 是(用于分析) |
| **Windsurf** | `.windsurfrules` | 是(用于分析) |
| **Cline** | `.clinerules` | 是(用于分析) |
| **Aider** | `.aider.conf.yml` | 是(用于分析) |
| **Continue** | `.continue/rules/` | 是(用于分析) |
> **Cursor 用户:** 您不需要任何 API 密钥。运行 `npx repomemory setup cursor`,然后在 Cursor 聊天中使用 `/repomemory-analyze`。Cursor 的 AI 使用 MCP 工具进行分析 — 无论使用哪个模型(甚至可以在任务中切换模型)。
## 支持的提供者
| 提供者 | 模型 | 环境变量 |
|----------|--------|-------------|
| `anthropic` | claude-sonnet-4-6, claude-opus-4-6 | `ANTHROPIC_API_KEY` |
| `openai` | gpt-4o, o3-mini | `OPENAI_API_KEY` |
| `gemini` | gemini-2.0-flash, gemini-2.5-pro | `GEMINI_API_KEY` / `GOOGLE_API_KEY` |
| `grok` | grok-3, grok-3-mini | `GROK_API_KEY` / `XAI_API_KEY` |
**嵌入**(可选,用于语义搜索):Gemini `text-embedding-004`(免费,默认)或 OpenAI `text-embedding-3-small`。从可用的 API 密钥自动检测。
## 所有命令
```bash
repomemory go # 一键设置(添加 --yes 以非交互式)
repomemory wizard # 交互式引导设置
repomemory analyze # AI 驱动的代码库分析
repomemory analyze --merge # 更新而不覆盖编辑
repomemory analyze --dry-run # 预览而不调用 API
repomemory search <query> # 从终端搜索知识库
repomemory status # 覆盖率和新鲜度报告
repomemory doctor # 诊断和健康检查
repomemory dashboard # 本地 Web UI(localhost:3333)
repomemory risk # 热点、耦合、所有权分析
repomemory risk -f src/auth.ts # 针对特定文件的风险评估
repomemory sync # 将 git 历史记录同步到变更日志
repomemory setup <tool> # 配置 Claude/Cursor/Copilot 等
repomemory hook install # 自动同步变更日志到提交
repomemory global list # 管理全局开发人员上下文
repomemory global export # 将全局上下文导出为 JSON
```
## 配置
`.repomemory.json` 在您的代码库根目录(所有字段均为可选):
```json
{
"provider": "anthropic",
"model": "claude-sonnet-4-6",
"embeddingProvider": "gemini",
"hybridAlpha": 0.5,
"maxFilesForAnalysis": 80,
"enableGlobalContext": true
}
```
自定义 `ignorePatterns` 和 `keyFilePatterns` 是 **累加的** — 它们扩展内置的默认值,而不是替换它们。
## 为什么不使用 CLAUDE.md?
| | CLAUDE.md | 知识库记忆 |
|--|-----------|------------|
| **维护** | 手动 | AI 生成 + 代理维护 |
| **搜索** | 加载所有内容 | 混合关键字 + 语义 |
| **跨工具** | 仅限 Claude Code | 支持 7 种工具 |
| **团队知识** | 一个人编写 | 每个 AI 会话都有贡献 |
| **决策** | 与说明混杂 | 结构化、可搜索 |
| **回归** | 未跟踪 | 防止重复错误 |
| **会话** | 未跟踪 | 关闭时自动捕获 |
| **新鲜度** | 未知 | 过时检测 + 自动清除 |
知识库记忆并不取代 `CLAUDE.md` — 它是对 `CLAUDE.md` 的补充。`CLAUDE.md` 用于说明和规则。`.context/` 持有随着时间增长的知识。
## 贡献
参见 [CONTRIBUTING.md](.github/CONTRIBUTING.md) 以获取开发设置、测试和贡献指南。
## 许可证
MIT
---
<div align="center">
**为厌倦 AI 代理在会话之间遗忘一切的开发者而建。**
[报告错误](https://github.com/DanielGuru/repomemory/issues) · [请求功能](https://github.com/DanielGuru/repomemory/issues) · [npm](https://www.npmjs.com/package/repomemory)
</div>