一个融入桌面的 AI 助手——状态融入壁纸,轻交互近在手边,编辑留给面板。
市面上的效率工具,要么太冷,要么太吵。
太冷——番茄钟和待办应用是冰冷的数字看板。它们记录你做了什么,但不会在意你做得怎样。完不成任务只会看到红色逾期标记,没有鼓励,没有节奏感。
太吵——AI 陪伴产品以娱乐为导向,主动找你聊天、推送内容、索要关注。它们需要你"打开"才能开始,关掉就消失,存在感为零。
NeoCompanion 的回答:做一个温感效率工具——用轻量打扰的方式监督学习,用正反馈的方式维持节奏,用持续在场的方式建立信任。不是冰冷的看板,也不是话多的玩伴,而是一个懂分寸的搭档。
NeoCompanion 的界面分为三层,各司其职:
┌───────────────────────────────────────────────────┐
│ 用户应用窗口 (VS Code, 浏览器等) │ ← 最高层
├───────────────────────────────────────────────────┤
│ 悬浮层:助手形象 · 语音气泡 · Hook 角标 │ ← 交互入口
├───────────────────────────────────────────────────┤
│ 桌面图标层 │ ← 系统层
├───────────────────────────────────────────────────┤
│ 壁纸层:天气时间 · 任务进度 · 专注主控盘 · 助手寄语 │ ← 状态画布 + 轻交互
├───────────────────────────────────────────────────┤
│ 原始壁纸 │ ← 最底层
└───────────────────────────────────────────────────┘
按需弹出 → 面板层:任务管理 · AI 对话 · 设置 · Hook 审批
| 层 | 做什么 | 不做什么 |
|---|---|---|
| 壁纸层 | 天气、时间、任务进度、专注主控盘——回到桌面一瞥即知,轻交互近在手边 | 不编辑、不输入、不常驻弹窗 |
| 悬浮层 | 助手形象、语音反馈、Hook 角标通知——所有交互的入口 | 不编辑、不弹大面板 |
| 面板层 | 任务管理、AI 对话、设置配置、Hook 审批——按需弹出 | 不常驻、不遮挡 |
这意味着:
- 零操作感知——你不需要"打开"任何东西就能知道专注了多久、还有什么任务没做。壁纸就是你的仪表盘。
- 就近轻交互——专注计时、任务跳转,在壁纸层点击即可,不用切窗口。复杂操作仍走助手或面板。
- 一触即达交互——番茄钟、待办勾选、AI 对话,点助手即可,不用切窗口。
- 不在桌面也在——助手以 Hook 角标(类似手机 App 红点)提醒你有编译结果、服务器状态待处理,不打断你的工作流。
soul.md 让你定义助手是谁、怎么说话、怎么反馈。默认温和专业,你可以调成更轻松、更简洁、甚至更话唠的风格。贴心但不过分亲密。
# soul.md(用户可自定义,放在 ~/.NeoCompanion/soul.md)
## 你是谁
你是 NeoCompanion,一个桌面上的智能助手。你温和、专业、偶尔轻松。
你不撒娇、不卖萌、不哭闹。你像一个靠谱的搭档——话不多,但总在关键时候出现。
## 你与用户的关系
你是用户的效率和状态伙伴。你关心用户的工作节奏,但不会过度介入。专注主控盘、未完成任务、天气时间、助手寄语、氛围色调——全部融入壁纸背景。轻交互近在手边——点击专注盘开始/暂停、点击任务跳转面板、一键切换沉浸模式。
助手与你同步进入番茄钟。专注时安静陪伴,分心时温和提醒一次,完成时简短肯定。不是监督你,是陪你。
你的构建脚本、CI 流水线、服务器监控,都可以通过一行命令推送到助手:
# 编译成功,助手欢呼;部署失败,助手提醒
echo '{"state":"success","description":"Build pass"}' > ~/.NeoCompanion/hooks/build.json你的工具链有了表情。
业务数据和索引默认存储在本地,不需要注册账户。窗口检测可开关,应用黑名单可配置;只有用户启用云端 Chat 或 Embedding Provider 后,对应的问答上下文或待向量化文本才会发送给该服务,并在设置中明确展示边界。
NeoCompanion 的能力由浅入深分为四层:
+-------------------------------------------------------+
| 1. Assistant Layer (助手悬浮交互 / TTS 语音 / 壁纸状态) |
|-------------------------------------------------------|
| 2. Routine Layer (番茄钟 / 待办清单 / 天气 / 助手日志) |
|-------------------------------------------------------|
| 3. Knowledge & AI (项目 / 笔记 / 看板 / 混合检索 / AI) |
|-------------------------------------------------------|
| 4. Hook & System (安全 Hook API / 本地状态感知与记忆) |
+-------------------------------------------------------+
助手交互层——2D 精灵图帧动画,桌面常驻,支持拖拽、置顶、多种动作响应。形象不一定是人物——可以是动物、机器人、抽象图形。配合 TTS 语音和状态化情绪反馈,贴心但不过分亲密。
日常琐碎陪伴层——陪伴式番茄钟、助手待办清单、天气碎碎念、助手工作日志。
知识与 AI 层——在单一本地工作空间中组织项目、Markdown 笔记、任务与看板;通过全文检索和向量检索为 AI 对话提供可核验的本地上下文。
Hook 与系统层——本地 Hook(HTTP / WebSocket 已实现;UDS / File Watcher / MQTT 规划中);浮动权限审批气泡;本地隐私感知引擎;本地长期记忆。
桌面常驻悬浮助手的基本 2D 精灵图形态、语音 TTS 播报。助手番茄钟、待办、天气碎碎念。壁纸层 MVP(天气时间 + 专注主控盘 + 热区轻交互)。Hook 角标通知。
项目、Markdown 笔记、统一任务与看板形成可用闭环。SQLite FTS5 提供本地全文搜索,sqlite-vec 提供可选向量检索;AI 回答展示可点击来源。Embedding 未配置或失败时自动降级为全文搜索。通用 Hook API 与权限审批能力继续独立演进。
增加本地文件夹同步、多格式导入和本地 embedding 模型;将用户主动维护的知识与助手长期记忆分开治理,并在明确授权下形成有来源、可追溯的个性化交互。
| 层 | 技术 |
|---|---|
| 桌面运行时 | Tauri v2 (Rust) |
| 前端 UI | Vue 3 + Vite + Pinia + TanStack Query |
| 本地服务 | Fastify (TypeScript Sidecar) |
| 数据库 | SQLite (node:sqlite + FTS5 + sqlite-vec) |
| AI | 聊天模型适配器 + OpenAI-compatible Embedding Adapter |
架构核心:Tauri (Rust) 提供系统级能力与系统钥匙链 → Fastify (TypeScript) 处理业务逻辑、知识索引与 AI 调度 → Vue 提供 UI → SQLite 统一存储业务数据。知识工作空间已接入 FTS5 全文索引、可选 sqlite-vec 混合检索、文件镜像与带来源的 RAG。
详见 系统架构设计。
| 文档 | 说明 |
|---|---|
| 具体能力构思 | 核心产品规划与详细设计说明 |
| 产品需求文档 | 系统能力边界、多层能力模型定义 |
| 系统架构设计 | Tauri + Fastify + Vue 多端通信、数据流、Hook 审批架构 |
| 壁纸层状态显示 | WorkerW 嵌入方案、壁纸组件设计、三层职责划分 |
| 助手人设配置 | soul.md 文件规格、人设可配置系统、热加载机制 |
| 开发环境搭建 | 本地开发环境、依赖、运行命令 |
| Sidecar API 参考 | REST API 与 WebSocket 消息说明 |
| TTS 配置指南 | MiMo TTS 接入与故障排查 |
| 测试说明 | 测试策略与命令 |
| 术语表 | 项目术语与弃用词汇 |
| 已知 TODO | 文档与代码不一致的待办清单 |
| 贡献指南 | 如何参与项目 |
| 更新日志 | 版本发布记录 |