事情是这样的:
我在研究 RAG ,想边看概念边写代码实现。开了两个 ChatGPT 标签页,一个问原理,一个写代码。然后就开始了无尽的 Tab 切换、复制粘贴上下文...
想了想:为什么不能左右分栏,两个对话同时进行?
于是做了「三千」 sanqian.io ,一个桌面端 AI 助手( macOS & Windows )。分栏对话是起点,后来又加了很多我觉得其他 AI 应用该有但没有的功能。
Cmd+\按 Cmd+\,窗口一分为二。两个独立对话,同时运行。
左边:"解释一下 RAG 的架构" 右边:"用 LangChain 写一个 RAG 实现"
两边同时思考,同时输出。不用切换,不用复制粘贴。

大多数 AI 应用把图片生成放在单独页面。这里直接在对话中完成。
"画一个东京猫咖,日落时分,动漫风格"
生成图片
"不错!改成清晨,阳光从窗户照进来"
基于上下文重新生成
目前支持模型:即梦、Gemini 。

上传 PDF 、Excel 、Word 、PPT ,AI 自动激活对应技能处理。
内置技能:
还不够?上传自定义技能(.md 或 .zip 格式),让 AI 学会新技能。

用 / 触发预设 prompt 模板,这不稀奇。
稀奇的是:snippet 可以嵌套其他 snippet ,还能 @引用工具和 Agent。
比如创建一个 /review 指令:
/expert
First use @Code Explorer to check the code, then provide:
1. Security issues
2. Performance suggestions
3. Refactoring ideas
/analyze
这里 /expert 展开成另一个 snippet ,@Code Explorer 调用一个子 Agent ,/analyze 又是另一个 snippet 。
可组合的 prompt 。

一个应用,所有模型:
配置一次 API Key ,随时切换。每个 Provider 显示支持的能力( LLM 、图片、视觉、长上下文等)。

AI 搜索网页时,你能看到信息的确切来源。
不是"根据网上资料",而是可点击的引用链接。下图中有 24 个来源。

快速访问 AI 的所有能力。本地文件夹、技能、工具、子 Agent ,一个菜单全搞定。

| 层级 | 技术 |
|---|---|
| 前端 | Electron + React + TypeScript + Tailwind |
| 后端 | Python + FastAPI + LangGraph |
| 数据库 | SQLite + sqlite-vec (向量)+ FTS5 (全文搜索) |
| 执行环境 | 沙箱隔离( macOS Seatbelt ) |
本地优先:所有数据存在本地,不上传。
这是一个 Vibe Coding 项目,自己用着顺手,分享出来。可能有 bug ,但核心功能已经稳定。
另外,三千还开放了类似 Ollama 的本地 Agent API ,可以基于它开发自己的应用。我用这个 API 做了两个 Demo 应用:Notes 和 TodoList,都可以在 sanqian.io 下载体验。
官网:sanqian.io
欢迎试用,随时反馈!