MV211 downloadsTurn Obsidian into a desktop AI IDE with connected agents, in-editor AI, editable diff review, a system terminal, source editing and desktop file integration.
mv-AIDE 是一款 Obsidian 桌面端 AI IDE 插件:它把 Claude Code、Codex CLI 以及任意支持 MCP 的 Agent 桥接到你的本地知识库,同时在 Obsidian 内提供划词调用 LLM、行内补全、系统终端、源码编写辅助与默认文件打开器等能力。
.tex 等非 md 后缀注册为 Markdown view,按后缀配置 latex-suite 风格 Snippets、源码高亮、可扩展代码 Lint 诊断与可选 TeX 增强渲染。.md 及源码后缀注册为系统默认打开方式,库外文件经镜像目录在指定 vault 中打开。另内置多提供商的 API 提供商 管理(划词助手与行内补全共用,见下文专节)。
mv-AIDE,点击安装并启用。main.js、manifest.json、styles.css。<vault>/.obsidian/plugins/mv-obcc/,把三个文件复制进去。mv-AIDE 并启用。npm install # 安装开发依赖
npm run verify # lint + 类型检查 + 测试 + 构建 + bundle 隔离检查
npm run deploy:local # 构建并部署到相邻 vault(或指定 vault 路径)的插件目录
# 或者:
npm run package # 生成 release/ 下的发布目录与 zip 包
以下六节与设置页(设置 → mv-AIDE)的六个分区一一对应。
mv-aide)、管理 hooks。关闭后不写 IDE lock、不注册 MCP、不接管 Claude 设置。验证:在 Claude Code 中输入 /ide 应提示已连接;claude mcp get mv-aide 可查看注册。/ide 上下文读取,并把本插件 MCP 工具以受管块写入 ~/.codex/config.toml(配置键 mcp_servers.mv_aide_obsidian)。127.0.0.1 提供 Streamable HTTP 与 stdio 两种接入,每个 vault 使用独立随机 Bearer 令牌,支持协议版本 2026-07-28 / 2025-11-25 / 2025-03-26(由客户端协商)。设置页提供 mv-AIDE 协议状态、复制 HTTP 配置、复制 stdio 配置、刷新状态 与 轮换令牌(轮换后需更新所有客户端配置)。stdio 启动器只连接已经运行的 Obsidian,不会自行启动 Obsidian;服务在 Obsidian 启动完成后的空闲阶段按需加载,关闭开关或卸载插件即清理。obsidian://mv-aide/workspace/context、open-editors、latest-selection、latest-mention;工具侧完整暴露与 Claude/Codex 相同的 8 个 IDE 工具。插件不随附各 agent 的 hook 实现,但推荐用 agent 自带的 hook 机制把写入确认接到 openDiff 上,复刻 Claude Code 的审核闭环:agent 的写入前 hook 拦截写文件工具 → 用磁盘旧内容与工具输入构造新内容 → 调通用 MCP 的 openDiff 弹审核页 → 接受则放行(由 agent 原生写入,插件从不写文件),拒绝则阻止该次写入。
Kimi Code 已验证配置(0.30+;hook 脚本需自备,作为普通 MCP 客户端连接 stdio 启动器):
# ~/.kimi-code/config.toml
[[hooks]]
event = "PreToolUse"
matcher = "^(Write|Edit)$"
command = "node /path/to/your-diff-hook.mjs"
timeout = 600
[[permission.rules]]
decision = "allow"
pattern = "Write(F:/path/to/vault/**)"
已知限制:Kimi hook 只有放行/阻止、没有编程式「批准」,接受后跳过原生确认需靠 permission.rules 放行;权限规则只在会话启动时加载(改后要重启会话而非 /reload),glob 不匹配点目录(如 .kimi-code 需单独写规则);审核页内手改不会回传给 agent(无 updatedInput 机制);hook 超时上限 600 秒且超时/崩溃 fail-open;权限模式需嗅探会话目录 wire.jsonl 的 permission.set_mode 事件(未公开格式,可能随版本变化)。
mv-aide: 前缀)精确忽略该会话自己的终端;改变后请重新启动 Claude Code。/mcp。getLatestSelection)、获取全部打开标签(getOpenEditors)、在 Obsidian 中打开文件(openFile)、读取最近网页为 Markdown(readCurrentWebPage)。getLatestSelection、getOpenEditors、openFile、readCurrentWebPage、openDiff、closeAllDiffTabs、getDiagnostics、close_tab。其中 openDiff 仍在 Obsidian 内由用户接受或拒绝。ANTHROPIC_BASE_URL 指向本地兼容端点;关闭时恢复插件接管前的值)。acceptEdits 会直接接受编辑,插件不额外弹窗。ANTHROPIC_BASE_URL,不改其他配置。LLM → {模板} 或快捷键调用预设提示词。{selection} 占位符表示划词内容;不含占位符时划词会自动追加到末尾。每个模板可单独开关,并独立选择提供商、模型与思考模式(默认 / 开 / 关 / 自定义 JSON)。mv-aide-llm-history/latest.md(每次调用覆盖,已对文件树、搜索与快速切换隐藏)。{rejected} 占位符代表被拒绝的补全文本),均可一键 恢复默认。注意:无需补全指令 中的 <MV_SENCEAI_NO_COMPLETION> 哨兵必须保留,修改或删除会导致无法正确抑制无效补全。Open System Terminal (打开系统终端);插件不设默认快捷键,可在 Obsidian 快捷键设置中自行绑定。$SHELL 或 /bin/zsh)与 参数(默认 -l);Windows Shell 路径(留空默认 cmd.exe)与 参数。MesloLGS NF,解决图标/分隔线乱码;留空默认 Menlo, Monaco, monospace)、终端字号 (Font Size)(默认 13px)、终端按键直通 (Key passthrough)(终端聚焦时把 Ctrl/Alt/F 键/方向键组合直接发给终端程序,不再触发 Obsidian 快捷键)。#;#:,Markdown 填 <!--,TeX 填 %,JS 填 //)。在笔记或源码文件底部书写带 mv-run: <命令> 的注释行(如 # mv-run: python script.py 或 <!-- mv-run: npm run test -->),在命令面板运行「运行文件底部指令」即可将指令自动提取并顺序送入激活终端执行。Markdown (.md) profile)。添加新源码类型(如 .tex、.bib、.m)后,该后缀自动注册为 Markdown view,并出现在左侧功能区与命令面板的「新建非 MD 源码文件」中。// 按 JS 注释处理。手动触发按键(默认 Tab)、下一 tabstop、上一 tabstop 可下拉选择或 录制。内核内置行为:IME 输入抑制与 snippet 去空白默认开启,调试输出默认关闭。ruff check --output-format=concise {file},TeX 配置 chktex -f%f -v0 {file})。支持 {file} 占位符。命令输出只要符合 文件:行:列: 消息 规则即可在编辑器中自动标注错误波浪线与诊断问题。开启「Lint 常驻」可在文件打开及编辑停顿后自动更新 diagnostics,亦可通过命令面板运行「Lint 当前文件」手动检查。注意:用户需提前在电脑上手动安装对应的外部 Lint CLI 工具(如 chktex, ruff, eslint 等),并确保可在系统 PATH 中运行。.tex profile 额外提供 打开 TeX 增强渲染(实验功能,默认关闭):用插件自定义 Live Preview 扩展渲染 \(...\)、\[...\] 和常见数学环境(公式预览显示在公式上方,带 ▶ 光标指示);要求该 profile 的 snippets 替换开关处于开启状态,否则不会加载。.css / .json 文件 载入自定义代码高亮主题,支持 Prism CSS、highlight.js CSS、VS Code / Shiki / TextMate JSON 与 mv-AIDE JSON(可自动检测格式);非 Prism 格式会转换为近似效果,不能完全还原。MV.AIDE.FileOpener[.<后缀>] 完整注册到"打开方式"和"默认应用"列表(显示名 MV AIDE File Opener)→ 自动打开 Windows 默认应用设置 → 由用户为每个后缀完成系统确认(Windows 8 及以上不允许应用静默替换默认应用;认准 MV AIDE File Opener,不要选 Windows Based Script Host)→ 再点 检查 确认 → 需要时用 清理 移除。注册只写当前用户的 HKCU,不申请管理员权限,也不写受保护的 UserChoice。MV AIDE File Opener.app(bundle id com.mv.aide.file-opener);Linux 使用 mv-aide-file-opener.desktop;清理按钮同样适用。mv-aide-external-files/mirror):双击打开库外文件时,始终优先在该目录创建并验证真实 symlink;仅当创建失败且本机已授权时,才使用隔离的受管临时副本与双向同步。可手动点 重试并迁移符号链接 把安全收敛的副本迁回真实符号链接。~/.mv-aide/;wrapper 不安装常驻后台守护进程——Obsidian 关闭时,它会先通过 Obsidian URL 唤醒目标 vault,再等待插件本地服务启动。划词助手与行内补全共用此处的提供商配置(设置页"划词助手"分区顶部)。
/chat/completions,Anthropic 类型自动追加 /v1/messages。data.json;本地无鉴权服务(如 Ollama)可留空。app:// Origin 的 CORS 拒绝(表现为"Failed to fetch"),但会失去流式、改为一次性返回。127.0.0.1,不对局域网暴露。HKCU;清理 只删除本插件自身的注册,不申请管理员权限,不写受保护的 UserChoice。data.json,请按需保护 vault 目录。pip install pywinpty(自定义了 Python 路径时用对应解释器,如 D:\Env\python.exe -m pip install pywinpty)。claude mcp get mv-aide 确认注册;在设置页 MCP 注册状态 点 重新注册;改动工具开关后需重启客户端或重新执行 /mcp。explorer.exe)或注销重登后生效。1.11.5,并保留上游 MIT 许可声明。