p4nt1um299 downloadsFlowith-style branching AI conversations on Obsidian Canvas. Fork, explore, and map your thinking.
对话即地图,地图即笔记。
Conversation is a map. The map is your notes.
在 Obsidian Canvas 上实现 Flowith 式的分叉对话——从任意节点拉线分叉、标注方向、每个分支独立对话、自动继承上下文,最终自然形成一张可回溯的思维地形图。
Flowith-style branching AI conversations on Obsidian Canvas. Fork from any node, label the direction, and watch your thinking evolve into a navigable map of ideas.
多方向分叉对话 + 框架预设 + 模型选择 — 中文界面
语言设置:跟随系统 / 简体中文 / English
最新版本: v0.4.0 | 更新: 2026-08-06 | 发布: GitHub Releases
这不是"又一个 AI 聊天插件"——Obsidian 已经有 Text Generator、Copilot 等。这个插件的真正价值是把对话变成可浏览的思维地图:
| 功能 | 说明 | 状态 |
|---|---|---|
| 🔀 从节点分叉 | 右键任意对话节点 → 输入方向 → 创建新的 AI 对话分支 | ✅ |
| 🔀 多方向批量分叉 | 一次输入多个方向,并行生成多条分支 | ✅ |
| 🏷️ 方向标注 | 分叉时输入方向(如"从成本角度分析"),标注在连接线上 | ✅ |
| 🔗 上下文继承 | 沿直系祖先链自动收集对话历史,新分支自带完整上下文 | ✅ |
| 💬 继续追问 | 在当前分支链上追加对话,直线延续 | ✅ |
| 🤖 单次问答 | 不带历史上下文,快速问一句 | ✅ |
| 🎨 多模型配置 | 每个模型独立配置:别名、Provider、Base URL、颜色、图标、系统提示词、Temperature | ✅ |
| 🏷️ 指定模型分叉 | 右键 → 指定模型分叉,不同模型不同视角 | ✅ |
| 🔬 连通性测试 | 配置时一键测试 API 连通性,远端获取模型列表 | ✅ |
| 👁️ 节点视觉区分 | 用户节点灰色、AI 节点用模型配置色,一眼区分谁说的 | ✅ |
| 🌈 分支颜色编码 | 不同分支自动分配不同颜色,一眼看出分叉结构 | ✅ |
| 📤 导出 Markdown | 将整棵对话树导出为带层级缩进、双链引用的 Markdown 文件 | ✅ |
| 📝 节点自动命名 | AI 回答完成后自动写入摘要元数据,Canvas 上不用打开就能看到梗概 | ✅ |
| ⚡ 流式刷新 | token 级流式更新到 Canvas 节点,实时看到 AI 输出 | ✅ |
| 🏷️ 快捷模板 | 分叉弹窗中可点击的模板 chips,一键插入常用方向 | ✅ |
| 🔀 分支合并 | 多分支合并为总结节点 | ✅ |
| ▶️ 回放对话 | 按时间线/广度/深度回放整棵对话树 | ✅ |
| 🌐 多语言 | 简体中文 / English,跟随系统自动切换 | ✅ |
| 🔑 跨平台 API Key | 四层降级策略,支持 .env 文件和直接输入 | ✅ |
| 🌐 BASE_URL 自动匹配 | 读取 API Key 环境变量时自动匹配 BASE_URL | ✅ |
| 🌐 导出交互式 HTML | 单文件 HTML,移动端适配,Markdown 预渲染,离线查看 | ✅ |
| 🎬 对话回放(HTML) | 逐步高亮节点,速度可调,进度条显示 | ✅ |
| 🔍 全文搜索(HTML) | 搜索结果高亮,前后导航 | ✅ |
| 🌓 主题切换(HTML) | 亮色/暗色/跟随系统 | ✅ |
| 📱 移动端适配 | 响应式布局,触摸优化,手势操作 | ✅ |
📸 参见上方预览截图
┌──[成本角度]──→ [AI回答: 成本...] ──→ [追问] ──→ ...
[问题: 这个方案如何?] ──┼──[安全角度]──→ [AI回答: 安全...] ──→ [追问] ──→ ...
└──[换个思路]──→ [AI回答: 换个...] ──→ [追问] ──→ ...
main.js、manifest.json、styles.css<你的vault>/.obsidian/plugins/canvas-branch-chat/
git clone https://github.com/p4nt1um/canvas-branch-chat.git
cd canvas-branch-chat
npm install
npm run build
将生成的 main.js、manifest.json、styles.css 复制到插件目录。
插件支持四种 API Key 配置方式,按优先级从高到低:
1. 设置面板直接输入(最高优先级)
↓
2. 插件目录 .env 文件
↓
3. Vault 根 .env 文件
↓
4. 系统环境变量(最低优先级)
方式一:设置面板直接输入(推荐,最简单)
data.json)方式二:使用 .env 文件
创建 .env 文件(选择以下任意位置):
.obsidian/plugins/canvas-branch-chat/.env你的vault/.env文件内容:
DEEPSEEK_API_KEY=你的密钥
DEEPSEEK_BASE_URL=https://api.deepseek.com/v1 # 可选
方式三:系统环境变量(适合开发者)
~/.bashrc 或 ~/.zshrc,添加:export DEEPSEEK_API_KEY=你的密钥
保存后执行 source ~/.bashrc。设置完成后重启 Obsidian,确保配置被加载。
BASE_URL 自动匹配
如果使用 .env 文件配置 DEEPSEEK_API_KEY,插件会自动读取同文件中的 DEEPSEEK_BASE_URL 并覆盖设置面板的 Base URL 配置。
安全提示:
data.json,仅自己可见支持任意 OpenAI 兼容 API(DeepSeek、OpenAI、Ollama 本地模型等)。
导出的 HTML 文件特点:
文件命名:根节点第一句话_YYYYMMDD_HHMMSS.html
兼容性:Chrome/Safari/Firefox/Edge + iOS Safari/Android Chrome
This is not "yet another AI chat plugin" — Obsidian already has Text Generator and Copilot. The real value of this plugin is turning conversations into navigable thinking maps:
| Feature | Description | Status |
|---|---|---|
| 🔀 Branch from node | Right-click any node → enter direction → create a new AI branch | ✅ |
| 🔀 Multi-direction batch fork | Enter multiple directions at once, generate branches in parallel | ✅ |
| 🏷️ Direction labels | Label each fork with its exploration direction (e.g., "cost analysis") | ✅ |
| 🔗 Context inheritance | Automatically collect conversation history along the ancestor chain | ✅ |
| 💬 Continue chat | Append dialogue on the current branch chain | ✅ |
| 🤖 Quick ask | Single Q&A without history context | ✅ |
| 🎨 Multi-model config | Per-model config: alias, provider, base URL, color, icon, system prompt, temperature | ✅ |
| 🏷️ Choose model to fork | Right-click → pick a specific model/role to branch with | ✅ |
| 🔬 Connectivity test | One-click API test + fetch remote model list | ✅ |
| 👁️ Visual differentiation | User nodes grey, AI nodes use model's color — instantly distinguishable | ✅ |
| 🌈 Branch color coding | Each branch gets a unique color from the palette | ✅ |
| 📤 Export Markdown | Export the entire conversation tree as hierarchical Markdown with wiki links | ✅ |
| 📝 Auto node naming | AI responses auto-write summary metadata for easy scanning on Canvas | ✅ |
| ⚡ Streaming | Token-level streaming updates to Canvas nodes in real time | ✅ |
| 🏷️ Quick templates | Clickable template chips in the branch dialog for common directions | ✅ |
| 🔀 Branch merging | Combine multiple branches into a summary node | ✅ |
| ▶️ Replay | Step through the conversation tree chronologically | ✅ |
| 🌐 i18n | 简体中文 / English, auto-detect system locale | ✅ |
| 🔑 Cross-platform API Key | Four-tier fallback strategy, supports .env files and direct input | ✅ |
| 🌐 BASE_URL auto-match | Auto-match BASE_URL when reading API Key env variable | ✅ |
| 🌐 Export interactive HTML | Single-file HTML, mobile-friendly, offline viewing | ✅ |
| 🎬 Dialogue replay (HTML) | Step-by-step highlighting, speed control, progress bar | ✅ |
| 🔍 Full-text search (HTML) | Search result highlighting, prev/next navigation | ✅ |
| 🌓 Theme switching (HTML) | Light/Dark/Auto, CSS variables | ✅ |
| 📱 Mobile adaptation | Responsive layout, touch optimization, gestures | ✅ |
📸 See screenshots above
┌──[Cost]──→ [AI: Cost analysis...] ──→ [Follow-up] ──→ ...
[Q: How about this?] ──┼──[Security]──→ [AI: Security...] ──→ [Follow-up] ──→ ...
└──[Alt approach]──→ [AI: Alternative...] ──→ [Follow-up] ──→ ...
main.js, manifest.json, styles.css<your-vault>/.obsidian/plugins/canvas-branch-chat/
git clone https://github.com/p4nt1um/canvas-branch-chat.git
cd canvas-branch-chat
npm install
npm run build
Copy the generated main.js, manifest.json, styles.css to the plugin directory.
The plugin supports four API Key configuration methods (high to low priority):
1. Direct input in settings (highest priority)
↓
2. Plugin directory .env file
↓
3. Vault root .env file
↓
4. System environment variables (lowest priority)
Method 1: Direct Input in Settings (Recommended, Simplest)
data.json)Method 2: Use .env File
Create .env file (choose any of these locations):
.obsidian/plugins/canvas-branch-chat/.envyour-vault/.envFile content:
DEEPSEEK_API_KEY=your-key-here
DEEPSEEK_BASE_URL=https://api.deepseek.com/v1 # optional
Method 3: System Environment Variables (For developers)
~/.bashrc or ~/.zshrc:export DEEPSEEK_API_KEY=your-key-here
Then run source ~/.bashrc.Restart Obsidian after configuration.
BASE_URL Auto-Match
When using .env file with DEEPSEEK_API_KEY, the plugin automatically reads DEEPSEEK_BASE_URL from the same file and overrides the Base URL in settings.
Security Tips:
data.json, visible only to youSupports any OpenAI-compatible API (DeepSeek, OpenAI, Ollama local models, etc.).
MIT
See PLAN.md for the full development roadmap.
Issues and PRs welcome. This is a community project built on top of the MIT-licensed obsidian-canvas-ai.
Built with 🧚♀️ by Zhang Bin