Skip to content

Repository files navigation

CC Reader

CLI 对话历史本地查看器。支持 Claude Code~/.claude/projects/)、TRAE CLI~/.trae/cli/sessions/)和 Codex CLI~/.codex/sessions/)—— 把枯燥的 JSONL 日志变成浏览器里可以舒适阅读的对话界面。

纯本地运行,不上传任何数据,不需要联网,不需要 API Key。


✨ 功能一览

功能说明
多 CLI 切换左上角按 Codex CLI / Claude Code / TRAE CLI 顺序切换,Codex 与 Claude 使用各自品牌图标,状态独立
Markdown 渲染代码块、表格、链接、引用与多级列表完整支持;常见 TUI 项目符号会保守规范化,围栏代码保持原样
一键复制代码块和用户消息框提供悬停复制按钮,便于复用提示词与片段
LaTeX 公式通过 KaTeX 渲染行内与块级数学公式
图片显示Claude 会话里粘贴的图片自动渲染(按需流式加载,可点开原图)
工具调用展示可折叠查看 Read / Bash / Edit / Write 等工具的输入参数与输出结果
三主题切换浅紫 / 浅蓝 / 暗色,顶栏弹出式选择器一键切换,平滑过渡,刷新后保持选择
收藏夹侧栏“收藏”分组与会话悬停操作支持快速星标,按 CLI 隔离持久化到 ~/.cc-reader/favorites/,重建或端口变化后仍保留
删除会话SessionItem 上的垃圾桶按钮,inline 二次确认后真删本地 jsonl,并同步移除收藏
会话搜索侧栏按路径或对话标题实时搜索,自动过滤并展开匹配项
准确提问计数左侧会话条目的数量只统计解析后的真实用户提问,不把助手回复、工具结果或系统事件误算为提问
轮分页长会话首屏只加载最近 10 轮,右侧"加载更早 10 轮"按需向上扩展,避免卡顿
Recent 加载更多左栏 Recent 默认显示 5 条,"显示更多"按钮每次 +5
实时更新正在进行的对话会自动追加并合并同一轮的流式分段;左上刷新按钮会安全重读已打开会话
多标签页同时打开多个会话,使用独立填充/描边状态像浏览器一样切换
问题快速跳转右侧大纲一键跳到任意提问,点击后保持选中态;关键轮次可标记、重命名并只看标记,数据按 CLI / 项目 / 会话隔离保存
字体大小调节默认 14px,工具栏按钮或 Ctrl/Cmd + +/- 调整,设置自动保存
阅读宽度工具栏宽度选择器:窄 / 适中 / 宽 / 全宽 4 档,按个人显示器与字号选最舒服的,刷新后保持
隐藏工具输出工具栏眼睛按钮一键折叠/展示工具调用气泡,专注阅读对话
交互式使用教程标题栏“使用教程”提供 10 步真实界面导览:背景遮罩、镂空高亮、进度跳转与缺失区域示意,不会自动切换 CLI 或修改会话数据
克制动效消息淡入与操作反馈保留轻量过渡,左右侧栏以宽度、透明度和轻位移联动展开;标题栏和标签页不做悬浮弹跳,并尊重「减少动效」无障碍设置

键盘快捷键

快捷键功能
Ctrl/Cmd + =放大字体
Ctrl/Cmd + -缩小字体
教程中 / 上一步 / 下一步
教程中 Esc退出使用教程

📦 安装与运行

环境要求

  • Node.js 18 或更高(node -v 查看)
  • Claude CodeTRAE CLICodex CLI(至少一个)—— 对话历史分别存储在 ~/.claude/projects/~/.trae/cli/sessions/~/.codex/sessions/
  • 支持 macOS / Linux / Windows

安装

git clone https://github.com/Wkingxc/cc-reader.git
cd cc-reader
npm install

浏览器启动

npm start

这一条命令会自动完成 构建前端 → 启动服务 → 打开浏览器。终端会打印实际地址:

CC Reader running at http://127.0.0.1:3456

浏览器会自动弹出该地址;若没有自动打开,手动复制到浏览器即可。左侧选一个会话即可开始阅读。

端口 3456 被占用时会自动顺延到下一个空闲端口(以终端打印为准),也可手动指定:PORT=8080 npm start。 调试时不想自动打开/抢占浏览器窗口,可设置:CC_READER_OPEN=0 npm start

本工具读取的是当前用户主目录下的私密对话记录,默认只监听 127.0.0.1,请勿直接暴露到公网。如需远程使用,建议通过 SSH 端口转发(ssh -L 3456:127.0.0.1:3456 user@host)访问。

桌面应用启动

npm run desktop

这一条命令会构建前端、编译本地服务和 Electron 入口,然后打开独立的 CC Reader 桌面窗口。桌面版仍然只读取本机 ~/.claude~/.trae/cli/sessions~/.codex/sessions,不会上传数据。

需要生成本机可运行的 macOS .app 目录时:

npm run desktop:pack

产物默认在 release/mac-arm64/CC Reader.app。当前脚本生成的是本地预览包,不做 Apple Developer ID 签名和公证。

需要发给别人试用时,建议生成 .dmg

npm run desktop:dmg

产物默认在 release/CC Reader-1.0.0-arm64.dmg。当前 DMG 仍是未签名预览包,首次打开可能需要用户右键打开或在系统设置里允许。


🛠 开发模式

获得前端热更新 + 后端自动重启:

npm run dev
  • 前端 dev server:http://localhost:5173(含热更新,开发时访问这个)
  • 后端 API:http://localhost:3456(前端通过 Vite 代理转发 /api/ws

可用脚本

