内容
width="1672" height="941" alt="ChatGPT Image 26 Nis 2026 04_48_05" src="https://github.com/user-attachments/assets/c73148df-9b73-4a1f-95a0-493fd87393d3" />
# 代码记忆体 SQLite MCP
本地优先的长期记忆,用于 Codex 会话,由 SQLite 支持并通过 MCP 公开。
它记录 Codex 钩子事件,导入现有的 Codex JSONL 历史记录,默认隐藏可见的机密,并允许 Codex 通过记忆工具搜索以前的会话。
## 为什么
Codex 在单个会话中非常有用,但有用的上下文通常在会话之间消失:
- 以前的项目决策
- 修复问题的命令
- 旧调试会话的终端输出
- 早期的提示和助手响应
- 会话级存储和令牌使用
此软件包将本地 Codex 历史记录转换为可搜索的记忆。
## 功能
- SQLite 支持的本地记忆
- 使用 `codex-memory setup` 的一键设置
- Codex 钩子捕获
- 现有历史记录/会话导入
- 用于搜索、最近记录、会话、统计信息、会话信息和删除的 MCP 工具
- 默认静默钩子
- 工具调用和终端输出的可选详细捕获
- FTS5 全文搜索
- 默认隐藏可见机密
- 默认禁用原始有效负载存储
- 使用 `tiktoken` 的可选令牌计数
## 快速入门
```powershell
py -m pip install -e .[dev]
codex-memory setup --global
```
设置完成后重启 Codex。
`setup` 创建配置文件/数据库,导入现有的 Codex 历史记录,安装静默钩子,启用 Codex 钩子,并注册 MCP 服务器。
对于 macOS/Linux,请使用 `python` 代替 `py`:
```bash
python -m pip install -e .[dev]
codex-memory setup --global
```
可选令牌支持:
```bash
python -m pip install -e .[dev,tokens]
```
## 命令行界面
```powershell
codex-memory setup --global
codex-memory import
codex-memory recent --limit 20
codex-memory search "sqlite migration"
codex-memory session-info <session-id>
codex-memory delete-session <session-id> --yes
codex-memory stats
codex-memory uninstall --global
```
有用的设置标志:
```powershell
codex-memory setup --global --skip-import
codex-memory setup --global --detailed
codex-memory setup --global --no-stop
```
仅在需要实时逐工具捕获时使用 `--detailed`。默认模式记录会话开始、用户提示和助手最终消息,而不记录嘈杂的逐步骤钩子状态消息。
## MCP 工具
设置后,Codex 可以使用这些工具:
- `memory_recent` - 最新记录
- `memory_search` - 关键字搜索,可选筛选器
- `memory_by_date` - 指定日期或时间范围的记录
- `memory_sessions` - 已知的 Codex 会话
- `memory_get_session` - 会话的记录
- `memory_session_info` - 记录数量、估计存储和令牌使用
- `memory_delete_session` - 删除会话及其记录;需要 `confirm=true`
- `memory_stats` - 聚合数据库统计信息
列表样式响应默认为 `format="toon"`;大多数工具也接受 `format="json"`。
Codex 的示例提示:
```text
在我的记忆中搜索关于 SQLite 架构的最后一次讨论。
```
```text
查找提及 pytest 失败的先前终端输出。
```
```text
在删除此会话之前,显示会话信息。
```
## 存储
默认数据库:
```text
~/.codex/memories/codex-memory.sqlite
```
默认配置文件:
```text
~/.codex/memories/codex-memory.toml
```
默认配置:
```toml
raw_payloads = false
max_visible_chars = 200000
```
环境变量覆盖:
- `CODEX_HOME`
- `CODEX_MEMORY_DB`
- `CODEX_MEMORY_CONFIG`
- `CODEX_MEMORY_RAW_PAYLOADS`
## 隐私
默认行为是保守的:
- 记忆存储在本地 SQLite 中
- 可见文本在存储前会被隐藏
- 除非 `raw_payloads = true`,否则不会存储原始钩子有效负载
- 长记录会被 `max_visible_chars` 截断
- edit/write/apply_patch 样式工具内容会被总结,而不是存储完整补丁
隐藏程序涵盖常见的令牌/密码/API 密钥模式,但它不是正式的安全边界。如果您不希望将机密存储在任何地方,请避免将机密粘贴到 Codex 中。
## 故障排除
Codex 无法看到工具:
```powershell
codex-memory setup --global
```
然后重启 Codex。
钩子未记录:
```powershell
codex-memory stats
```
钩子失败是 fail-open 的,并记录在:
```text
~/.codex/memories/codex-memory-hook.log
```
## 开发
```powershell
py -m pip install -e .[dev]
pytest
```
软件包元数据位于 `pyproject.toml` 中。
## 路线图
- 语义搜索
- 记忆摘要/事实层
- 清除/导出命令
- 加密数据库选项
- PyPI 发布
- CI 工作流
## 许可证
在广泛采用之前添加许可证。MIT 或 Apache-2.0 是不错的默认选择。