ChatCrystal — 从 AI 对话中提炼你的知识库 #1
ZengLiangYi
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
TL;DR: ChatCrystal 是一个本地优先的 AI 对话知识管理工具。它从 Claude Code 等 AI 编程工具中采集对话,用 LLM 提炼为结构化笔记,通过 Embedding 实现语义搜索。Electron 桌面应用,数据完全在本地。
为什么做这个?
用 Claude Code 写了几个月代码后,我发现一个问题:和 AI 的对话里藏着大量有价值的知识,但它们散落在各个项目的 JSONL 文件里,用完就忘了。
想回忆「上次那个 sql.js WASM 加载问题是怎么解决的」?翻历史记录翻到崩溃。
ChatCrystal 就是为了解决这个问题:把 AI 对话变成可搜索、可浏览的个人知识库。
核心能力
对话采集
自动扫描
~/.claude/projects/下的 JSONL 对话文件,支持 chokidar 文件监听实时同步。通过SourceAdapter插件架构设计,未来可扩展到 Cursor、Copilot 等其他工具。LLM 摘要提炼
通过 Vercel AI SDK 将完整对话提炼为结构化笔记:
支持 6 种 Provider:Ollama(本地免费)、OpenAI、Anthropic、Google AI、Azure、任意 OpenAI 兼容服务。在设置页面运行时热切换,不用重启。
语义搜索
基于 Embedding 向量索引(vectra),用自然语言搜索笔记。比如搜「Electron 打包 WASM 问题」,能找到相关的技术笔记,而不需要记住精确关键词。
对话浏览器
完整渲染 AI 对话内容:Markdown 渲染、代码语法高亮、工具调用折叠分组、系统标签噪音过滤。
技术架构
设计决策:Server 嵌入 Electron 主进程
没有用子进程或 IPC,而是把 Fastify 服务直接嵌入 Electron 主进程。通过
createServer()导出函数实现双模式:好处:前端代码零改动(同样通过
http://localhost加载),API 调用路径完全一致。设计决策:sql.js 而非 better-sqlite3
sql.js 是 SQLite 的纯 WASM 编译版本,避免了 native addon 在 Electron 打包时的 rebuild 问题。代价是性能略低于 native binding,但对于个人知识库的数据量完全足够。
快速体验
也可以直接下载 Release 安装包。
扩展数据源
实现
SourceAdapter接口即可接入新的 AI 工具:目前内置了 Claude Code 适配器,欢迎 PR 添加 Cursor、GitHub Copilot 等其他工具的支持。
当前状态
路线图
欢迎 Star、Issue、PR。如果你也觉得 AI 对话里的知识不该用完就扔,试试 ChatCrystal。
Beta Was this translation helpful? Give feedback.
All reactions