144 lines
3.7 KiB
Markdown
144 lines
3.7 KiB
Markdown
# 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
|
||
```
|
||
|
||
## 常用命令
|
||
|
||
在 `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
|