多AI提供者聊天插件

Obsidian插件,集成Claude、Gemini、Codex和Antigravity四种AI助手,支持分标签路由、行内差异编辑和学术研究功能,适用于研究人员和学术写作。

  • by hkcanan
  • TypeScript
  • 本地部署
  • 475 星标
  • 更新于
在 GitHub 查看 hkcanan/katmer-code

使用说明

%s(%s)

黑曜石内部的多提供商人工智能聊天——Claude、Gemini、Codex和Antigravity在一个侧边栏中,具有每个标签的路由、内联差异编辑、学术研究技能和MCP支持。

一个黑曜石插件,将四个人工智能助手放在你的侧边栏中——每个聊天选项卡都可以运行不同的提供商。专为使用黑曜石写作的研究人员而设计,他们希望在不离开编辑的情况下比较模型拍摄、编辑手稿、检查引文和运行同行评审工作流程。

船舶与 7学术研究技能 它在每个提供者中都像斜线命令一样工作。 仅限桌面 (需要相应的提供者CLI)。


提供商

提供者 身份验证 备注
克劳德代码 Anthropic Pro/Max订阅 claude 登录 原始集成。全功能集:流媒体、工具、内联差异、思维块、MCP。
双子座 通过谷歌登录 gemini (适用于AI Pro/One订阅) 流文本、工具调用、内联差异(replace 工具别名为“编辑”)。
法典 通过ChatGPT Plus/Pro订阅 codex login 推理工作已完成(model_reasoning_effort)MCP,网络搜索。
反重力 与Gemini相同的谷歌登录(通过 agy 浏览器身份验证) 仅限聊天-- agy v1.0.2尚未公开结构化输出。在Gemini CLI 2026年6月18日日落之前,为Google AI Pro帐户提供迁移路径。

每个聊天选项卡都固定了自己的提供者+模型——Codex在一个选项卡中,而Gemini在另一个选项卡上处理其他内容。击打 咨询其他型号 在任何回复中获得第二意见(被咨询模型的回复和活动模型的合成出现在同一个对话中,没有标签切换)。


快速开始

  1. 至少安装一个提供程序CLI。摩擦顺序(从低到高):
    • npm install -g @anthropic-ai/claude-code && claude
    • npm install -g @google/gemini-cli && gemini
    • npm install -g @openai/codex && codex login
    • curl -fsSL https://antigravity.google/cli/install.sh | bash && agy
  2. 克隆和构建: git clone https://github.com/hkcanan/katmer-code.git && cd katmer-code && npm install && npm run build
  3. 复制 main.js, manifest.json, styles.css 进入 <your-vault>/.obsidian/plugins/katmer-code/
  4. 启用 %s(%s) 黑曜石→ 设置→ 社区插件
  5. (可选)设置→ KatmerCode→ 切换 将CLAUDE.md自动镜像到其他提供商 因此,您的自定义规则适用于所有地方
  6. 对于学术技能:打开+启用 允许Web请求

