GitMemo
简介
把临时信息变成可搜索、可同步、可复用的长期知识。
GitMemo 是一个本地优先、Git 原生的个人知识捕获与复用系统。它把剪贴板、截图、Markdown、AI 对话、终端输出、外部文件和灵感记录统一保存到用户自己控制的 Git 仓库中,让人和 AI 都能搜索、阅读、同步、导出和二次创作。已支持的 AI 工作偏好和编辑器上下文,例如全局 CLAUDE.md、Claude memory/skills、Cursor rules/skills,也可以进入同一个知识仓库并由 Git 管理。
它提供 CLI 和 Desktop 两种使用形态,并以本地优先的方式服务 Claude Code、Cursor 和 Codex 用户。
为什么 GitMemo 在 AI 时代成立
传统笔记产品主要承接人主动写下来的内容;AI 时代的高价值知识,还会持续来自 AI 对话、编程助手、终端、浏览器、剪贴板、截图、外部文件和临时灵感。很多内容只在当下有窗口期,如果没有立刻进入长期介质,很快就会散落或丢失。
GitMemo 成立的原因,是这些临时来源需要一个长期、可迁移、由用户自己控制的归宿。它先把这些材料捕获下来,再以普通文件保存到用户自己的 Git 仓库中,让它们可以被搜索、同步、导出和复用。
这也改变了知识库的角色:它不再只是给人翻看的旧笔记,而是人和 AI 都能重新读取的上下文层。之后继续工作时,可以基于已经保存的事实、决策、终端回答、分支摘要和文档继续推进,不必每次重新回忆和解释背景。
特性
- Git 原生的知识捕获 — 剪贴板、截图、Markdown、AI 对话、终端输出、外部文件和灵感记录汇入同一目录,由 Git 管理;远程同步始终可选
- 面向已支持 AI 工具的对话捕获 — Claude Code 和 Cursor 使用规则、技能、hooks 与 MCP;Codex 会话通过
gitmemo capture从本机原生日志导入 - 搜索与复用 — 通过 CLI、Desktop 或 MCP 搜索已保存内容,而不是让它们淹没在聊天记录里
- 项目现场,随时归档 — 让 MetaBot、Claude、Codex 或 Cursor 把当前分支、任务目标、实现进度、风险和下一步计划保存到 GitMemo;以后换工具、换设备、换时间继续工作时,直接读取上下文,不再从零回忆
- AI 偏好与配置同步 — 把用户自己写下的 AI 工作规则、全局
CLAUDE.md、Claude memory/skills、Cursor rules/skills 和相关 MCP 配置纳入搜索、版本管理和多端同步 - 多编辑器 — 同时支持 Claude Code、Cursor 与 Codex
- 笔记功能 — 便签和手册,一行命令创建
- 剪贴板捕获 — Desktop 可在启用后本地监控并捕获剪贴板中的文本和图片
- 编辑器捕获链路无需常驻同步守护进程 — 对话保存依赖编辑器原生 hooks / 集成或本机会话日志,而不是额外的同步服务
- 数据主权 — 内容在你自己的 Git 仓库中,完全可控;本地索引等辅助数据见 Data & storage statement(数据与存储声明)
环境与依赖
- 本机 Git:用于在同步目录初始化仓库、
commit/push等;不强制配置远程(可长期纯本地,需要把内容同步到另一台电脑或云端仓库时再配远程即可)。 - Claude Code / Cursor / Codex:不是安装 GitMemo 的前置门槛。只有当你希望接入对话捕获、Hook、MCP 或 Codex 日志导入时,再在
gitmemo init里接入 至少其一;Codex 支持读取既有~/.codex日志,不修改 Codex 配置,也不会安装 Codex/save技能。也可先只用 CLI 记笔记与手动同步,之后再补init。 - 远程 Git 托管(GitHub / GitLab / Gitee / 自建):始终可选。
社群交流
扫码加入 GitMemo 微信讨论群,获取产品更新、分享使用工作流,也可以交流问题。