命令作用
npm start构建前端并启动服务(生产模式,单端口同时提供 API 与页面)
npm run dev前端热更新 + 后端自动重启(开发模式)
npm run build仅构建前端到 dist/
npm run build:server编译后端到 dist-server/(桌面打包使用)
npm run build:electron编译 Electron 入口到 dist-electron/
npm test运行服务端测试与前端纯逻辑回归测试
npm run server仅启动后端服务(需先 npm run build
npm run desktop构建并启动 Electron 桌面窗口
npm run desktop:pack构建 Electron 本地 .app 预览包
npm run desktop:dmg构建用于分享试用的 macOS DMG 预览包

技术栈:React 18 · Vite · Tailwind CSS 3 · TypeScript · Express · ws · chokidar · KaTeX · Electron

About

A beautiful local web viewer for Claude Code conversation history.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - Wkingxc/cc-reader: A beautiful local web viewer for Claude Code conversation history. · GitHub
Skip to content

Repository files navigation

CC Reader

CLI 对话历史本地查看器。支持 Claude Code~/.claude/projects/)、TRAE CLI~/.trae/cli/sessions/)和 Codex CLI~/.codex/sessions/)—— 把枯燥的 JSONL 日志变成浏览器里可以舒适阅读的对话界面。

纯本地运行,不上传任何数据,不需要联网,不需要 API Key。


✨ 功能一览

功能说明
多 CLI 切换左上角按 Codex CLI / Claude Code / TRAE CLI 顺序切换,Codex 与 Claude 使用各自品牌图标,状态独立
Markdown 渲染代码块、表格、链接、引用与多级列表完整支持;常见 TUI 项目符号会保守规范化,围栏代码保持原样
一键复制代码块和用户消息框提供悬停复制按钮,便于复用提示词与片段
LaTeX 公式通过 KaTeX 渲染行内与块级数学公式
图片显示Claude 会话里粘贴的图片自动渲染(按需流式加载,可点开原图)
工具调用展示可折叠查看 Read / Bash / Edit / Write 等工具的输入参数与输出结果
三主题切换浅紫 / 浅蓝 / 暗色,顶栏弹出式选择器一键切换,平滑过渡,刷新后保持选择
收藏夹侧栏“收藏”分组与会话悬停操作支持快速星标,按 CLI 隔离持久化到 ~/.cc-reader/favorites/,重建或端口变化后仍保留
删除会话SessionItem 上的垃圾桶按钮,inline 二次确认后真删本地 jsonl,并同步移除收藏
会话搜索侧栏按路径或对话标题实时搜索,自动过滤并展开匹配项
准确提问计数左侧会话条目的数量只统计解析后的真实用户提问,不把助手回复、工具结果或系统事件误算为提问
轮分页长会话首屏只加载最近 10 轮,右侧"加载更早 10 轮"按需向上扩展,避免卡顿
Recent 加载更多左栏 Recent 默认显示 5 条,"显示更多"按钮每次 +5
实时更新正在进行的对话会自动追加并合并同一轮的流式分段;左上刷新按钮会安全重读已打开会话
多标签页同时打开多个会话,使用独立填充/描边状态像浏览器一样切换
问题快速跳转右侧大纲一键跳到任意提问,点击后保持选中态;关键轮次可标记、重命名并只看标记,数据按 CLI / 项目 / 会话隔离保存
字体大小调节默认 14px,工具栏按钮或 Ctrl/Cmd + +/- 调整,设置自动保存
阅读宽度工具栏宽度选择器:窄 / 适中 / 宽 / 全宽 4 档,按个人显示器与字号选最舒服的,刷新后保持
隐藏工具输出工具栏眼睛按钮一键折叠/展示工具调用气泡,专注阅读对话
交互式使用教程标题栏“使用教程”提供 10 步真实界面导览:背景遮罩、镂空高亮、进度跳转与缺失区域示意,不会自动切换 CLI 或修改会话数据
克制动效消息淡入与操作反馈保留轻量过渡,左右侧栏以宽度、透明度和轻位移联动展开;标题栏和标签页不做悬浮弹跳,并尊重「减少动效」无障碍设置

键盘快捷键

快捷键功能
Ctrl/Cmd + =放大字体
Ctrl/Cmd + -缩小字体
教程中 / 上一步 / 下一步
教程中 Esc退出使用教程

📦 安装与运行

环境要求

  • Node.js 18 或更高(node -v 查看)
  • Claude CodeTRAE CLICodex CLI(至少一个)—— 对话历史分别存储在 ~/.claude/projects/~/.trae/cli/sessions/~/.codex/sessions/
  • 支持 macOS / Linux / Windows

安装

git clone https://github.com/Wkingxc/cc-reader.git
cd cc-reader
npm install

浏览器启动

npm start

这一条命令会自动完成 构建前端 → 启动服务 → 打开浏览器。终端会打印实际地址:

CC Reader running at http://127.0.0.1:3456

浏览器会自动弹出该地址;若没有自动打开,手动复制到浏览器即可。左侧选一个会话即可开始阅读。

端口 3456 被占用时会自动顺延到下一个空闲端口(以终端打印为准),也可手动指定:PORT=8080 npm start。 调试时不想自动打开/抢占浏览器窗口,可设置:CC_READER_OPEN=0 npm start

本工具读取的是当前用户主目录下的私密对话记录,默认只监听 127.0.0.1,请勿直接暴露到公网。如需远程使用,建议通过 SSH 端口转发(ssh -L 3456:127.0.0.1:3456 user@host)访问。

桌面应用启动

npm run desktop

这一条命令会构建前端、编译本地服务和 Electron 入口,然后打开独立的 CC Reader 桌面窗口。桌面版仍然只读取本机 ~/.claude~/.trae/cli/sessions~/.codex/sessions,不会上传数据。

需要生成本机可运行的 macOS .app 目录时:

