# session-importer **Repository Path**: ketty9527/session-importer ## Basic Information - **Project Name**: session-importer - **Description**: 把本机 Claude Code 和 Codex 的会话归档到本地 MySQL,做使用习惯分析。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-06 - **Last Updated**: 2026-07-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Session Importer 把本机 Claude Code 和 Codex 的会话归档到本地 MySQL,做使用习惯分析。 ## 设计 - 只读扫描 `~/.claude/projects/**/*.jsonl` 和 `~/.codex/sessions/**/*.jsonl` - 按 `(source, session_id, machine)` 唯一键 + 文件 mtime 做增量 - 五张表:sessions / events / messages / tool_calls / base_instructions - 多机汇总靠 `SESSION_IMPORT_MACHINE` 环境变量区分 ## 环境变量 | 变量 | 默认 | 说明 | |---|---|---| | `SESSION_IMPORT_MACHINE` | (必填) | 机器标识,如 `work-laptop` / `home-desktop` | | `SESSION_DB_HOST` | `127.0.0.1` | MySQL 地址 | | `SESSION_DB_PORT` | `3306` | MySQL 端口 | | `SESSION_DB_USER` | `root` | MySQL 用户 | | `SESSION_DB_PASSWORD` | `root` | MySQL 密码 | | `SESSION_DB_NAME` | `ai_session_archive` | 数据库名 | | `CLAUDE_PROJECTS_ROOT` | `~/.claude/projects` | Claude 会话目录 | | `CODEX_SESSIONS_ROOT` | `~/.codex/sessions` | Codex 会话目录 | ## 用法 ```bash # 初次建库建表 python importer.py --init-db # 干跑 5 个会话,只解析不入库 python importer.py --dry-run --limit 5 # 小批量入库 10 个 python importer.py --limit 10 # 全量入库(幂等,再跑会跳过未变化的文件) python importer.py # 生成分析报告(markdown,落到 .reports/ 下) python analysis/report.py # 生成可视化报告(自包含 HTML,可离线分享,落到 .reports/ 下) python analysis/report_html.py ``` ## 新机器部署 家里电脑解压后,按下面步骤即可开始工作(数据库已手动导过去的前提下): ```bash # 1. 装依赖(纯 Python 驱动,无需编译) pip install -r requirements.txt # 2. 设机器标识(区分多机数据,必填) export SESSION_IMPORT_MACHINE=home-desktop # Windows: set SESSION_IMPORT_MACHINE=home-desktop # 3. 如果库还没建,先建表;已手动导入则跳过 python importer.py --init-db # 4. 增量入库本机新产生的会话 python importer.py # 5. 出可视化报告 python analysis/report_html.py ``` 数据库连接默认 `127.0.0.1:3306` root/root,库名 `ai_session_archive`。若家里环境不同,用上表的环境变量覆盖。多机数据靠 `machine` 列区分,`machine_compare` 维度会自动出跨机对比。 ## 文件结构 ``` session-importer/ ├── README.md ├── requirements.txt ├── schema.sql ├── importer.py ├── config.py ├── db.py ├── parsers/ │ ├── __init__.py │ ├── claude.py │ └── codex.py ├── analysis/ │ ├── queries.sql │ ├── report.py # markdown 报告 │ └── report_html.py # 自包含 HTML 报告 └── .reports/ # 生成的报告(打包时不含,运行后生成) ```