# Agent Seesion **Repository Path**: ddusen/agent-session ## Basic Information - **Project Name**: Agent Seesion - **Description**: 把本机的 Claude Code 历史会话,以及 Codex 历史会话,定时同步到本地归档目录,并通过 Web 页面登录查看、搜索。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-04-20 - **Last Updated**: 2026-06-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Agent Session 把本机 `~/.claude/projects/` 下的 Claude Code 历史会话,以及 `~/.codex/sessions/` 下的 Codex 历史会话,定时同步到本地归档目录,并通过 Web 页面登录查看、搜索。 - 端口:**8005** - 后端:Go + Gin + SQLite(含 FTS5 全文索引) - 前端:Vue 3 + Naive UI + Vite(简约深色风格) - 登录:配置用户名 / 密码 + JWT - 同步:启动全量 + 定时增量(按文件 size+mtime 判断变动) - 来源:支持 Claude Code / Codex 过滤 ## 一键启动 ```bash # 1. 构建前端到 backend/webdist(由 Go embed 打包) cd web pnpm install # 或 npm install pnpm build # 2. 跑后端 cd ../backend cp ../config.yaml.example ../config.yaml # 首次运行 # 改 ../config.yaml 里的 auth.username / auth.password go run . ``` 打开 http://127.0.0.1:8005 登录。 ## 开发模式 分开跑前后端(前端 5173 通过代理访问后端 8005): ```bash # 终端 1: 后端 cd backend && go run . # 终端 2: 前端 cd web && pnpm dev ``` ## 配置项(config.yaml) - `server.port` — HTTP 端口(默认 8005) - `server.jwt_secret` — 留空会自动生成 - `auth.username / password` — 登录凭据(明文,仅本机用) - `storage.source_dir` — Claude Code 会话目录,默认 `~/.claude/projects` - `storage.codex_source_dir` — Codex 会话目录,默认 `~/.codex/sessions` - `storage.data_dir` — 本地归档目录,默认 `./data` - `sync.interval_seconds` — 定时同步间隔;`0` 只同步一次 - `sync.on_startup` — 启动时是否先跑一次全量 ## 目录约定 ``` data/ ├── index.db # SQLite 索引(会话元数据 + 消息 FTS) ├── projects/ └── / └── .jsonl # 原文件完整拷贝,永久留存 └── codex/ └── sessions/ └── YYYY/MM/DD/rollout-*.jsonl ``` ## 说明 - 同步按文件 `size + mtime` 判断变化,已归档且无变化的会话不会重复解析 - 搜索优先用 FTS5(支持空格多词前缀匹配),失败 fallback 到 LIKE - Claude Code 解析 user/assistant 文本、图片和 tool_use/tool_result - Codex 解析 user/assistant 文本、图片、function_call/custom_tool_call/web_search_call,jsonl 原文仍保留在归档目录