它的作用

  • 每个选项卡到任何提供商的路由 --Claude SDK+Gemini/Copyrox/Antigravity CLIs位于一个ProviderAdapter接口后面。每个选项卡都独立保存自己的对话、提供者和模型。
  • 内联差异编辑 --Claude和Gemini在编辑器中的单词级跟踪更改(接受/撤消);Codex直接应用编辑(其CLI不会公开旧/新文本以进行内联呈现)。
  • 相同选项卡咨询 --每个回复都会得到一个小 咨询 按钮在后台生成目标提供者,将其作为咨询卡呈现,然后让活动模型合成这两个视图——所有这些都不会离开对话。从菜单中选择要咨询的特定型号。
  • 对话中切换标记 --当您翻转提供者或模型中间线程时,水平分隔符会记录更改的内容。提供者开关还警告说,以前的上下文不会在CLIs之间传递。
  • 插件登录 --如果提供者未通过身份验证,请单击选择器芯片,插件将自行运行CLI的登录流(Claude/Codex)或使用正确的命令打开终端(Gemini/Antigravity)。每隔几秒钟轮询一次,直到身份验证状态翻转。
  • HTML研究报告 --同行评审、引文分析、差距分析、期刊匹配——可在黑曜石内部查看。
  • 每个提供者的技能 --斜线命令,如 /peer-review 在Claude上本地运行(通过 ~/.claude/commands/)通过Gemini/Cox/Antigravity快速注射。同样的降价,同样的输出,四个后端。
  • 共享说明 --汽车后视镜 CLAUDE.md 到 GEMINI.md 和 AGENTS.md (全局和vault范围),因此相同的规则适用于每个模型。已查看的文件,在编辑时重新同步。
  • 推理努力 --有线为克劳德(SDK effort)食品法典委员会(model_reasoning_effort).双子座 thinking_level 是API-only,直到CLI公开它为止;effort UI会自动隐藏在不受支持的地方。
  • 每模型上下文跟踪 --上下文条显示了模型实际窗口的实际输入标记(Gemini 2.5/3.x系列为1M,Codex GPT-5.x为400K,Claude为200K-1M)。目录驱动,而不是通用的200K回退。
  • MCP服务器 --每个提供者读取自己的MCP配置(~/.claude.json, ~/.gemini/, ~/.codex/)--无需额外设置。
  • 底部锚定思维指标 --当模型准备回复时,你会在消息下方看到一个“正在思考……”的药丸,所以在发送和第一个令牌之间的延迟期间,你永远不会什么都不看。
  • 复制回复 --每个助理消息页脚上的小按钮;通过复选标记确认将markdown复制到剪贴板。

截图

聊天面板

文本选择自动附加为上下文。工具调用、思维块和侧边栏中的流式文本。

内联差异编辑

单词级跟踪更改——删除文本用红色删除线,添加文本用绿色下划线。接受(✓)或撤消(✕)。

同行评审报告

/peer-review 生成一份包含8个标准分数、雷达图和详细评估的HTML报告。

引文验证和缺失参考文献

使用评估徽章进行索赔级别验证。按引用次数和相关性排列的缺失参考文献。


学术技能

启用自 设置→ KatmerCode→ 学术技能。每个技能都以斜线命令的形式安装。

关于期望的说明: 这些技能是研究辅助工具,而不是神谕。他们查询真实的学术数据库(Semantic Scholar、CrossRef、OpenAlex、Unpaywall、arXiv、PubMed)并应用结构化分析,但输出是起点,而不是最终结论。A. /peer-review 报告不会取代人工审阅者。A. /cite-verify 如果数据库缺乏覆盖率,run可能会将有效引用标记为未验证。价值在于揭示你可能错过的东西:你没有考虑过的文献中的空白,你的参考文献中没有被引用的高引用论文,或者你的论点中的结构性弱点,当放在表格中时更容易看到。将报告用作地图,而不是领土。

技能是如何运作的

  1. 你提供了一份手稿 --活动文件、文件路径或选定文本。
  2. 克劳德阅读并分析了它 --解析结构,提取声明,识别引用。
  3. 查询API --该技能要求学术数据库进行交叉检查、搜索或丰富。
  4. 生成HTML报告 --有表格、图表和可操作的发现。
  5. 报告以《黑曜石》开头 --或者在浏览器中,由您选择。

对于较长的任务(引用验证的同行评审、研究差距分析),Claude使用 子代理 --同时处理分析不同部分的并行工作者。

可用技能

命令 它的作用 典型用例
/peer-review 根据8个标准(原创性、论证结构、文献覆盖面、方法论等)评估你的手稿。生成雷达图和逐段反馈。 提交前:“审稿人可能会标记什么?”
/cite-verify 对照CrossRef、Semantic Scholar和OpenAlex检查每个引用。标记在作者姓名、年份或标题中不匹配。测试引用的声明是否得到消息来源的实际支持。 起草后:“我的引用准确吗?”
/lit-search 并行搜索arXiv、语义学者、PubMed和OpenAlex。按相关性对结果和排名进行重复。 开始一个新项目:“X上发布了什么?”
/citation-network 构建一个交互式引文图(vis.js),显示谁引用了谁。包括时间线视图。 理解一个领域:“这些论文是如何联系起来的?”
/research-gap 识别文献中的时间、方法、主题和应用差距。根据可行性和潜在影响对每个差距进行评分。 规划研究:“机会在哪里?”
/journal-match 分析你的手稿的参考资料,并根据你引用的来源发表的地方建议目标期刊。 准备提交:“哪本期刊适合这篇论文?”
/abstract 以5种格式生成摘要:结构化、叙述性、图形描述、亮点和社交媒体摘要。 定稿:“给我写一份结构化的摘要。”

