GitMemo README

Project README

This page renders the repository README content as static HTML so users, search engines, and AI crawlers can read the canonical product and installation details without inferring them from the landing page.

GitMemo

License: MIT GitHub Release GitHub Issues

English | 中文

简介

你的 AI 对话与笔记,自动同步到 Git。 GitMemo 帮你把 AI 对话、笔记和日常工作产物沉淀成一个由 Git 管理的个人知识库。

它提供 CLI 和 Desktop 两种使用形态,并以本地优先的方式服务 Claude Code、Cursor 和 Codex 用户。

特性

  • Git 支撑的知识库 — AI 对话、笔记和日常工作产物汇入同一目录,由 Git 管理;远程同步始终可选
  • 面向已支持 AI 工具的对话捕获 — Claude Code 和 Cursor 使用规则、技能、hooks 与 MCP;Codex 会话通过 gitmemo capture 从本机原生日志导入
  • 搜索与复用 — 通过 CLI、Desktop 或 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 Desktop(macOS)— 图形界面优先

  1. 下载:打开 GitHub Releases · Latest,在 Assets 中下载 桌面端安装包:
    • 优先选 .dmg(拖拽安装到「应用程序」);或
    • .app.tar.gz(解压后得到 .app,具体文件名随版本变化,认准 desktop / GitMemo 相关资源即可)。
      Linux / Windows:当前仓库 不提供 Desktop 安装包;请使用下方 CLI 安装(Linux 支持 CLI)。
  2. 首次设置:先完成一次初始化——可在 GitMemo Desktop 里按界面引导完成;若你更习惯终端,也可安装下方 CLI 后执行 gitmemo init。完成后会生成 ~/.gitmemo 并可选接入 Claude / Cursor 或启用 Codex 日志捕获。之后日常可主要用 Desktop 做浏览、搜索与剪贴板。

macOS Desktop 说明:当前发布的 Desktop 安装包已经完成签名,正常情况下直接通过发布页提供的 .dmg.app.tar.gz 安装即可。若你的机器仍然拦截启动,应视为少数环境相关异常,而不是标准安装流程的一部分。

CLI 安装(macOS / Linux)

一键安装脚本(同时包含 gitmemo CLI,并可在脚本流程中安装/更新相关组件):

# 一键安装(自动检测平台)
bash <(curl -fsSL https://github.com/sahadev/GitMemo/raw/main/scripts/install.sh)
<details> <summary>手动下载 CLI / 从源码编译</summary>

Releases · LatestAssets 中下载对应平台的 CLI 二进制(如 gitmemo-macos-aarch64),然后:

chmod +x gitmemo-macos-aarch64
sudo mv gitmemo-macos-aarch64 /usr/local/bin/gitmemo

或从源码编译(需要 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。在 ClaudeCursor 里输入 /save 可主动保存当前会话(需在 init 时已接入对应编辑器);自动保存也会在已支持工作流和你配置的规则下运行。对 Codex,在一次 Codex 会话后运行 gitmemo capture,或使用 Desktop 的捕获入口;GitMemo 会读取 Codex 本机的 ~/.codex/history.jsonl 与 session JSONL 文件。

Desktop 客户端

安装包下载:见上文 「安装」→「GitMemo Desktop(macOS)」,直达 Releases · Latest。完成初始化后,打开 GitMemo Desktop,它会读取与 CLI 相同的同步目录(通常是 ~/.gitmemo)。

  • 仪表盘:统计卡片、同步状态、最近动态 Feed、剪贴板监控指示器
  • 全文搜索:跨对话、笔记、剪贴板、计划和配置搜索
  • 剪贴板监控:支持文本和图片捕获,缩略图预览
  • 系统通知:通过 macOS 通知中心推送同步错误和剪贴板捕获(仅后台)
  • Quick Paste:浮窗命令面板(Cmd+Shift+Space)
  • 系统托盘:快捷操作(打开/同步/剪贴板/退出)
  • 诊断日志:与「检查更新」相关的条目带 [updater] 前缀,写入应用日志文件 gitmemo.log(macOS 一般在 ~/Library/Logs/ 下与应用相关的目录中;也可用「控制台」搜索 GitMemo)
  • Claude Code 和 Cursor 生成的 plans 都会导入到 plans/
  • 当前桌面端安装包仅支持 macOS(Apple Silicon + Intel)
  • Desktop 日常使用不必开着终端;初始化可在应用内完成,也可用 CLI 执行 gitmemo init。CLI 还便于在终端里用 gitmemo notesync 等命令

对话如何保存

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

验证是否生效

# 快速测试 — 创建一条笔记
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 daily              # 今日笔记
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/
│   ├── daily/              # 每日笔记
│   ├── manual/             # 手册 & 调研文档
│   └── scratch/            # 便签
├── clips/                  # 自动捕获的剪贴板内容
│   └── 2026-03-25/
├── plans/                  # Plan Mode 的实施方案
├── imports/                # 拖拽导入的文件
├── claude-config/          # 与 Claude 同步的配置与记忆等
│   ├── CLAUDE.md           # 全局 Claude 指令
│   ├── memory/             # Claude 的自动记忆
│   ├── skills/             # 自定义技能
│   └── projects/           # 项目级记忆
└── .metadata/              # 搜索索引(不同步)

主体知识内容为纯 Markdown 等文本,可用任意编辑器打开;.metadata/ 为本地配置与搜索索引,详见 Data & storage statement(数据与存储声明)。卸载后 Git 中的用户内容仍保留在仓库内。

自动捕获的内容

GitMemo 可在已支持工作流中捕获并整理 8 类知识产物

类型内容存储位置
对话记录每轮 AI 对话conversations/
计划文件Plan Mode 的实施方案plans/
调研报告竞品分析、技术选型调研notes/manual/
设计文档架构设计、API 设计notes/manual/
剪贴板文本片段、代码、URL(自动)clips/
导入文件拖拽导入 — Markdown、代码、PDFimports/
AI 记忆Claude 的自动记忆和项目上下文claude-config/memory/
技能与配置自定义技能、CLAUDE.md 指令claude-config/skills/

无需手动复制,无需导出按钮,已支持来源可自动流入同步目录并由 Git 跟踪。

支持的编辑器

编辑器捕获机制Git 同步MCP
Claude CodeCLAUDE.md、hooks、/save、原生日志PostToolUse Hook + gitmemo capture~/.claude.json
CursorCursor Rules(.mdc)与 skillscds_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

许可证

MIT