内容
<div align="center">
<h1>🧠 GitMem</h1>
<p><b>面向 AI 的仓库原生工程记忆</b></p>
<p>
<a href="https://golang.org/"><img src="https://img.shields.io/badge/Made%20with-Go-00ADD8.svg?style=flat-square&logo=go" alt="Made with Go"></a>
<a href="https://github.com/Ashishkumar14077/gitmem/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg?style=flat-square" alt="License"></a>
</p>
</div>
---
## 🌟 GitMem 是什么?
**GitMem** 是一款 CLI 工具,它将您的代码仓库转变为智能的、面向 AI 的工程记忆库。它在您的代码仓库中存储架构笔记、架构决策记录(ADRs)和提交理由,并通过语义搜索和模型上下文协议(MCP)将它们暴露给大型语言模型(LLM)。
通过将知识存储在 **代码仓库中**(在 `.repo-memory` 目录中),您的工程上下文与代码一起旅行,防止知识丢失,并大大提高 AI 编程助手性能。
## 🚀 主要功能
- **仓库原生存储**:上下文、架构和 ADRs 与您的代码存放在一起。
- **AI 驱动的问答**:询问有关您的架构的问题,并获得由 Gemini、Ollama 或 OpenRouter 提供的答案。
- **本地 RAG 和嵌入**:使用 Nomic Embeddings(本地)或 Gemini 和 LanceDB 进行极快的语义搜索。
- **自动 ADRs**:交互式生成标准化的架构决策记录。
- **智能 Git 钩子**:通过预提交检查和 AI 生成的提交消息保持记忆更新。
- **MCP 集成**:将 GitMem 运行为 MCP 服务器,为 Claude Desktop 或其他 AI 代理提供直接访问您的代码仓库记忆的功能。
## 🛠️ 安装
确保您已安装 Go,然后运行:
```bash
# 克隆代码仓库
git clone https://github.com/Ashishkumar14077/gitmem.git
cd gitmem
# 构建 CLI
go build -o gitmem .
# (可选)移动到您的 bin 路径
sudo mv gitmem /usr/local/bin/
```
> 注意:您需要将 `.env.example` 复制到 `.env` 并填写您的 API 密钥(例如 `GEMINI_API_KEY`),以使 AI 功能正常工作。
## 🎮 使用
### 1. 初始化
在您当前的代码仓库中初始化 GitMem。这会创建 `.repo-memory` 文件夹并准备结构。
```bash
gitmem init
```
### 2. 文档和决策
搭建您的初始架构文档,并交互式地做出架构决策。
```bash
gitmem architecture
gitmem decision
```
### 3. 索引记忆
运行嵌入管道,将所有文档索引到本地向量数据库中。
```bash
gitmem index
```
### 4. 提问
使用自然语言查询您的工程记忆。
```bash
gitmem ask "为什么我们选择 LanceDB 而不是 Pinecone?"
```
## 🧩 高级命令
### 智能提交和钩子
通过生成包含基于您记忆的深入工程理由的提交消息,防止知识过时。
```bash
# 根据暂存更改生成提交消息
gitmem commit
# 安装预提交钩子以检查记忆是否过时
gitmem hook install
```
### 全局上下文生成
生成一个统一的 `context.md` 文件,总结您的整个项目的状态。
```bash
gitmem context
```
### 模型上下文协议(MCP)服务器
通过 stdio 将您的代码仓库记忆暴露给现代 AI 代理(例如 Claude Desktop)。
```bash
gitmem mcp
```
## 🏗️ 架构
GitMem 使用现代栈构建,注重速度和隐私:
- **CLI 框架**:Cobra
- **Git 操作**:go-git
- **LLM 支持**:Gemini、Ollama(本地)、OpenRouter
- **嵌入**:Nomic(本地)或 Gemini
- **向量数据库**:LanceDB(嵌入式)
- **集成**:官方 MCP SDK
更多详细信息请参见 [架构文档](ARCHITECTURE.md)。
## 🤝 贡献
欢迎贡献!请随意提出问题或提交拉取请求。
## 📄 许可证
该项目根据 MIT 许可证授权 - 有关详细信息,请参见 [LICENSE](LICENSE) 文件。