hotyaya 🦆
Obsidian 里的 AI 阅读伙伴 — 云朵猫和小黄鸭陪你读笔记、写内容,把想法变成幻灯片和网页。
免费开源。桌面版 Obsidian 1.11.4+。
| 云朵猫 · 猫咪的小习惯 | 小黄鸭 · 小鸭的拿手好戏 |
|---|---|
![]() |
![]() |
伙伴停在笔记旁边。点击打开聊天窗,爪印或右键打开互动小窝。摸摸、喂食和动作播放后,菜单自动收起,直接看到宠物。
0.3.3 · 修复猫咪闪烁
固定宠物图片资源地址,避免 Obsidian 为地址附加的时间戳在每次切帧时触发重新加载;猫咪切帧不再受主题过渡效果影响。小鸭 GIF 也避免了计时器触发的重复重载。
0.3.2 · 按内容选择导出版式
PPT / HTML 演示增加编辑式、产品分栏、技术演示三种构图,新增流程、时间线、重点指标和可编辑条形图;长内容自动分页。HTML 长文支持杂志阅读、专题报告、技术文档三种排版,保留原始正文并适配窄屏。
可在指令中写「杂志阅读风格」「产品演示,流程要清晰」「技术文档风格」等偏好。不指定时根据内容选择。模型仍负责内容提炼,数据图表要求使用原文已有数据。
0.3.1 · 两个伙伴各有小习惯
宠物小窝新增各 5 种动作:猫咪洗脸、伸懒腰、抓抓板、扑蝴蝶、打哈欠;小鸭拍翅、梳羽、摇摆散步、开心踏步、游一圈。点击后小窝自动收起,直接看动作;再次点击会从头重播。
猫使用 oneko 原素材中此前未启用的姿态;鸭使用 VS Code Pets 原有的走路/快走/跑动/挥翅/带球动画做分阶段编排。空闲行为按宠物种类随机变化,所有素材仍离线加载。
0.3.0 · 住在笔记旁的小伙伴
新增 oneko 云朵猫,保留小黄鸭;素材随插件离线提供。点击宠物聊天,点击爪印或右键打开「宠物小窝」,拖动可移动位置。
- 摸摸、喂点心、抛球、打盹、一起摸鱼:各有动作和回应;空闲时还会散步、伸懒腰。
- 一起专注:25 分钟陪伴计时,可随时结束;任务运行期间优先展示工作动作。
- 每个功能都有状态:阅读、思考、写字、翻译、整理表格、搜索、画图、演示、导出,以及完成和失败反馈。
- 给伙伴取名:在小窝里保存名字、切换猫/鸭和三种大小。位置、亲密度、陪伴天数和最近 20 条日记保存在插件配置中。
- 轻松陪伴:不因离开而扣亲密度;安静模式关闭主动气泡;尊重系统「减少动态效果」。互动无需调用模型。
升级前备份 .obsidian/plugins/md-companion,复制新包中的插件文件,保留自己的 data.json,然后重新加载插件。0.2.0 配置自动补齐宠物设置。
它能做什么
📖 阅读与对话
| 功能 | 说明 |
|---|---|
| 一键解读 | 把整篇笔记讲清楚,标注不确定的地方 |
| 阅读建议 | 停笔 12 秒后自动给一句简短有用的评论 |
| 自由聊天 | 就当前笔记提问,支持上下文 |
✏️ 文字加工
| 功能 | 说明 |
|---|---|
| 自然润色 | 去掉空话套话,保留你的意思和语气(中/英分开处理) |
| 中英互译 | 自动判断方向,保留 Markdown 格式 |
| 生成表格 | 从笔记内容提取结构化表格,一键替换原文 |
| 替换/插入 | 任何结果都可以先预览差异再替换选区或插入下方 |
所有修改都可撤销。笔记被你改过就拒绝应用旧结果,不会覆盖你的新内容。
🎨 主题化导出
内置 Anthropic theme-factory 的 10 套配色,生成时根据内容和你的要求选择。可以直接指定「沙漠玫瑰配色」「午夜星河配色」等主题;配色与版式分别选择。
可编辑 PPT(.pptx,PowerPoint/WPS 直接改文字和形状)
| 产品与创意 · 分栏封面 | 数据页 · 可编辑图表 |
|---|---|
![]() |
![]() |
三种演示构图,按内容选用列表、对比、流程、时间线、重点指标和图表;长内容拆页。下面用同一份内容与配色展示构图差异。
HTML 演示稿(键盘/触屏翻页,16:9 自适应)
支持页码、进度条、讲者备注面板,以及键盘和触屏翻页。
HTML 文章(你笔记的原文 + 专业排版 + 目录 + 主题色)
| 杂志阅读 | 专题报告 |
|---|---|
![]() |
![]() |
另有技术文档版式,支持窄屏、目录跳转、阅读时长和代码块;正文保留原始笔记内容。
🖼️ 企业配图
两步生图:先让模型把选区改写成结构化配图方案(类型 × 风格 × 画面元素),再按固定模板拼出完整提示词交给图像接口。
生成后在聊天里直接预览,点击放大。支持保存到笔记同目录、另存为下载、插入选区后。
🌐 相关资讯
输入 /research 或"搜索相关资讯",hotyaya 会:
- 判断笔记类型(学习笔记找教程博客,产品找规格书白皮书)
- 用 3 组检索词搜索(SearXNG)
- 解析百度/搜狗跳转链接,过滤无关结果
- 可选:用本机 Chrome 读取网页正文(Playwright MCP,无界面、独立临时配置)
- 输出按类型分组的链接清单,每条附一句说明
安装
1. 安装插件
发布包可在 Releases 下载,以发布页面标注的版本为准。把整个 md-companion 文件夹解压到你的库的 .obsidian/plugins/,在第三方插件中启用 hotyaya。更新时保留自己的 data.json,重新加载插件后生效。
或者从源码构建:
git clone https://github.com/Emily-zjy/hotyaya.git cd hotyaya npm ci npm run build npm run package # dist/md-companion-0.3.2.zip
2. 配置模型
打开插件设置:
| 配置项 | 说明 |
|---|---|
| API 地址 | OpenAI 兼容接口的 Base URL(如公司网关、LiteLLM) |
| 模型名称 | 从服务商控制台复制 |
| API Key | 存入 Obsidian SecretStorage,不写进 data.json |
点"测试连接"验证。支持 LiteLLM 网关,自动发现环境变量 OPENAI_API_KEY / LITELLM_API_KEY。
3. 可选功能
| 功能 | 需要配置 | 不配置会怎样 |
|---|---|---|
| 快速模型 | 同一服务中响应更快的模型 ID | 全部使用主模型(推理模型较慢) |
| SearXNG | 搜索服务地址 | "相关资讯"不可用 |
| 本机 Chrome | 已安装 Google Chrome(默认开启) | 用搜索摘要代替网页正文 |
| 图像模型 | 图像 API 地址 + 模型 ID + 密钥 | "企业配图"不可用 |
4. 开始使用
- 打开一篇
.md笔记 - 点击右上角 ✨ 图标开启辅助器
- 选中文字,在小黄鸭聊天窗里输入指令
快捷输入:/pptx /slides /html /image /research /translate /polish /table,或用自然语言("生成 PPT"、"整理成表格"、"搜索相关资讯")。
技术架构
┌─────────────────────┐ ┌──────────────────────┐
│ Obsidian Plugin │────▶│ Node.js Worker │
│ (React + duck) │ SSE │ (LangGraph) │
│ │◀────│ │
│ · editor capture │ │ · skill prompts │
│ · diff / apply │ │ · model retry │
│ · artifact save │ │ · PPT/HTML render │
│ · SecretStorage │ │ · search + browse │
└─────────────────────┘ └──────────────────────┘
│ │
▼ ▼
.obsidian/plugins/ OpenAI-compatible API
(data.json, no keys) (your gateway)
- 插件(浏览器端):UI、编辑器操作、密钥管理、文件保存。密钥只存在 Obsidian SecretStorage。
- 执行器(Node.js 子进程):LangGraph 工作流、模型调用、技能提示词、PPT/HTML 渲染、搜索抓取。仅监听
127.0.0.1,每次启动生成随机令牌。 - 通信:SSE(Server-Sent Events)流式传输步骤、token、产物。
模型层可靠性
| 机制 | 参数 |
|---|---|
| 首次响应超时 | 30 秒无任何输出(含推理流)→ 放弃重试 |
| 输出中断超时 | 30 秒无新 token → 放弃重试 |
| 单次上限 | 5 分钟 |
| 重试次数 | 最多 3 次,指数退避 |
| 快速模型兜底 | 配置后最后一次重试改用快速模型 |
| 半截内容处理 | 重试前清除已显示的部分输出 |
上游技能(内置)
| 技能 | 来源 | 用途 |
|---|---|---|
| theme-factory | anthropics/skills (Apache-2.0) | 10 套配色主题,所有 PPT/HTML 输出必须使用 |
| frontend-design | anthropics/skills (Apache-2.0) | 设计原则 |
| article-illustrator | baoyu-skills (MIT) | 配图方案类型 × 风格 |
| translate | baoyu-skills (MIT) | 中英互译 |
| humanizer-zh | Humanizer-zh (MIT) | 中文润色 |
| Fabric patterns | Fabric (MIT) | 解读/评论 |
| PPT Master | ppt-master (MIT) | 导出参考 |
完整许可证见 THIRD_PARTY_NOTICES.md。固定上游提交见 vendor/manifest.json。
安全与隐私
- 密钥不落盘:API Key 只存 Obsidian SecretStorage / 环境变量,不写入
data.json - 执行器仅本机:只监听
127.0.0.1,每次启动随机令牌,浏览器来源请求一律拒绝 - 笔记数据不出库:只处理当前打开的
.md,任务绑定文件快照;切换笔记或手动编辑后拒绝应用旧结果 - 本机 Chrome 隔离:无界面、临时独立配置(
--isolated),不读取你的 Cookie 和登录状态 - 无追踪:不发送遥测,不请求远程资源(PPT/HTML 生成无外网请求)
开发
npm ci # 安装依赖 npm run typecheck npm test # 72 tests npm run build # 构建 main.js + worker.cjs npm run package # 打包 dist/
测试覆盖:模型重试/停机检测、JSON 解析容错、PPT 原生可编辑文字验证、HTML 产物完整性、主题配色推导、配图提示词结构、搜索结果排序、UI 交互(流式/停止/替换/预览/图片缩略图)、密钥不泄漏。
npx tsx scripts/smoke.ts # 打包后执行器冒烟测试 node scripts/preview.mjs # 浏览器 UI 预览(模拟数据)
License
MIT