npm run desktop:pack

产物默认在 release/mac-arm64/CC Reader.app。当前脚本生成的是本地预览包,不做 Apple Developer ID 签名和公证。

需要发给别人试用时,建议生成 .dmg

npm run desktop:dmg

产物默认在 release/CC Reader-1.0.0-arm64.dmg。当前 DMG 仍是未签名预览包,首次打开可能需要用户右键打开或在系统设置里允许。


🛠 开发模式

获得前端热更新 + 后端自动重启:

npm run dev
  • 前端 dev server:http://localhost:5173(含热更新,开发时访问这个)
  • 后端 API:http://localhost:3456(前端通过 Vite 代理转发 /api/ws

可用脚本

命令作用
npm start构建前端并启动服务(生产模式,单端口同时提供 API 与页面)
npm run dev前端热更新 + 后端自动重启(开发模式)
npm run build仅构建前端到 dist/
npm run build:server编译后端到 dist-server/(桌面打包使用)
npm run build:electron编译 Electron 入口到 dist-electron/
npm test运行服务端测试与前端纯逻辑回归测试
npm run server仅启动后端服务(需先 npm run build
npm run desktop构建并启动 Electron 桌面窗口
npm run desktop:pack构建 Electron 本地 .app 预览包
npm run desktop:dmg构建用于分享试用的 macOS DMG 预览包

技术栈:React 18 · Vite · Tailwind CSS 3 · TypeScript · Express · ws · chokidar · KaTeX · Electron

About

A beautiful local web viewer for Claude Code conversation history.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - Wkingxc/cc-reader: A beautiful local web viewer for Claude Code conversation history. · GitHub
Skip to content

Repository files navigation

CC Reader

CLI 对话历史本地查看器。支持 Claude Code~/.claude/projects/)、TRAE CLI~/.trae/cli/sessions/)和 Codex CLI~/.codex/sessions/)—— 把枯燥的 JSONL 日志变成浏览器里可以舒适阅读的对话界面。

纯本地运行,不上传任何数据,不需要联网,不需要 API Key。


✨ 功能一览

功能说明
多 CLI 切换左上角按 Codex CLI / Claude Code / TRAE CLI 顺序切换,Codex 与 Claude 使用各自品牌图标,状态独立
Markdown 渲染代码块、表格、链接、引用与多级列表完整支持;常见 TUI 项目符号会保守规范化,围栏代码保持原样
一键复制代码块和用户消息框提供悬停复制按钮,便于复用提示词与片段
LaTeX 公式通过 KaTeX 渲染行内与块级数学公式
图片显示Claude 会话里粘贴的图片自动渲染(按需流式加载,可点开原图)
工具调用展示可折叠查看 Read / Bash / Edit / Write 等工具的输入参数与输出结果
三主题切换浅紫 / 浅蓝 / 暗色,顶栏弹出式选择器一键切换,平滑过渡,刷新后保持选择
收藏夹侧栏“收藏”分组与会话悬停操作支持快速星标,按 CLI 隔离持久化到 ~/.cc-reader/favorites/,重建或端口变化后仍保留
删除会话SessionItem 上的垃圾桶按钮,inline 二次确认后真删本地 jsonl,并同步移除收藏
会话搜索侧栏按路径或对话标题实时搜索,自动过滤并展开匹配项
准确提问计数左侧会话条目的数量只统计解析后的真实用户提问,不把助手回复、工具结果或系统事件误算为提问
轮分页长会话首屏只加载最近 10 轮,右侧"加载更早 10 轮"按需向上扩展,避免卡顿
Recent 加载更多左栏 Recent 默认显示 5 条,"显示更多"按钮每次 +5
实时更新正在进行的对话会自动追加并合并同一轮的流式分段;左上刷新按钮会安全重读已打开会话
多标签页同时打开多个会话,使用独立填充/描边状态像浏览器一样切换
问题快速跳转右侧大纲一键跳到任意提问,点击后保持选中态;关键轮次可标记、重命名并只看标记,数据按 CLI / 项目 / 会话隔离保存
字体大小调节默认 14px,工具栏按钮或 Ctrl/Cmd + +/- 调整,设置自动保存
阅读宽度工具栏宽度选择器:窄 / 适中 / 宽 / 全宽 4 档,按个人显示器与字号选最舒服的,刷新后保持
隐藏工具输出工具栏眼睛按钮一键折叠/展示工具调用气泡,专注阅读对话
交互式使用教程标题栏“使用教程”提供 10 步真实界面导览:背景遮罩、镂空高亮、进度跳转与缺失区域示意,不会自动切换 CLI 或修改会话数据
克制动效消息淡入与操作反馈保留轻量过渡,左右侧栏以宽度、透明度和轻位移联动展开;标题栏和标签页不做悬浮弹跳,并尊重「减少动效」无障碍设置

键盘快捷键

快捷键功能
Ctrl/Cmd + =放大字体
Ctrl/Cmd + -缩小字体
教程中 / 上一步 / 下一步
教程中 Esc退出使用教程

📦 安装与运行

环境要求

  • Node.js 18 或更高(node -v 查看)
  • Claude CodeTRAE CLICodex CLI(至少一个)—— 对话历史分别存储在 ~/.claude/projects/~/.trae/cli/sessions/~/.codex/sessions/
  • 支持 macOS / Linux / Windows

安装

git clone https://github.com/Wkingxc/cc-reader.git
cd cc-reader
npm install

浏览器启动

npm start

这一条命令会自动完成 构建前端 → 启动服务 → 打开浏览器。终端会打印实际地址:

CC Reader running at http://127.0.0.1:3456

浏览器会自动弹出该地址;若没有自动打开,手动复制到浏览器即可。左侧选一个会话即可开始阅读。

