English | 中文

KiloCode Obsidian

KiloCode for Obsidian

我的 Obsidian 知识库,我用 KiloCode 来管理。

我有一个知识库 Wiki(Obsidian),我有一个 AI 工具(KiloCode)。
这个插件让它们在一起工作。

Release License Stars Issues Obsidian Plugin

--- ## 问题 管理 Obsidian 知识库很难。笔记多了以后: - 笔记之间缺少关联 — 知识孤岛越来越多 - 标签混乱 — 同一个概念用了不同标签 - 周度回顾成为负担 — 写了日记却没有定期整理 - 知识沉淀全靠手动 — 写的时候花功夫,整理又花更多功夫 我有一个 AI 工具 KiloCode 在帮我写代码。现在同一个工具,在 Obsidian 里也能帮我管知识。 **这个插件就是让它们在一起的桥梁。** --- ## 这个插件做什么 KiloCode for Obsidian 是我的知识库(Obsidian vault)和 KiloCode CLI 之间的双向桥梁。KiloCode 是我的 AI 工具——它在终端帮我写代码,现在在我最常用的笔记工具里也能用。 ``` ┌──────────────────────────────────────────────────────────────┐ │ Obsidian Vault │ │ (我的知识库) │ │ │ │ ┌──────────┐ ┌──────────────┐ ┌───────────────────────┐ │ │ │ 笔记 │ │ .kilo/skills/ │ │ .kilocode/sessions/ │ │ │ │ (.md) │ │ (知识处理技能 │ │ (对话历史) │ │ │ │ │ │ 存放在 vault │ │ │ │ │ │ │ │ 里) │ │ │ │ │ └──────────┘ └──────────────┘ └───────────────────────┘ │ │ ▲ ▲ ▲ │ │ │ │ │ │ │ └──────────────┼──────────────────────┘ │ │ │ │ │ ┌───────────┴───────────┐ │ │ │ KiloCode 插件 │ │ │ │ (本插件) │ │ │ │ │ │ │ │ @提及 vault 文件 │ │ │ │ 注入技能上下文 │ │ │ │ 附加当前笔记 │ │ │ │ 路由对话 │ │ │ └───────────┬───────────┘ │ │ │ HTTP (127.0.0.1) │ └────────────────────────┼──────────────────────────────────────┘ │ ┌────────────▼────────────┐ │ KiloCode CLI │ │ (kilo serve) │ │ │ │ AI 模型 │ │ 工具执行 │ │ 代码生成 │ └─────────────────────────┘ ``` ### 为什么这个插件有趣? - **知识在 vault 里,工具一起用**:笔记、知识处理技能、会话历史都在我的 vault 里——版本控制、自动备份。KiloCode 每次对话都读取它们作为上下文。同一个 KiloCode 配置,终端写代码和 Obsidian 管知识,零额外配置。 - **Skill 即知识处理流程**:知识处理技能是 vault 内 `.kilo/skills/` 目录下的 `.md` 文件。用 markdown 写一个每周回顾流程 → 每周一键执行。编辑技能文件 → 行为即时改变。无需切换配置,无需重启 CLI。 - **@ 即搜即引**:输入 `@` 搜索并引用 vault 中的文件、文件夹、MCP 服务器或子代理。笔记内容无缝流入 AI 对话。 - **一键笔记上下文**:切换"包含当前笔记"按钮,当前笔记内容自动发送给 AI — 无需复制粘贴。 - **文件附件**:拖拽、粘贴或点击附加文件。文本文件自动读取内容发送给 AI。 - **MCP 配置在 vault 里**:`.kilocode/mcp.json` 定义 AI 工具。编辑这个文件就能赋予 KiloCode 新能力。 - **CLI 零安装**:首次使用时自动下载 KiloCode CLI 二进制文件。插件管理完整的生命周期 — 启动、保活、空闲超时自动关闭。 - **直接读取 CLI 配置**:如果已在终端中使用 KiloCode CLI,插件直接读取 `~/.config/kilo/kilo.jsonc` — API 密钥、模型选择、代理设置全部自动继承。终端配置一次,Obsidian 中直接使用。 --- ## 变化对比 ### 之前 管理知识库全靠手动: - 写了笔记就放着,很少再整理 - 标签体系慢慢走形 - 周度回顾需要自己做、自己记 - 知识孤岛没人管 ### 之后 KiloCode 成为我的知识库管理助手: - 知识处理技能随时可用(vault 中的 markdown 文件) - 之前的会话可搜索、可复用 - 每周回顾一键执行 - 知识随着时间不断积累和梳理 --- ## KiloCode 的工具箱 × 我的知识库管理 KiloCode 是我手里的工具箱。每个工具怎么用在知识库管理上: | KiloCode 的工具 | 我用它来... | 举个例子 | |----------------|------------|---------| | **Skill 系统** | 编写可复用的知识处理流程 | 写一个 `weekly-review.md` 技能:每周五跑一次,自动扫描本周日记 → 提取关键决策 → 生成周度摘要。一次编写,每周 `/skill weekly-review` 一键执行 | | **Bash / 脚本** | 批量操作笔记 | "把我文件夹里所有没有标签的笔记,根据内容自动打上标签"——一条指令,它帮我做完 | | **文件读写** | 生成知识索引和地图 | "扫描 vault 里所有关于机器学习的笔记,生成一个带反向链接的知识地图页面" | | **MCP 工具** | 从外部往知识库"进货" | 接 Brave Search → "搜索最近一周关于 AI Agent 的最新进展,写入文献笔记" | | **Plan 模式** | 安全地分析知识库全貌 | "分析我的 vault 结构,找出知识孤岛、标签混乱"——只看不改,确认后再动手 | | **权限控制** | 放心让它干活 | 日常用 Plan 模式分析,确认后用 Normal 模式执行。永不开 Yolo——我的数据安全第一 | | **多标签页** | 并行处理多个知识任务 | Tab 1 在研究关联,Tab 2 在写周报,Tab 3 在整理标签 | | **Fork/Rewind** | 不满意就回退重来 | "刚整理的标签我不满意 → Rewind 回退 → 调整一下 → 重新执行" | | **会话持久化** | 知识工作的积累不丢失 | 每次整理会话自动保存——下周打开能看到上周做了什么整理 | | **零配置** | 打开就能用 | 我已经在终端用 KiloCode 了,在 Obsidian 里打开同一个工具,什么都不用配置 | --- ## 功能特性 | 功能 | 能力 | |------|------| | **AI 聊天侧边栏** | 在 Obsidian 侧边栏中与 KiloCode AI 对话。每条消息携带 vault 路径、当前笔记和已安装的技能作为上下文 — AI 知道你的 vault。 | | **@提及 Vault 文件** | 输入 `@` 或点击工具栏 `@` 按钮,搜索并引用 vault 中的文件、文件夹、MCP 服务器。笔记内容直接流入对话 — 无需复制粘贴。 | | **自定义指令** | 点击 `#` 打开指令编辑器 — 编写自定义系统提示词,注入到当前对话。文本自动保存,每个 session 需重新应用。 | | **文件附件** | 点击工具栏 `📎` 从系统附加任意文件。文本文件自动读取内容随消息发送给 AI。 | | **当前笔记上下文** | 一键切换将当前活跃笔记作为 AI 上下文。插件通过 Obsidian 的 Vault API 读取笔记内容并传递给 CLI。 | | **Vault 内技能系统** | 知识处理技能是 vault 中 `.kilo/skills/` 目录下的 `.md` 文件。插件自动加载它们并注入到每次 AI 对话的系统上下文中。编辑技能文件 → AI 行为即时改变。无需重启 CLI。 | | **斜杠命令** | `/skill` 从内置目录激活技能,`/model` 切换 AI 模型,`/mode` 切换 code/plan/ask 模式,`/compact` 压缩对话历史,`/clear` 开始新会话。 | | **MCP 工具框架** | 工具定义在 vault 内的 `.kilocode/mcp.json` 中。插件在 @mention 下拉列表中列出可用 MCP 服务器,方便在对话中引用。 | | **计划模式** | 三种模式:code(完整读写)、plan(只读分析)、ask(仅问答)。模式前缀注入每条发送给 CLI 的消息。 | | **多标签页聊天** | 多个独立聊天会话。每个标签页的对话历史存储在 `.kilocode/sessions/` 中 — 跟随你的 vault 一起备份。 | | **流式响应** | 实时 AI 响应,支持取消中断。插件消费 CLI 的异步生成器,增量更新 UI。 | | **对话分支/回退** | 在任意消息处创建分支(fork),或回退到之前的对话状态。通过 ConversationController 层管理。 | | **权限系统** | Yolo(自动放行)/ Normal(逐次审批对话框)/ Plan(只读模式)。ApprovalManager 在工具调用到达 CLI 前进行拦截。 | | **国际化** | 中英文界面,支持根据浏览器语言自动切换。 | | **CLI 自动下载** | 无需手动安装 CLI。BinaryManager 在首次使用时自动检测、下载并缓存对应平台的 KiloCode 二进制文件。后台预热预启动 CLI 进程,使首次消息发送更快速。 | | **直接读取 CLI 配置,开箱即用** | 已在终端中使用 KiloCode?插件直接读取 `~/.config/kilo/kilo.jsonc` — API 密钥、模型选择、代理设置自动继承,无需在插件设置中重复输入。`/model` 命令直接列出你 CLI 配置中的模型。终端配置一次,Obsidian 中直接使用。 | | **空闲超时** | 无活动 10 分钟后自动停止 CLI 进程以节省资源。下一条消息透明地重新启动。使用 HTTP keep-alive 减少连接开销。 | --- | 文档 | 读者 | 内容 | |------|------|------| | **[ARCHITECTURE.md](ARCHITECTURE.md)** | 贡献者 | 目录结构、数据流、核心组件、设计决策、安全模型 | | **[DEVELOPMENT.md](DEVELOPMENT.md)** | 开发者 | 搭建、构建/测试/代码检查命令、国际化指南、CI/CD 流程 | | **[ROADMAP.md](ROADMAP.md)** | 所有人 | 当前进展和未来计划 | | **[CHANGELOG.md](CHANGELOG.md)** | 所有人 | 版本历史和发布说明 | --- ## 快速开始 **前置要求**:Obsidian v1.7.2+(仅桌面端) > **零配置启动。** 无需手动安装 CLI — 插件首次使用时自动下载 KiloCode 二进制文件。如果你已全局安装 `kilo` 或已有 `~/.config/kilo/kilo.jsonc` 配置,插件自动检测使用。API 密钥、模型偏好、代理设置全部自动继承,零额外配置。 ### 安装方式 **从 Obsidian 社区插件安装(推荐)** 1. 打开 Obsidian → 设置 → 社区插件 → 浏览 2. 搜索 "KiloCode" 并点击安装 3. 启用插件 **从 GitHub Release 安装** 从[最新发布](https://github.com/realhenrylan/obsidian-with-kilocode/releases/latest)下载 `main.js`、`manifest.json` 和 `styles.css`,放入 `/.obsidian/plugins/kilocode/`。 **从源码安装** ```bash cd /path/to/vault/.obsidian/plugins git clone https://github.com/realhenrylan/obsidian-with-kilocode.git cd obsidian-kilocode npm install npm run build ``` --- ## 使用方法 ### 基本聊天 点击功能区 KiloCode 图标(或 `命令面板 → KiloCode: Open chat view`),输入消息后按 `Enter` 发送。响应实时流式显示 — 按 `取消` 中断。`Shift+Enter` 换行。 ### 快速参考 | 操作 | 方法 | |------|------| | **@提及 Vault 文件** | 输入 `@` 或点击工具栏 `@` → 搜索引用文件、文件夹、MCP 服务器 | | **斜杠命令** | 输入 `/` 或点击工具栏 `/` → `/skill`、`/model`、`/mode`、`/compact`、`/clear` | | **自定义指令** | 点击工具栏 `#` 编写自定义系统提示词,应用到当前 session | | **文件附件** | 点击工具栏 `📎` 从系统附加任意文件 | | **当前笔记上下文** | 切换工具栏 `📝` 按钮将当前笔记作为 AI 上下文 | | **切换模式** | 点击模式按钮或 `Shift+Tab` 循环 Code/Plan/Ask | | **分支/回退** | 悬停消息显示 ⏪ 回退、🍴 分支、📋 复制 | | **内联编辑** | 选中文本 → `Ctrl/Cmd+Shift+E` → 输入指令(AI 调用待完成) | ### 权限模式 | 模式 | 行为 | |------|------| | **Normal**(默认) | 读取工具自动放行,写入工具需要审批 | | **Yolo** | 所有工具自动放行 — 不弹出提示 | | **Plan** | 读取工具放行,写入工具拒绝 — 只读保障 | --- ## 配置 打开 设置 → KiloCode: | 分区 | 关键设置 | |------|----------| | 常规 | CLI 路径(自动检测)、自动启动 | | API | API Key、Base URL(留空则使用 CLI 存储的凭据) | | 聊天 | 最大标签页数(默认 3)、自动保存、压缩保留数(默认 5) | | 模型 | 默认模型(默认 `claude-sonnet-4-20250514`)、温度(默认 0.7) | | 外观 | 主题(自动/亮色/暗色)、字体大小(默认 14px) | | 安全 | 权限模式(Normal / Yolo / Plan) | **环境变量**:在 设置 → 环境 中配置(共享和 KiloCode 特定)。设置 API Key / Base URL 时,会传递 `KILO_API_KEY` 和 `KILO_BASE_URL` 给 `kilo serve` 进程。 **MCP 服务器**:在 `vault/.kilocode/mcp.json` 中配置: ```json { "servers": { "filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/dir"] }, "web-search": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-brave-search"] } } } ``` --- ## 架构 详见 [ARCHITECTURE.md](ARCHITECTURE.md) — 目录结构、数据流图、核心组件说明、设计决策和安全模型。 --- ## 开发 详见 [DEVELOPMENT.md](DEVELOPMENT.md) — 搭建步骤、构建/测试/代码检查命令、国际化指南和 CI/CD 流程。 --- ## 路线图 详见 [ROADMAP.md](ROADMAP.md) — 当前进展和未来计划。 --- ## 故障排除 ### KiloCode CLI 未找到 插件首次使用时自动下载 CLI。如果失败: 1. 检查网络连接 2. 在 设置 → 常规 → 下载镜像 URL 中设置镜像地址 3. 手动安装:`npm install -g @kilocode/cli` 4. 验证:`kilo --version` ### CLI 路径问题 留空以自动检测。如需手动设置,使用 `which kilo`(macOS/Linux)或 `where.exe kilo`(Windows)查找路径,在 设置 → 常规 → CLI 路径 中设置。 ### JSON-RPC 通信错误 确保 `@kilocode/cli` 为最新版(`npm update -g @kilocode/cli`)并确认 API 密钥配置正确。 ### 网络错误 检查网络连接、API 密钥和防火墙设置(CLI 需要出站 HTTPS 访问)。 ### 对话持久化问题 对话存储在 `.kilocode/sessions/` 中。检查文件夹是否可写、自动保存是否开启。 --- ## 许可证 MIT — 详见 [LICENSE](LICENSE)。 --- ## 支持 - [GitHub Issues](https://github.com/realhenrylan/obsidian-with-kilocode/issues) — Bug 报告和功能请求 - [Discussions](https://github.com/realhenrylan/obsidian-with-kilocode/discussions) — 问题和社区交流 - [Discord](https://discord.gg/kilocode) — 实时支持 ---

为 Obsidian 和 KiloCode 社区用心制作 ❤️