Files

146 lines
3.9 KiB
Markdown
Raw Permalink Normal View History

# Chat Vault Monorepo
AI 聊天记录集中存储与管理平台。
## 项目概述
本项目是一个 monorepo,包含 AI 聊天记录同步工具及相关基础设施。核心功能是将多个 AI CLI 工具(Codex、Kiro、Gemini、Claude)的聊天记录统一存储到 SQLite 数据库。
## 功能特性
- 多 CLI 支持:Codex、Kiro、Gemini、Claude
- 实时监控:基于 watchdog 的文件变更检测
- Token 统计:使用 tiktoken (cl100k_base) 精确计数
- 搜索导出:支持关键词搜索、JSON/CSV 导出
- 零配置:自动检测默认路径,开箱即用
## 快速开始
### 环境要求
- Python 3.8+
- Linux / macOS / Windows (WSL)
### 启动服务
```bash
cd services/chat-vault
# Linux/macOS
./start.sh
# Windows
start.bat
```
首次运行会自动创建虚拟环境并安装依赖。
## 目录结构
```
chat-vault/
├── services/
│ └── chat-vault/ # 核心同步服务
│ ├── src/
│ │ ├── main.py # CLI 入口
│ │ ├── config.py # 配置与路径检测
│ │ ├── storage.py # SQLite 存储
│ │ ├── watcher.py # 文件监控
│ │ └── parsers/ # 各 CLI 解析器
│ ├── docs/ # 服务文档
│ ├── scripts/ # 辅助脚本
│ ├── requirements.txt
│ ├── start.sh
│ └── .env.example
├── libs/
│ ├── common/ # 共享库(预留)
│ ├── database/ # 数据库工具(预留)
│ └── external/ # 外部依赖入口(不提交整份第三方源码)
├── monitoring/
│ ├── grafana/ # Grafana 配置
│ ├── prometheus/ # Prometheus 配置(预留)
│ └── alertmanager/ # 告警配置(预留)
├── scripts/ # 全局脚本
│ ├── build_all.sh
│ ├── test_all.sh
│ └── deploy.sh
├── docs/ # 全局文档
├── AGENTS.md
├── README.md
└── LICENSE
```
外部监控工具(例如 btop)按需通过系统包管理器、官方仓库或 Git submodule 引入,不在本仓库内直接提交完整源码镜像。
## 常用命令
`services/chat-vault/` 目录下执行:
| 命令 | 说明 |
|------|------|
| `python src/main.py` | 同步一次 |
| `python src/main.py -w` | 持续监控模式 |
| `python src/main.py --stats` | 显示统计信息 |
| `python src/main.py --search "关键词"` | 搜索消息 |
| `python src/main.py --export json` | 导出 JSON |
| `python src/main.py --export csv --source codex` | 导出指定来源 |
| `python src/main.py --prune` | 清理孤立记录 |
## 配置说明
### 环境变量(可选)
参考 `services/chat-vault/.env.example`
```bash
# 自定义路径(逗号分隔多个)
CODEX_PATHS=~/.codex/sessions
KIRO_PATHS=~/.local/share/kiro-cli
GEMINI_PATHS=~/.gemini/tmp
CLAUDE_PATHS=~/.claude
# WSL 路径支持
CODEX_PATHS=\\wsl.localhost\Ubuntu\home\user\.codex\sessions
```
默认自动检测以下路径:
- Codex: `~/.codex/sessions`, `~/.codex`
- Kiro: `~/.local/share/kiro-cli`
- Gemini: `~/.gemini/tmp`, `~/.gemini`
- Claude: `~/.claude`
### 输出位置
- 数据库:`services/chat-vault/output/chat_history.db`
- 日志:`services/chat-vault/output/logs/`
## 数据库结构
详见 `services/chat-vault/docs/schema.md`
主表 `sessions`
- `file_path` (PK): 源文件路径
- `session_id`: 会话 ID
- `source`: 来源 (codex/kiro/gemini/claude)
- `messages`: JSON 消息数组
- `token_count`: Token 数量
## FAQ
**Q: 需要配置吗?**
A: 不需要,自动检测默认路径。
**Q: 支持 WSL 吗?**
A: 支持,`\\wsl.localhost\Ubuntu\...` 格式路径会自动转换。
**Q: 数据安全吗?**
A: 只读取 AI 工具的文件,不修改原始数据。
## 贡献
欢迎提交 Issue 和 Pull Request。
## 许可证
MIT License