端口 3456 被占用时会自动顺延到下一个空闲端口(以终端打印为准),也可手动指定:PORT=8080 npm start。 调试时不想自动打开/抢占浏览器窗口,可设置:CC_READER_OPEN=0 npm start

本工具读取的是当前用户主目录下的私密对话记录,默认只监听 127.0.0.1,请勿直接暴露到公网。如需远程使用,建议通过 SSH 端口转发(ssh -L 3456:127.0.0.1:3456 user@host)访问。

桌面应用启动

npm run desktop

这一条命令会构建前端、编译本地服务和 Electron 入口,然后打开独立的 CC Reader 桌面窗口。桌面版仍然只读取本机 ~/.claude~/.trae/cli/sessions~/.codex/sessions,不会上传数据。

需要生成本机可运行的 macOS .app 目录时:

npm run desktop:pack

产物默认在 release/mac-arm64/CC Reader.app。当前脚本生成的是本地预览包,不做 Apple Developer ID 签名和公证。

需要发给别人试用时,建议生成 .dmg

npm run desktop:dmg

产物默认在 release/CC Reader-1.0.0-arm64.dmg。当前 DMG 仍是未签名预览包,首次打开可能需要用户右键打开或在系统设置里允许。


🛠 开发模式

获得前端热更新 + 后端自动重启:

npm run dev
  • 前端 dev server:http://localhost:5173(含热更新,开发时访问这个)
  • 后端 API:http://localhost:3456(前端通过 Vite 代理转发 /api/ws

可用脚本

命令作用
npm start构建前端并启动服务(生产模式,单端口同时提供 API 与页面)
npm run dev前端热更新 + 后端自动重启(开发模式)
npm run build仅构建前端到 dist/
npm run build:server编译后端到 dist-server/(桌面打包使用)
npm run build:electron编译 Electron 入口到 dist-electron/
npm test运行服务端测试与前端纯逻辑回归测试
npm run server仅启动后端服务(需先 npm run build
npm run desktop构建并启动 Electron 桌面窗口
npm run desktop:pack构建 Electron 本地 .app 预览包
npm run desktop:dmg构建用于分享试用的 macOS DMG 预览包

技术栈:React 18 · Vite · Tailwind CSS 3 · TypeScript · Express · ws · chokidar · KaTeX · Electron

About

A beautiful local web viewer for Claude Code conversation history.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - Wkingxc/cc-reader: A beautiful local web viewer for Claude Code conversation history. · GitHub
Skip to content

Repository files navigation

CC Reader

CLI 对话历史本地查看器。支持 Claude Code~/.claude/projects/)、TRAE CLI~/.trae/cli/sessions/)和 Codex CLI~/.codex/sessions/)—— 把枯燥的 JSONL 日志变成浏览器里可以舒适阅读的对话界面。

纯本地运行,不上传任何数据,不需要联网,不需要 API Key。


✨ 功能一览

功能说明
多 CLI 切换左上角按 Codex CLI / Claude Code / TRAE CLI 顺序切换,Codex 与 Claude 使用各自品牌图标,状态独立
Markdown 渲染代码块、表格、链接、引用与多级列表完整支持;常见 TUI 项目符号会保守规范化,围栏代码保持原样
一键复制代码块和用户消息框提供悬停复制按钮,便于复用提示词与片段
LaTeX 公式通过 KaTeX 渲染行内与块级数学公式
图片显示Claude 会话里粘贴的图片自动渲染(按需流式加载,可点开原图)
工具调用展示可折叠查看 Read / Bash / Edit / Write 等工具的输入参数与输出结果
三主题切换浅紫 / 浅蓝 / 暗色,顶栏弹出式选择器一键切换,平滑过渡,刷新后保持选择
收藏夹侧栏“收藏”分组与会话悬停操作支持快速星标,按 CLI 隔离持久化到 ~/.cc-reader/favorites/,重建或端口变化后仍保留
删除会话SessionItem 上的垃圾桶按钮,inline 二次确认后真删本地 jsonl,并同步移除收藏
会话搜索侧栏按路径或对话标题实时搜索,自动过滤并展开匹配项
准确提问计数左侧会话条目的数量只统计解析后的真实用户提问,不把助手回复、工具结果或系统事件误算为提问
轮分页长会话首屏只加载最近 10 轮,右侧"加载更早 10 轮"按需向上扩展,避免卡顿
Recent 加载更多左栏 Recent 默认显示 5 条,"显示更多"按钮每次 +5
实时更新正在进行的对话会自动追加并合并同一轮的流式分段;左上刷新按钮会安全重读已打开会话
多标签页同时打开多个会话,使用独立填充/描边状态像浏览器一样切换
问题快速跳转右侧大纲一键跳到任意提问,点击后保持选中态;关键轮次可标记、重命名并只看标记,数据按 CLI / 项目 / 会话隔离保存
字体大小调节默认 14px,工具栏按钮或 Ctrl/Cmd + +/- 调整,设置自动保存
阅读宽度工具栏宽度选择器:窄 / 适中 / 宽 / 全宽 4 档,按个人显示器与字号选最舒服的,刷新后保持
隐藏工具输出工具栏眼睛按钮一键折叠/展示工具调用气泡,专注阅读对话
交互式使用教程标题栏“使用教程”提供 10 步真实界面导览:背景遮罩、镂空高亮、进度跳转与缺失区域示意,不会自动切换 CLI 或修改会话数据
克制动效消息淡入与操作反馈保留轻量过渡,左右侧栏以宽度、透明度和轻位移联动展开;标题栏和标签页不做悬浮弹跳,并尊重「减少动效」无障碍设置

键盘快捷键