技能产出

/cite-verify --引文验证

每个引用都会根据CrossRef、Semantic Scholar和OpenAlex进行检查。用评估徽章标记的问题——年份错误、可疑引用、建议修复。

/journal-match --期刊建议

前10名期刊在范围、影响力、受众和接受度方面得分最高。对当前期刊进行优缺点评估。

具有最佳选择、强选择和安全选择的战略建议——每种选择都有推理。

/research-gap --差距分析

按优先级和影响排列的差距。证据密度显示了每个地区的勘探不足程度。

每个差距包括证据库、研究问题、可行性评估和战略说明。

出版趋势图显示了随时间推移的实地活动,有助于确定新兴或衰退领域。

报表设计

所有技能都可以使用共享设计系统生成HTML报告:

  • Crimson Pro 衬线字体(学术书籍美学)
  • Chart.js 用于雷达图、条形图、时间线
  • Alpine.js 用于可折叠部分和交互元素
  • 所有报告类型均采用一致的调色板、表格样式和徽章系统

报告在Obsidian(iframe查看器)或默认浏览器中打开。生成新报告时会自动显示通知。

一个实际的例子

假设你起草了一篇关于人工智能在法律推理中的应用的论文。以下是使用这些技能的一种方法:

  1. /peer-review makaleler/demo-article.md --在询问同事之前,先进行结构化评估
  2. 查看雷达图——注意“文献报道”得分较低
  3. /lit-search AI legal reasoning hermeneutics --查找您可能遗漏的文件
  4. /cite-verify makaleler/demo-article.md --检查所有14个参考文献是否准确
  5. /journal-match makaleler/demo-article.md --查看哪些期刊发表了类似的工作
  6. 根据调查结果编辑你的手稿,然后运行 /peer-review 再次

没有一次跑步能给你一个明确的答案。但每一个都向你展示了一些你自己可能没有看到的东西。


需求

  • 黑曜石 1.4.0+(仅限台式机-macOS、Windows或Linux)
  • Claude 代码命令行工具 已安装并登录
  • 克劳德账户 具有API访问权限
npm install -g @anthropic-ai/claude-code
claude  # log in once

安装

从源代码构建

git clone https://github.com/hkcanan/katmer-code.git
cd katmer-code
npm install
npm run build

这将在项目根目录中生成三个文件: main.js, manifest.json,以及 styles.css.

将所有三个复制到您的保险库中:

mkdir -p <your-vault>/.obsidian/plugins/katmer-code
cp main.js manifest.json styles.css <your-vault>/.obsidian/plugins/katmer-code/

然后启用 %s(%s) 黑曜石→ 设置→ 社区插件。


配置

设置 默认值 说明
默认提供程序 Claude 提供程序新选项卡随生成。每个选项卡都可以通过选择器覆盖。
每个提供程序CLI路径 自动检测 如果CLI位于某处,则覆盖 which 找不到
工作目录 vault根目录 运行CLI会话的位置。
权限模式 接受编辑 按提供者映射:Claude acceptEdits,食品法典委员会 --sandbox workspace-write,反重力 --dangerously-skip-permissions.
允许Web请求 关闭 学术技能所需(在Claude上启用WebFetch/WebSearch/cill, web_search="live" 食品法典委员会)。
自动镜像CLAUDE.md 关闭 复制 CLAUDE.md 到 GEMINI.md 和 AGENTS.md (全局和vault范围)并在编辑时重新同步。

按选项卡提供程序路由

每个聊天选项卡都有自己的 ProviderAdapter.通过以下方式切换提供商 输入下方的选择器仅影响该选项卡;其他选项卡保留 运行自己的后端。新选项卡继承活动选项卡的提供程序。

相同选项卡咨询

