使用说明
%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在另一个选项卡上处理其他内容。击打 咨询其他型号 在任何回复中获得第二意见(被咨询模型的回复和活动模型的合成出现在同一个对话中,没有标签切换)。
快速开始
- 至少安装一个提供程序CLI。摩擦顺序(从低到高):
npm install -g @anthropic-ai/claude-code && claudenpm install -g @google/gemini-cli && gemininpm install -g @openai/codex && codex logincurl -fsSL https://antigravity.google/cli/install.sh | bash && agy
- 克隆和构建:
git clone https://github.com/hkcanan/katmer-code.git && cd katmer-code && npm install && npm run build - 复制
main.js,manifest.json,styles.css进入<your-vault>/.obsidian/plugins/katmer-code/ - 启用 %s(%s) 黑曜石→ 设置→ 社区插件
- (可选)设置→ KatmerCode→ 切换 将CLAUDE.md自动镜像到其他提供商 因此,您的自定义规则适用于所有地方
- 对于学术技能:打开+启用 允许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可能会将有效引用标记为未验证。价值在于揭示你可能错过的东西:你没有考虑过的文献中的空白,你的参考文献中没有被引用的高引用论文,或者你的论点中的结构性弱点,当放在表格中时更容易看到。将报告用作地图,而不是领土。
技能是如何运作的
- 你提供了一份手稿 --活动文件、文件路径或选定文本。
- 克劳德阅读并分析了它 --解析结构,提取声明,识别引用。
- 查询API --该技能要求学术数据库进行交叉检查、搜索或丰富。
- 生成HTML报告 --有表格、图表和可操作的发现。
- 报告以《黑曜石》开头 --或者在浏览器中,由您选择。
对于较长的任务(引用验证的同行评审、研究差距分析),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查看器)或默认浏览器中打开。生成新报告时会自动显示通知。
一个实际的例子
假设你起草了一篇关于人工智能在法律推理中的应用的论文。以下是使用这些技能的一种方法:
/peer-review makaleler/demo-article.md--在询问同事之前,先进行结构化评估- 查看雷达图——注意“文献报道”得分较低
/lit-search AI legal reasoning hermeneutics--查找您可能遗漏的文件/cite-verify makaleler/demo-article.md--检查所有14个参考文献是否准确/journal-match makaleler/demo-article.md--查看哪些期刊发表了类似的工作- 根据调查结果编辑你的手稿,然后运行
/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▾“)。单击并:- 插件在后台生成目标提供者 主动回复作为上下文。
- 其响应呈现为 咨询卡 在 对话(提供者彩色轨道,斜体标题)。
- 紧凑的 合成药丸 已添加(没有完整的用户气泡,没有 重复引用),因此主动模型综合了咨询的 反对自己的观点。
- 活动模型的合成流如下图所示。
所有事情都发生在当前选项卡中。没有上下文丢失,没有选项卡
切换。药丸有一个 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 --一台服务器上有20多个学术数据库
- arxiv mcp服务器 --arXiv支持PDF全文阅读
- openalex研究中心 --引文分析、趋势、期刊质量
没有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。这是一个副项目,由一位研究人员为研究人员构建。