快捷键功能
Ctrl/Cmd + =放大字体
Ctrl/Cmd + -缩小字体
教程中 / 上一步 / 下一步
教程中 Esc退出使用教程

📦 安装与运行

环境要求

  • Node.js 18 或更高(node -v 查看)
  • Claude CodeTRAE CLICodex CLI(至少一个)—— 对话历史分别存储在 ~/.claude/projects/~/.trae/cli/sessions/~/.codex/sessions/
  • 支持 macOS / Linux / Windows

安装

git clone https://github.com/Wkingxc/cc-reader.git
cd cc-reader
npm install

浏览器启动

npm start

这一条命令会自动完成 构建前端 → 启动服务 → 打开浏览器。终端会打印实际地址:

CC Reader running at http://127.0.0.1:3456

浏览器会自动弹出该地址;若没有自动打开,手动复制到浏览器即可。左侧选一个会话即可开始阅读。

端口 3456 被占用时会自动顺延到下一个空闲端口(以终端打印为准),也可手动指定:PORT=8080 npm start。 调试时不想自动打开/抢占浏览器窗口,可设置:CC_READER_OPEN=0 npm start

本工具读取的是当前用户主目录下的私密对话记录,默认只监听 127.0.0.1,请勿直接暴露到公网。如需远程使用,建议通过 SSH 端口转发(ssh -L 3456:127.0.0.1:3456 user@host)访问。

桌面应用启动

npm run desktop

这一条命令会构建前端、编译本地服务和 Electron 入口,然后打开独立的 CC Reader 桌面窗口。桌面版仍然只读取本机 ~/.claude~/.trae/cli/sessions~/.codex/sessions,不会上传数据。

需要生成本机可运行的 macOS .app 目录时:

npm run desktop:pack

产物默认在 release/mac-arm64/CC Reader.app。当前脚本生成的是本地预览包,不做 Apple Developer ID 签名和公证。

需要发给别人试用时,建议生成 .dmg

npm run desktop:dmg

产物默认在 release/CC Reader-1.0.0-arm64.dmg。当前 DMG 仍是未签名预览包,首次打开可能需要用户右键打开或在系统设置里允许。


🛠 开发模式

获得前端热更新 + 后端自动重启:

npm run dev
  • 前端 dev server:http://localhost:5173(含热更新,开发时访问这个)
  • 后端 API:http://localhost:3456(前端通过 Vite 代理转发 /api/ws

可用脚本

命令作用
npm start构建前端并启动服务(生产模式,单端口同时提供 API 与页面)
npm run dev前端热更新 + 后端自动重启(开发模式)
npm run build仅构建前端到 dist/
npm run build:server编译后端到 dist-server/(桌面打包使用)
npm run build:electron编译 Electron 入口到 dist-electron/
npm test运行服务端测试与前端纯逻辑回归测试
npm run server仅启动后端服务(需先 npm run build
npm run desktop构建并启动 Electron 桌面窗口
npm run desktop:pack构建 Electron 本地 .app 预览包
npm run desktop:dmg构建用于分享试用的 macOS DMG 预览包

技术栈:React 18 · Vite · Tailwind CSS 3 · TypeScript · Express · ws · chokidar · KaTeX · Electron

About

A beautiful local web viewer for Claude Code conversation history.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - Wkingxc/cc-reader: A beautiful local web viewer for Claude Code conversation history. · GitHub
Skip to content

Repository files navigation

CC Reader

CLI 对话历史本地查看器。支持 Claude Code~/.claude/projects/)、TRAE CLI~/.trae/cli/sessions/)和 Codex CLI~/.codex/sessions/)—— 把枯燥的 JSONL 日志变成浏览器里可以舒适阅读的对话界面。

纯本地运行,不上传任何数据,不需要联网,不需要 API Key。


✨ 功能一览

功能说明
多 CLI 切换左上角按 Codex CLI / Claude Code / TRAE CLI 顺序切换,Codex 与 Claude 使用各自品牌图标,状态独立
Markdown 渲染代码块、表格、链接、引用与多级列表完整支持;常见 TUI 项目符号会保守规范化,围栏代码保持原样
一键复制代码块和用户消息框提供悬停复制按钮,便于复用提示词与片段
LaTeX 公式通过 KaTeX 渲染行内与块级数学公式
图片显示Claude 会话里粘贴的图片自动渲染(按需流式加载,可点开原图)
工具调用展示可折叠查看 Read / Bash / Edit / Write 等工具的输入参数与输出结果
三主题切换浅紫 / 浅蓝 / 暗色,顶栏弹出式选择器一键切换,平滑过渡,刷新后保持选择
收藏夹侧栏“收藏”分组与会话悬停操作支持快速星标,按 CLI 隔离持久化到 ~/.cc-reader/favorites/,重建或端口变化后仍保留
删除会话SessionItem 上的垃圾桶按钮,inline 二次确认后真删本地 jsonl,并同步移除收藏
会话搜索侧栏按路径或对话标题实时搜索,自动过滤并展开匹配项
准确提问计数左侧会话条目的数量只统计解析后的真实用户提问,不把助手回复、工具结果或系统事件误算为提问
轮分页长会话首屏只加载最近 10 轮,右侧"加载更早 10 轮"按需向上扩展,避免卡顿
Recent 加载更多左栏 Recent 默认显示 5 条,"显示更多"按钮每次 +5
实时更新正在进行的对话会自动追加并合并同一轮的流式分段;左上刷新按钮会安全重读已打开会话
多标签页同时打开多个会话,使用独立填充/描边状态像浏览器一样切换
问题快速跳转右侧大纲一键跳到任意提问,点击后保持选中态;关键轮次可标记、重命名并只看标记,数据按 CLI / 项目 / 会话隔离保存
字体大小调节默认 14px,工具栏按钮或 Ctrl/Cmd + +/- 调整,设置自动保存
阅读宽度工具栏宽度选择器:窄 / 适中 / 宽 / 全宽 4 档,按个人显示器与字号选最舒服的,刷新后保持
隐藏工具输出工具栏眼睛按钮一键折叠/展示工具调用气泡,专注阅读对话
交互式使用教程标题栏“使用教程”提供 10 步真实界面导览:背景遮罩、镂空高亮、进度跳转与缺失区域示意,不会自动切换 CLI 或修改会话数据
克制动效消息淡入与操作反馈保留轻量过渡,左右侧栏以宽度、透明度和轻位移联动展开;标题栏和标签页不做悬浮弹跳,并尊重「减少动效」无障碍设置