每条完整的助理消息都有一个页脚,页脚上有两个紧凑的 按钮:

  • 复制 --使用鼠标将回复(标记)放入剪贴板 勾选确认。
  • 咨询 --打开其他三个提供者的菜单,每个提供者都有 将使用的模型和 ▾ 选择一个不同的 (例如“咨询Gemini·2.5 Pro▾“)。单击并:
    1. 插件在后台生成目标提供者 主动回复作为上下文。
    2. 其响应呈现为 咨询卡 在 对话(提供者彩色轨道,斜体标题)。
    3. 紧凑的 合成药丸 已添加(没有完整的用户气泡,没有 重复引用),因此主动模型综合了咨询的 反对自己的观点。
    4. 活动模型的合成流如下图所示。

所有事情都发生在当前选项卡中。没有上下文丢失,没有选项卡 切换。药丸有一个 view prompt 如果你想切换的话 查看发送到活动模型的确切内容。

次要”↗ 在新选项卡中打开“选项位于底部 为喜欢模型之间完全隔离的用户提供的菜单。

对话中切换标记

如果您交换提供者或模型中间线程(通过选择器) 水平分隔符内联记录了更改:

─── Switched model · Sonnet → Opus 1M ───

提供程序开关添加了一个警告,即之前的对话上下文 未跨越CLIs:

─── Switched to Codex · GPT-5.5 → from Gemini · 3.1 Pro Preview ───
        ⚠ Previous conversation context isn't carried over

从插件登录

如果安装了提供商的CLI,但您未通过身份验证 拾取器中的提供者芯片显示琥珀色 登录 徽章。 点击它:

  • 克劳德/食品法典 --插件运行 claude auth login / codex login 本身。浏览器打开,你完成OAuth流程,插件 民意调查 auth status 每3秒翻转一次芯片✓ 一……就…… 它成功了。随时单击正在进行的吐司以手动 重新检查。
  • 双子座/反重力 --这些CLIs是交互式TUI,没有 headless login子命令,因此该插件使用以下命令打开Terminal.app 正确的命令。在那里完成登录,回来,选取 重新检测。

推理努力

为提供者显示努力选择器(低/中/高/最大) 这份荣誉:

  • 克劳德 --SDK effort 选项。
  • 法典 — --config model_reasoning_effort (插件将“max”映射到 兼容性为“高”;“xhigh”仅适用于 gpt-5.1-codex-max和类似变体)。
  • 双子座/反重力 --隐藏。双子座3.x有 thinking_level 在API中,但CLI尚未公开标志 (双子座诊所#25122).

MCP服务器(可选)

每个提供者读取自己的MCP配置——在 插件:

  • 克劳德 — ~/.claude.json
  • 双子座/反重力 — ~/.gemini/settings.json 和 ~/.gemini/ 配置
  • 法典 — ~/.codex/config.toml

这些是 不需要 但如果安装了,可以提高学术技能:

没有MCP服务器,技能使用WebFetch直接调用API。这工作得很好——MCP服务器只是让它更快,使用更少的令牌。


运作原理

Obsidian
├── Editor (with inline diffs — CodeMirror state field)
├── KatmerCode Chat (sidebar)
│   ├── Tab 1 ── ProcessManager → ClaudeAdapter   → @anthropic-ai/claude-agent-sdk
│   ├── Tab 2 ── ProcessManager → GeminiAdapter   → gemini -p --output-format stream-json
│   ├── Tab 3 ── ProcessManager → CodexAdapter    → codex exec --json
│   └── Tab 4 ── ProcessManager → AntigravityAdapter → agy --print
│
│   Each adapter normalizes its native event stream into UnifiedEvent
│   (Claude stream-json shape) so the chat-view stays provider-agnostic.
│
│   Shared services:
│   ├── Skills (~/.claude/commands/ for Claude, prompt-injection elsewhere)
│   ├── CLAUDE.md mirror (global + vault → GEMINI.md + AGENTS.md)
│   ├── MCP servers (each provider's own config)
│   └── Inline diff bridge (Edit tool events → CodeMirror state effects)
└── Report Viewer (iframe)

技能是 .md 提示文件已安装到 ~/.claude/commands/ 当 您可以在设置中启用它们。他们直接在Claude中工作(CLI 通过以下方式发现它们 supportedCommands())其他供应商通过 提示注入——插件读取技能标记并将其添加到前面 将您的消息作为系统上下文。


许可证

麻省理工学院

贡献

欢迎发布问题和PR。这是一个副项目,由一位研究人员为研究人员构建。