快速开始
安装
GitMemo Desktop(macOS / Windows)— 图形界面优先
- 下载:选择与你设备匹配的 桌面端安装包:
- macOS:优先选
.dmg(拖拽安装到「应用程序」),或.app.tar.gz(解压后得到.app,具体文件名随版本变化,认准 desktop / GitMemo 相关资源即可)。 - Windows:从 GitMemo 下载页 下载 x64
.exe安装程序。 - Linux:当前仓库 不提供 Desktop 安装包;请使用下方 CLI 安装。
- macOS:优先选
- 首次设置:先完成一次初始化——可在 GitMemo Desktop 里按界面引导完成;若你更习惯终端,也可安装下方 CLI 后执行
gitmemo init。完成后会生成~/.gitmemo并可选接入 Claude / Cursor 或启用 Codex 日志捕获。之后日常可主要用 Desktop 做浏览、搜索与剪贴板。
macOS Desktop 说明:当前发布的 Desktop 安装包已经完成签名,正常情况下直接通过发布页提供的
.dmg或.app.tar.gz安装即可。若你的机器仍然拦截启动,应视为少数环境相关异常,而不是标准安装流程的一部分。 Windows Desktop 说明:当前 Windows x64 安装包暂未签名,可能触发 Windows SmartScreen 的“未知发布者”提示;请从 GitMemo 官方下载页获取,并只在确认来源可信时继续安装。
CLI 安装(macOS / Linux)
macOS / Linux 可使用一键安装脚本(同时包含 gitmemo CLI,并可在脚本流程中安装/更新相关组件):
# 一键安装(自动检测平台)
bash <(curl -fsSL https://github.com/sahadev/GitMemo/raw/main/scripts/install.sh)
<details>
<summary>手动下载 CLI / 从源码编译</summary>
从 Releases · Latest 的 Assets 中下载对应平台的 CLI 二进制(如 gitmemo-macos-aarch64 或 gitmemo-linux-x86_64)。
macOS / Linux:
chmod +x gitmemo-macos-aarch64
sudo mv gitmemo-macos-aarch64 /usr/local/bin/gitmemo
Windows:目前请通过 Cargo 从源码构建。
或从源码编译(需要 Rust 工具链):
git clone https://github.com/sahadev/GitMemo.git
cd GitMemo
cargo install --path .
</details>
初始化
# 全新开始 — 交互式选择编辑器(Claude Code / Cursor / Codex / 全部安装)
gitmemo init
# 或直接指定编辑器
gitmemo init --editor claude # 仅 Claude Code
gitmemo init --editor cursor # 仅 Cursor
gitmemo init --editor codex # 仅 Codex 日志捕获
gitmemo init --editor all # 全部支持的编辑器
# 指定语言(默认英文)
gitmemo init --lang zh # 中文界面
gitmemo init --lang en # 英文界面
# 链接到已有的本地 Git 仓库
gitmemo init --path /path/to/your/repo
按提示选择编辑器、输入 Git 仓库地址(可直接回车跳过,使用纯本地模式)。如需远程同步,将生成的 SSH 公钥添加到仓库的 Deploy Keys 即可。
完成初始化后
完成初始化后,对话、笔记和其他已支持来源会随工作流进入同步目录并写入 Git。在 Claude 或 Cursor 里输入 /save 可主动保存当前会话(需在 init 时已接入对应编辑器);自动保存也会在已支持工作流和你配置的规则下运行。对 Codex,在一次 Codex 会话后运行 gitmemo capture,或使用 Desktop 的捕获入口;GitMemo 会读取 Codex 本机的 ~/.codex/history.jsonl 与 session JSONL 文件。
Desktop 客户端
安装包下载:见上文 「安装」→「GitMemo Desktop(macOS / Windows)」,或直接打开 GitMemo 下载页。完成初始化后,打开 GitMemo Desktop,它会读取与 CLI 相同的同步目录(通常是 ~/.gitmemo)。
- 仪表盘:统计卡片、同步状态、最近动态 Feed、剪贴板监控指示器
- 全文搜索:跨对话、笔记、剪贴板、计划和配置搜索
- 剪贴板监控:支持文本和图片捕获,缩略图预览
- 系统通知:推送同步错误和剪贴板捕获
- Quick Paste:浮窗命令面板和可配置全局快捷键
- 系统托盘:快捷操作(打开/同步/剪贴板/退出)
- 诊断日志:与「检查更新」相关的条目带
[updater]前缀,写入应用日志文件gitmemo.log(macOS 一般在~/Library/Logs/下与应用相关的目录中;其他平台使用各自的应用日志位置) - Claude Code 和 Cursor 生成的 plans 都会导入到
plans/ - 当前桌面端安装包支持 macOS(Apple Silicon + Intel)和 Windows x64
- Desktop 日常使用不必开着终端;初始化可在应用内完成,也可用 CLI 执行
gitmemo init。CLI 还便于在终端里用gitmemo note、sync等命令
对话如何保存
GitMemo 现在有三条捕获路径:
- Claude Code:GitMemo 注入指令、PostToolUse hook、
/save和 MCP。Claude 会话可由 hook 保存,也可由gitmemo capture从日志导入。 - Cursor:GitMemo 使用 Cursor rules、skills 和 MCP 同步。安装保存技能后,可用
/save主动保存。 - Codex:GitMemo 不向 Codex 注入 hook 或
/save技能。Codex 本身会把会话写入~/.codex本机日志;gitmemo capture会把新增 Codex 会话导入到conversations/年-月/*.md。
如需只验证 Codex 捕获而不写文件,可在使用 Codex 后运行 gitmemo capture --dry-run。
AI 使用偏好如何同步
可以说 GitMemo 支持同步 AI 使用偏好,但更准确的表述是:GitMemo 同步的是用户写进已支持 AI 工具配置里的偏好与上下文文件,而不是模型内部不可见的状态。
例如,全局 CLAUDE.md 里可能写着中文沟通偏好、飞书 MCP 使用方式、GitMemo 工作规则、Prisma 安全红线、代码修改后的提交/推送习惯等。这类用户自定义的 AI 工作偏好,可以和 Claude memory、skills、项目记忆、Cursor rules、Cursor skills、MCP 配置一起进入 claude-config/ 与 cursor-config/。这些文件进入 GitMemo 仓库后,就可以被搜索、版本化、备份、跨设备同步,并在新机器或后续 AI 会话中重新作为上下文使用。
验证是否生效
# 快速测试 — 创建一条笔记
gitmemo note "hello world"
# 查看状态
gitmemo status
如果看到笔记文件和 git 提交记录,说明一切正常。
命令
gitmemo init # 初始化配置
gitmemo status # 查看配置与同步状态
gitmemo sync # 同步本地更改到 Git(commit + push)
gitmemo remote # 查看当前远程仓库
gitmemo remote <url> # 设置远程仓库(开启同步)
gitmemo remote --remove # 移除远程仓库(切换到纯本地模式)
gitmemo branch # 查看当前同步分支
gitmemo branch main # 切换同步分支为 "main"
gitmemo note "记个笔记" # 创建便签
gitmemo manual "标题" # 创建手册
gitmemo search "docker" # 全文搜索对话和笔记
gitmemo recent # 最近的对话
gitmemo capture # 导入 Claude Code 和 Codex session 日志
gitmemo stats # 统计信息
gitmemo unpushed # 查看未推送的提交
gitmemo reindex # 重建搜索索引
gitmemo uninstall # 移除配置(保留数据)
数据结构
~/.gitmemo/
├── conversations/ # 自动记录的 AI 对话;可选问答摘要(同为年-月子目录)
│ └── 2026-03/
│ └── 03-25-rust-async.md
├── notes/
│ ├── manual/ # 手册 & 调研文档
│ └── scratch/ # 便签
├── clips/ # 自动捕获的剪贴板内容
│ └── 2026-03-25/
├── plans/ # Plan Mode 的实施方案
├── imports/ # 拖拽导入的文件
├── claude-config/ # 与 Claude 同步的配置与记忆等
│ ├── CLAUDE.md # 全局 Claude 指令
│ ├── memory/ # Claude 的自动记忆
│ ├── skills/ # 自定义技能
│ ├── root-docs/ # Claude 根目录下的 Markdown 文档
│ └── projects/ # 项目级记忆
├── cursor-config/ # 与 Cursor 同步的 rules、skills、MCP 配置和文档
│ ├── rules/ # Cursor rules(.mdc)
│ ├── skills/ # Cursor skills
│ ├── root-docs/ # Cursor 根目录下的 Markdown 文档
│ ├── projects/ # 项目级 docs、references、specs
│ └── mcp.json # 已存在时同步的 Cursor MCP 配置
└── .metadata/ # 搜索索引(不同步)
主体知识内容为纯 Markdown 等文本,可用任意编辑器打开;.metadata/ 为本地配置与搜索索引,详见 Data & storage statement(数据与存储声明)。卸载后 Git 中的用户内容仍保留在仓库内。
自动捕获的内容
GitMemo 可在已支持工作流中捕获并整理 8 类知识产物:
| 类型 | 内容 | 存储位置 |
|---|---|---|
| 对话记录 | 每轮 AI 对话 | conversations/ |
| 计划文件 | Plan Mode 的实施方案 | plans/ |
| 调研报告 | 竞品分析、技术选型调研 | notes/manual/ |
| 设计文档 | 架构设计、API 设计 | notes/manual/ |
| 剪贴板 | 文本片段、代码、URL(自动) | clips/ |
| 导入文件 | 拖拽导入 — Markdown、代码、PDF | imports/ |
| AI 记忆 | Claude 的自动记忆和项目上下文 | claude-config/memory/、claude-config/projects/ |
| AI 偏好与规则 | 全局 CLAUDE.md、Cursor rules、MCP 配置、自定义 skills | claude-config/、cursor-config/ |
无需手动复制,无需导出按钮,已支持来源可自动流入同步目录并由 Git 跟踪。
支持的编辑器
| 编辑器 | 捕获机制 | Git 同步 | MCP |
|---|---|---|---|
| Claude Code | CLAUDE.md、hooks、/save、原生日志 | PostToolUse Hook + gitmemo capture | ~/.claude.json |
| Cursor | Cursor Rules(.mdc)与 skills | cds_sync MCP 工具 | ~/.cursor/mcp.json |
| Codex | ~/.codex 下的本机原生日志 | gitmemo capture | — |
工作原理
对 Claude Code、Cursor 和 Codex 的对话捕获链路,GitMemo 不依赖额外的同步守护进程,而是使用各自工具的原生机制:能接 hook/rules/MCP 的地方直接接入,Codex 则读取本机会话日志。
Claude Code:
| 注入点 | 作用 |
|---|---|
CLAUDE.md 指令 | 让 Claude 每次对话后自动保存为 Markdown |
settings.json Hook | 文件写入后自动 git commit && git push |
~/.claude/skills/save | /save 技能,便于显式触发「保存会话」 |
~/.claude/skills/gitmemo-session-log | 与 Cursor 相同:有实质内容的问答摘要写入 <同步目录>/conversations/年-月/(与自动会话同规则) |
| MCP Server | 让 Claude 能搜索历史对话、创建笔记 |
Cursor:
| 注入点 | 作用 |
|---|---|
~/.cursor/rules/gitmemo.mdc | 让 AI 每次对话后自动保存为 Markdown(init 始终写入该全局规则,含 alwaysApply: true,与是否只选 Claude Code 无关);对成篇产品规划/技术方案等,同一轮内主动写入 <同步目录>/notes/manual/,无需用户再说「保存」 |
~/.cursor/skills/save | 与 /save 技能说明,便于说「保存会话」时触发 |
~/.cursor/skills/gitmemo-session-log | 将有实质内容的问答摘要写入 <同步目录>/conversations/年-月/(与自动保存对话同一路径规则,不是当前项目仓库) |
cds_sync MCP 工具 | AI 保存文件后调用此工具触发 git 同步(仅当 init 时选择 Cursor 且未 --no-mcp) |
| MCP Server | 让 AI 能搜索历史对话、创建笔记 |
Codex:
| 注入点 | 作用 |
|---|---|
~/.codex/history.jsonl | 发现有新活动的 Codex 会话 |
~/.codex/sessions/年/月/日/*.jsonl | 将用户和 assistant 消息转换为 GitMemo 会话 Markdown |
gitmemo capture | 与 Claude Code 日志一起导入 Codex 会话,并提交到 Git |
| 不注入 Codex 配置 | Codex 支持只读 Codex 日志;GitMemo 不安装 Codex /save 技能 |
卸载
# 移除配置,保留数据
gitmemo uninstall
# 移除配置 + 删除所有数据
gitmemo uninstall --remove-data
开发
git clone https://github.com/sahadev/GitMemo.git
cd GitMemo
cargo build
cargo test
cargo run --help
特别贡献:语义逻辑建模
Semantic Logic Modeling Skill 对 GitMemo 的项目改造提供了特别贡献。它给出了一套可落地的方法,把复杂分支中的业务规则、UI 状态、编辑器接入判断、捕获流程和同步决策,拆成有名字的语义谓词、复合场景函数和受控结果函数。
这让 GitMemo 在几个方面明显受益:
- 逻辑更接近业务语言 - 条件判断更多通过
is...、has...、can...、should...、get...、resolve...等函数表达,而不是散落在组件里的长布尔表达式。 - React 表层更薄 - Desktop 页面和组件可以消费
desktop/src/components/domain/**下的领域逻辑,让组件主要负责布局与交互。 - 决策可以复用 - 剪贴板、Dashboard、文件工作区、AI 记录、初始化、设置和同步相关流程中的规则更容易沉淀为共享函数,减少重复判断。
- 更适合 AI 继续协作 - 显式、纯粹、可组合的逻辑结构,让后续 agent 或贡献者在修改行为前,更容易看懂每个分支代表的真实含义。
因此,GitMemo 的代码变得更语义化、更容易 review,也更容易扩展。复杂状态转换从分散的 UI 分支中被移到小而清晰的命名函数里,读代码时不再需要在脑中反复执行每一个条件,才能理解系统意图。
许可证
MIT