键盘快捷键

快捷键功能
Ctrl/Cmd + =放大字体
Ctrl/Cmd + -缩小字体
教程中 / 上一步 / 下一步
教程中 Esc退出使用教程

📦 安装与运行

环境要求

  • Node.js 18 或更高(node -v 查看)
  • Claude CodeTRAE CLICodex CLI(至少一个)—— 对话历史分别存储在 ~/.claude/projects/~/.trae/cli/sessions/~/.codex/sessions/
  • 支持 macOS / Linux / Windows

安装

git clone https://github.com/Wkingxc/cc-reader.git
cd cc-reader
npm install

浏览器启动

npm start

这一条命令会自动完成 构建前端 → 启动服务 → 打开浏览器。终端会打印实际地址:

CC Reader running at http://127.0.0.1:3456

浏览器会自动弹出该地址;若没有自动打开,手动复制到浏览器即可。左侧选一个会话即可开始阅读。

端口 3456 被占用时会自动顺延到下一个空闲端口(以终端打印为准),也可手动指定:PORT=8080 npm start。 调试时不想自动打开/抢占浏览器窗口,可设置:CC_READER_OPEN=0 npm start

本工具读取的是当前用户主目录下的私密对话记录,默认只监听 127.0.0.1,请勿直接暴露到公网。如需远程使用,建议通过 SSH 端口转发(ssh -L 3456:127.0.0.1:3456 user@host)访问。

桌面应用启动

npm run desktop

这一条命令会构建前端、编译本地服务和 Electron 入口,然后打开独立的 CC Reader 桌面窗口。桌面版仍然只读取本机 ~/.claude~/.trae/cli/sessions~/.codex/sessions,不会上传数据。

需要生成本机可运行的 macOS .app 目录时:

npm run desktop:pack

产物默认在 release/mac-arm64/CC Reader.app。当前脚本生成的是本地预览包,不做 Apple Developer ID 签名和公证。

需要发给别人试用时,建议生成 .dmg

npm run desktop:dmg

产物默认在 release/CC Reader-1.0.0-arm64.dmg。当前 DMG 仍是未签名预览包,首次打开可能需要用户右键打开或在系统设置里允许。


🛠 开发模式

获得前端热更新 + 后端自动重启:

npm run dev
  • 前端 dev server:http://localhost:5173(含热更新,开发时访问这个)
  • 后端 API:http://localhost:3456(前端通过 Vite 代理转发 /api/ws

可用脚本

命令作用
npm start构建前端并启动服务(生产模式,单端口同时提供 API 与页面)
npm run dev前端热更新 + 后端自动重启(开发模式)
npm run build仅构建前端到 dist/
npm run build:server编译后端到 dist-server/(桌面打包使用)
npm run build:electron编译 Electron 入口到 dist-electron/
npm test运行服务端测试与前端纯逻辑回归测试
npm run server仅启动后端服务(需先 npm run build
npm run desktop构建并启动 Electron 桌面窗口
npm run desktop:pack构建 Electron 本地 .app 预览包
npm run desktop:dmg构建用于分享试用的 macOS DMG 预览包

技术栈:React 18 · Vite · Tailwind CSS 3 · TypeScript · Express · ws · chokidar · KaTeX · Electron

About

A beautiful local web viewer for Claude Code conversation history.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - Wkingxc/cc-reader: A beautiful local web viewer for Claude Code conversation history. · GitHub
Skip to content

Repository files navigation

CC Reader

CLI 对话历史本地查看器。支持 Claude Code~/.claude/projects/)、TRAE CLI~/.trae/cli/sessions/)和 Codex CLI~/.codex/sessions/)—— 把枯燥的 JSONL 日志变成浏览器里可以舒适阅读的对话界面。

纯本地运行,不上传任何数据,不需要联网,不需要 API Key。


✨ 功能一览

功能说明
多 CLI 切换左上角按 Codex CLI / Claude Code / TRAE CLI 顺序切换,Codex 与 Claude 使用各自品牌图标,状态独立
Markdown 渲染代码块、表格、链接、引用与多级列表完整支持;常见 TUI 项目符号会保守规范化,围栏代码保持原样
一键复制代码块和用户消息框提供悬停复制按钮,便于复用提示词与片段
LaTeX 公式通过 KaTeX 渲染行内与块级数学公式
图片显示Claude 会话里粘贴的图片自动渲染(按需流式加载,可点开原图)
工具调用展示可折叠查看 Read / Bash / Edit / Write 等工具的输入参数与输出结果
三主题切换浅紫 / 浅蓝 / 暗色,顶栏弹出式选择器一键切换,平滑过渡,刷新后保持选择
收藏夹侧栏“收藏”分组与会话悬停操作支持快速星标,按 CLI 隔离持久化到 ~/.cc-reader/favorites/,重建或端口变化后仍保留
删除会话SessionItem 上的垃圾桶按钮,inline 二次确认后真删本地 jsonl,并同步移除收藏
会话搜索侧栏按路径或对话标题实时搜索,自动过滤并展开匹配项
准确提问计数左侧会话条目的数量只统计解析后的真实用户提问,不把助手回复、工具结果或系统事件误算为提问
轮分页长会话首屏只加载最近 10 轮,右侧"加载更早 10 轮"按需向上扩展,避免卡顿
Recent 加载更多左栏 Recent 默认显示 5 条,"显示更多"按钮每次 +5
实时更新正在进行的对话会自动追加并合并同一轮的流式分段;左上刷新按钮会安全重读已打开会话
多标签页同时打开多个会话,使用独立填充/描边状态像浏览器一样切换
问题快速跳转右侧大纲一键跳到任意提问,点击后保持选中态;关键轮次可标记、重命名并只看标记,数据按 CLI / 项目 / 会话隔离保存
字体大小调节默认 14px,工具栏按钮或 Ctrl/Cmd + +/- 调整,设置自动保存
阅读宽度工具栏宽度选择器:窄 / 适中 / 宽 / 全宽 4 档,按个人显示器与字号选最舒服的,刷新后保持
隐藏工具输出工具栏眼睛按钮一键折叠/展示工具调用气泡,专注阅读对话
交互式使用教程标题栏“使用教程”提供 10 步真实界面导览:背景遮罩、镂空高亮、进度跳转与缺失区域示意,不会自动切换 CLI 或修改会话数据
克制动效消息淡入与操作反馈保留轻量过渡,左右侧栏以宽度、透明度和轻位移联动展开;标题栏和标签页不做悬浮弹跳,并尊重「减少动效」无障碍设置

键盘快捷键

快捷键功能
Ctrl/Cmd + =放大字体
Ctrl/Cmd + -缩小字体
教程中 / 上一步 / 下一步
教程中 Esc退出使用教程

📦 安装与运行

环境要求

  • Node.js 18 或更高(node -v 查看)
  • Claude CodeTRAE CLICodex CLI(至少一个)—— 对话历史分别存储在 ~/.claude/projects/~/.trae/cli/sessions/~/.codex/sessions/
  • 支持 macOS / Linux / Windows

安装

git clone https://github.com/Wkingxc/cc-reader.git
cd cc-reader
npm install

浏览器启动

npm start

这一条命令会自动完成 构建前端 → 启动服务 → 打开浏览器。终端会打印实际地址:

CC Reader running at http://127.0.0.1:3456

浏览器会自动弹出该地址;若没有自动打开,手动复制到浏览器即可。左侧选一个会话即可开始阅读。

端口 3456 被占用时会自动顺延到下一个空闲端口(以终端打印为准),也可手动指定:PORT=8080 npm start。 调试时不想自动打开/抢占浏览器窗口,可设置:CC_READER_OPEN=0 npm start

本工具读取的是当前用户主目录下的私密对话记录,默认只监听 127.0.0.1,请勿直接暴露到公网。如需远程使用,建议通过 SSH 端口转发(ssh -L 3456:127.0.0.1:3456 user@host)访问。

桌面应用启动

npm run desktop

这一条命令会构建前端、编译本地服务和 Electron 入口,然后打开独立的 CC Reader 桌面窗口。桌面版仍然只读取本机 ~/.claude~/.trae/cli/sessions~/.codex/sessions,不会上传数据。

需要生成本机可运行的 macOS .app 目录时:

npm run desktop:pack

产物默认在 release/mac-arm64/CC Reader.app。当前脚本生成的是本地预览包,不做 Apple Developer ID 签名和公证。

需要发给别人试用时,建议生成 .dmg

npm run desktop:dmg

产物默认在 release/CC Reader-1.0.0-arm64.dmg。当前 DMG 仍是未签名预览包,首次打开可能需要用户右键打开或在系统设置里允许。


🛠 开发模式

获得前端热更新 + 后端自动重启:

npm run dev
  • 前端 dev server:http://localhost:5173(含热更新,开发时访问这个)
  • 后端 API:http://localhost:3456(前端通过 Vite 代理转发 /api/ws

可用脚本

命令作用
npm start构建前端并启动服务(生产模式,单端口同时提供 API 与页面)
npm run dev前端热更新 + 后端自动重启(开发模式)
npm run build仅构建前端到 dist/
npm run build:server编译后端到 dist-server/(桌面打包使用)
npm run build:electron编译 Electron 入口到 dist-electron/
npm test运行服务端测试与前端纯逻辑回归测试
npm run server仅启动后端服务(需先 npm run build
npm run desktop构建并启动 Electron 桌面窗口
npm run desktop:pack构建 Electron 本地 .app 预览包
npm run desktop:dmg构建用于分享试用的 macOS DMG 预览包

技术栈:React 18 · Vite · Tailwind CSS 3 · TypeScript · Express · ws · chokidar · KaTeX · Electron

About

A beautiful local web viewer for Claude Code conversation history.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); GitHub - Wkingxc/cc-reader: A beautiful local web viewer for Claude Code conversation history. · GitHub
Skip to content

Repository files navigation

CC Reader

CLI 对话历史本地查看器。支持 Claude Code~/.claude/projects/)、TRAE CLI~/.trae/cli/sessions/)和 Codex CLI~/.codex/sessions/)—— 把枯燥的 JSONL 日志变成浏览器里可以舒适阅读的对话界面。

纯本地运行,不上传任何数据,不需要联网,不需要 API Key。


✨ 功能一览

功能说明
多 CLI 切换左上角按 Codex CLI / Claude Code / TRAE CLI 顺序切换,Codex 与 Claude 使用各自品牌图标,状态独立
Markdown 渲染代码块、表格、链接、引用与多级列表完整支持;常见 TUI 项目符号会保守规范化,围栏代码保持原样
一键复制代码块和用户消息框提供悬停复制按钮,便于复用提示词与片段
LaTeX 公式通过 KaTeX 渲染行内与块级数学公式
图片显示Claude 会话里粘贴的图片自动渲染(按需流式加载,可点开原图)
工具调用展示可折叠查看 Read / Bash / Edit / Write 等工具的输入参数与输出结果
三主题切换浅紫 / 浅蓝 / 暗色,顶栏弹出式选择器一键切换,平滑过渡,刷新后保持选择
收藏夹侧栏“收藏”分组与会话悬停操作支持快速星标,按 CLI 隔离持久化到 ~/.cc-reader/favorites/,重建或端口变化后仍保留
删除会话SessionItem 上的垃圾桶按钮,inline 二次确认后真删本地 jsonl,并同步移除收藏
会话搜索侧栏按路径或对话标题实时搜索,自动过滤并展开匹配项
准确提问计数左侧会话条目的数量只统计解析后的真实用户提问,不把助手回复、工具结果或系统事件误算为提问
轮分页长会话首屏只加载最近 10 轮,右侧"加载更早 10 轮"按需向上扩展,避免卡顿
Recent 加载更多左栏 Recent 默认显示 5 条,"显示更多"按钮每次 +5
实时更新正在进行的对话会自动追加并合并同一轮的流式分段;左上刷新按钮会安全重读已打开会话
多标签页同时打开多个会话,使用独立填充/描边状态像浏览器一样切换
问题快速跳转右侧大纲一键跳到任意提问,点击后保持选中态;关键轮次可标记、重命名并只看标记,数据按 CLI / 项目 / 会话隔离保存
字体大小调节默认 14px,工具栏按钮或 Ctrl/Cmd + +/- 调整,设置自动保存
阅读宽度工具栏宽度选择器:窄 / 适中 / 宽 / 全宽 4 档,按个人显示器与字号选最舒服的,刷新后保持
隐藏工具输出工具栏眼睛按钮一键折叠/展示工具调用气泡,专注阅读对话
交互式使用教程标题栏“使用教程”提供 10 步真实界面导览:背景遮罩、镂空高亮、进度跳转与缺失区域示意,不会自动切换 CLI 或修改会话数据
克制动效消息淡入与操作反馈保留轻量过渡,左右侧栏以宽度、透明度和轻位移联动展开;标题栏和标签页不做悬浮弹跳,并尊重「减少动效」无障碍设置

键盘快捷键

快捷键功能
Ctrl/Cmd + =放大字体
Ctrl/Cmd + -缩小字体
教程中 / 上一步 / 下一步
教程中 Esc退出使用教程

📦 安装与运行

环境要求

  • Node.js 18 或更高(node -v 查看)
  • Claude CodeTRAE CLICodex CLI(至少一个)—— 对话历史分别存储在 ~/.claude/projects/~/.trae/cli/sessions/~/.codex/sessions/
  • 支持 macOS / Linux / Windows

安装

git clone https://github.com/Wkingxc/cc-reader.git
cd cc-reader
npm install

浏览器启动

npm start

这一条命令会自动完成 构建前端 → 启动服务 → 打开浏览器。终端会打印实际地址:

CC Reader running at http://127.0.0.1:3456

浏览器会自动弹出该地址;若没有自动打开,手动复制到浏览器即可。左侧选一个会话即可开始阅读。

端口 3456 被占用时会自动顺延到下一个空闲端口(以终端打印为准),也可手动指定:PORT=8080 npm start。 调试时不想自动打开/抢占浏览器窗口,可设置:CC_READER_OPEN=0 npm start

本工具读取的是当前用户主目录下的私密对话记录,默认只监听 127.0.0.1,请勿直接暴露到公网。如需远程使用,建议通过 SSH 端口转发(ssh -L 3456:127.0.0.1:3456 user@host)访问。

桌面应用启动

npm run desktop

这一条命令会构建前端、编译本地服务和 Electron 入口,然后打开独立的 CC Reader 桌面窗口。桌面版仍然只读取本机 ~/.claude~/.trae/cli/sessions~/.codex/sessions,不会上传数据。

需要生成本机可运行的 macOS .app 目录时:

npm run desktop:pack

产物默认在 release/mac-arm64/CC Reader.app。当前脚本生成的是本地预览包,不做 Apple Developer ID 签名和公证。

需要发给别人试用时,建议生成 .dmg

npm run desktop:dmg

产物默认在 release/CC Reader-1.0.0-arm64.dmg。当前 DMG 仍是未签名预览包,首次打开可能需要用户右键打开或在系统设置里允许。


🛠 开发模式

获得前端热更新 + 后端自动重启:

npm run dev
  • 前端 dev server:http://localhost:5173(含热更新,开发时访问这个)
  • 后端 API:http://localhost:3456(前端通过 Vite 代理转发 /api/ws

可用脚本

命令作用
npm start构建前端并启动服务(生产模式,单端口同时提供 API 与页面)
npm run dev前端热更新 + 后端自动重启(开发模式)
npm run build仅构建前端到 dist/
npm run build:server编译后端到 dist-server/(桌面打包使用)
npm run build:electron编译 Electron 入口到 dist-electron/
npm test运行服务端测试与前端纯逻辑回归测试
npm run server仅启动后端服务(需先 npm run build
npm run desktop构建并启动 Electron 桌面窗口
npm run desktop:pack构建 Electron 本地 .app 预览包
npm run desktop:dmg构建用于分享试用的 macOS DMG 预览包

技术栈:React 18 · Vite · Tailwind CSS 3 · TypeScript · Express · ws · chokidar · KaTeX · Electron

About

A beautiful local web viewer for Claude Code conversation history.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages