跳转到内容
本页面的翻译由 LLM 生成。如果你发现翻译有误,请在 GitHub 上提交 issue 告诉我们。

集成

Herdr 自动检测受支持的智能体。官方集成可以额外提供用于恢复的原生会话身份、生命周期状态上报,或两者兼有。

当你想要智能体原生会话恢复、直接生命周期上报,或两者都要时,使用集成。完整的状态权威模型见智能体

在 Herdr 中打开设置,用集成标签页为 PATH 上发现的智能体安装推荐集成,或手动运行命令:

Terminal window
herdr integration install pi
herdr integration install omp
herdr integration install claude
herdr integration install codex
herdr integration install copilot
herdr integration install devin
herdr integration install droid
herdr integration install kimi
herdr integration install opencode
herdr integration install kilo
herdr integration install hermes
herdr integration install mastracode
herdr integration install qodercli
herdr integration install cursor
herdr integration install antigravity-cli
herdr integration install grok
Terminal window
herdr integration uninstall pi
herdr integration uninstall omp
herdr integration uninstall claude
herdr integration uninstall codex
herdr integration uninstall copilot
herdr integration uninstall devin
herdr integration uninstall droid
herdr integration uninstall kimi
herdr integration uninstall opencode
herdr integration uninstall kilo
herdr integration uninstall hermes
herdr integration uninstall mastracode
herdr integration uninstall qodercli
herdr integration uninstall cursor
herdr integration uninstall antigravity-cli
herdr integration uninstall grok

Herdr 以两种不同方式使用集成:

集成类型智能体效果
生命周期权威Pi、OMP、Kimi Code CLI、OpenCode、Kilo Code CLI、MastraCode已安装且在为该窗格主动上报时,由钩子或插件事件决定 idleworkingblocked。对同一个生命周期权威,Herdr 不再使用屏幕清单兜底。
会话身份Claude Code、Codex、GitHub Copilot CLI、Devin CLI、Droid、Qoder CLI、Cursor Agent CLI、Hermes Agent、Antigravity CLI、Grok CLI集成上报用于恢复的原生会话引用。状态仍来自 Herdr 的屏幕清单检测。

自定义集成在定义了原生终端 UI 中不可见的状态时,也可以上报状态。它们不需要内置到 Herdr 中,也不要求 Herdr 识别智能体的可执行文件。

在 Herdr 窗格中运行的智能体会继承 HERDR_ENVHERDR_PANE_IDHERDR_BIN_PATHHERDR_SOCKET_PATH。如果智能体提供生命周期钩子,可从这些钩子通过 Herdr CLI 上报语义状态:

Terminal window
"$HERDR_BIN_PATH" pane report-agent "$HERDR_PANE_ID" \
--source custom:my-agent \
--agent my-agent \
--state working

当智能体等待输入时上报 idle,需要用户决策时上报 blocked。用 --message 描述阻塞原因。智能体退出时,释放同一来源的生命周期权威:

Terminal window
"$HERDR_BIN_PATH" pane release-agent "$HERDR_PANE_ID" \
--source custom:my-agent \
--agent my-agent

仅在 HERDR_ENV=1 且必要变量存在时上报,这样集成在 Herdr 外不会执行任何操作。保持 --source 稳定且对该集成唯一。如果上报可能乱序到达,请加入严格递增的 --seq;Herdr 会忽略同一来源的旧序列号。

你可以在 report-agent 中加入 --agent-session-id--agent-session-path,也可以在会话身份独立于状态变化时使用 pane report-agent-session。Herdr 会通过窗格和智能体 API 暴露该引用。自动恢复会话还要求 Herdr 知道如何启动该智能体并恢复所引用的会话。

要实现可移植的集成,请使用 HERDR_BIN_PATH 和 CLI 包装命令。需要直接 IPC 的代码可以发送 Socket API 中说明的等效 pane.report_agentpane.report_agent_sessionpane.release_agent 请求。

Prime Agent 内置的 Herdr 上报器是一个真实实现示例。它只在 Herdr 中启用,将智能体事件映射为 workingidleblocked,跨会话保持上报顺序,并在退出时释放权威。

一些集成会上报智能体的原生会话引用。除非被 [session] resume_agents_on_restore = false 禁用,Herdr 会在服务器重启后使用官方会话引用恢复 Claude Code、Codex、Devin CLI、Droid、Kimi Code CLI、Qoder CLI、Cursor Agent CLI、Grok CLI、GitHub Copilot CLI、Pi、OMP、Hermes Agent、OpenCode、Kilo Code CLI、MastraCode 和 Antigravity CLI 的窗格。

原生会话恢复需要最新的 Herdr 集成: Pi 集成版本 2、OMP 版本 3、Claude Code 版本 6、Codex 版本 5、GitHub Copilot CLI 版本 2、Devin CLI 版本 2、Droid 版本 2、Kimi Code CLI 版本 3、Qoder CLI 版本 2、Cursor Agent CLI 版本 1、Grok CLI 版本 1、OpenCode 版本 5、Kilo Code CLI 版本 1、Hermes Agent 版本 2、MastraCode 版本 1、Antigravity CLI 版本 1。用 herdr integration status 查看已安装版本。

安装 Pi 集成:

Terminal window
herdr integration install pi

Herdr 把内置扩展写入:

~/.pi/agent/extensions/herdr-agent-state.ts

如果设置了 PI_CODING_AGENT_DIR,Herdr 会改为写入 $PI_CODING_AGENT_DIR/extensions/herdr-agent-state.ts。如果 Pi agent 目录已经存在,Herdr 会创建 extensions 目录。卸载只删除那个扩展文件。

安装 OMP 集成:

Terminal window
herdr integration install omp

Herdr 把内置扩展写入:

~/.omp/agent/extensions/herdr-omp-agent-state.ts

如果设置了 PI_CODING_AGENT_DIR,Herdr 会改为写入 $PI_CODING_AGENT_DIR/extensions/herdr-omp-agent-state.ts。如果 OMP agent 目录已经存在,Herdr 会创建 extensions 目录。卸载只删除那个扩展文件。

OMP 集成通过 Herdr 的 socket API 上报智能体标签 omp、生命周期状态和原生会话身份。它不需要对 omp 可执行文件做原生进程检测,并且 Herdr 可以在服务器重启后用 omp --resume=<session> 恢复 OMP 窗格。

安装 Claude Code 钩子:

Terminal window
herdr integration install claude

该钩子在会话启动时把 Claude Code 的会话身份上报给本地 Herdr socket。Claude Code 的状态来自 Herdr 的屏幕清单检测。

Herdr 默认使用 ~/.claude,设置了 CLAUDE_CONFIG_DIR 时使用后者。Claude 配置目录必须已经存在。安装会写入 hooks/herdr-agent-state.sh,并向 settings.json 添加 Herdr 钩子条目。卸载会移除匹配的钩子条目并删除钩子脚本。

安装 Codex 钩子:

Terminal window
herdr integration install codex

Codex 钩子通过与其他集成相同的本地 socket API 上报会话身份。Codex 的状态来自 Herdr 的屏幕清单检测。

Herdr 默认使用 ~/.codex,设置了 CODEX_HOME 时使用后者。Codex 配置目录必须已经存在。安装会写入 herdr-agent-state.sh、更新 hooks.json,并确保 config.toml 中有 [features] hooks = true。如果存在已弃用的顶层 codex_hooks 标志,它也会一并移除。卸载会从 hooks.json 中移除 Herdr 条目并删除钩子脚本,但不改动 config.toml

安装 GitHub Copilot CLI 钩子:

Terminal window
herdr integration install copilot

Copilot 钩子通过与其他集成相同的本地 socket API 上报会话身份。Copilot 的状态来自 Herdr 的屏幕清单检测。

Herdr 默认使用 ~/.copilot,设置了 COPILOT_HOME 时使用后者。Copilot 配置目录必须已经存在。安装会写入 hooks/herdr-agent-state.sh,并向 settings.json 添加一个 SessionStart 钩子条目。卸载会从 settings.json 中移除 Herdr 条目并删除钩子脚本。

在 Copilot 发出携带会话信息的事件后,Herdr 可以用上报的会话 id 通过 copilot --resume=<id> 恢复该窗格。

安装 Devin CLI 钩子:

Terminal window
herdr integration install devin

该钩子从 Devin 的会话、提示、工具使用、权限和停止事件中上报原生会话身份。Devin 的状态仍来自 Herdr 的屏幕清单和 OSC 检测,因为 Devin 钩子不会在每次权限取消或用户中断后都发出可靠的状态转换。

Herdr 默认使用 ~/.config/devin,设置了 XDG_CONFIG_HOME 时使用 $XDG_CONFIG_HOME/devin。Devin 配置目录必须已经存在。安装会写入 herdr-agent-state.sh,并向 config.json 添加 Herdr 钩子条目。钩子在 Devin 运行期间刷新会话引用。卸载会从 config.json 中移除 Herdr 条目并删除钩子脚本。

Herdr 用 devin --resume <id> 恢复保存的 Devin 会话。无论钩子是否安装,屏幕清单检测始终是状态权威。

安装 Kimi Code CLI 钩子:

Terminal window
herdr integration install kimi

该钩子向 Herdr 上报 Kimi 的会话身份和生命周期状态,用于原生恢复和权威的 idleworkingblocked 状态。需要 Kimi Code CLI 0.14.0 或更新版本。

Herdr 默认使用 ~/.kimi-code,设置了 KIMI_CODE_HOME 时使用后者。Kimi Code 配置目录必须已经存在。安装会写入 hooks/herdr-agent-state.sh,并在 config.toml 中追加 Herdr 管理的 [[hooks]] 条目。卸载会移除 Herdr 管理的配置块并删除钩子脚本。

Herdr 用 kimi --session <id> 恢复保存的 Kimi 会话。

安装 Droid 钩子:

Terminal window
herdr integration install droid

Droid 钩子通过与其他集成相同的本地 socket API 上报会话身份。生命周期状态仍来自 Herdr 的屏幕清单检测,因为 Droid 钩子没有覆盖所有生命周期转换。

Herdr 的 Droid 钩子使用 ~/.factory。Factory 配置目录必须已经存在。安装会写入 hooks/herdr-agent-state.sh,向 settings.json 添加 Herdr 的 SessionStart 钩子条目,并在 hooks.json 中存在旧的 Herdr Droid 钩子条目时将其移除。卸载会从两个配置文件中移除 Herdr 条目并删除钩子脚本。

在 Droid 发出会话启动事件后,Herdr 可以用上报的会话 id 通过 droid --resume <id> 恢复该窗格。

安装 OpenCode 插件:

Terminal window
herdr integration install opencode

Herdr 把插件写入 ~/.config/opencode/plugins/herdr-agent-state.js。OpenCode 配置目录必须已经存在。卸载只删除那个插件文件。

该插件在 OpenCode 运行于 Herdr 窗格内时上报生命周期状态和会话身份。在 OpenCode 发出携带会话信息的事件后,Herdr 可以用上报的会话 id 通过 opencode --session <id> 恢复该窗格。插件未安装时,屏幕清单检测仍然可用。

安装 Kilo Code CLI 插件:

Terminal window
herdr integration install kilo

Herdr 把插件写入 ~/.config/kilo/plugin/herdr-agent-state.js。Kilo 配置目录必须已经存在。卸载只删除那个插件文件。

该插件在 Kilo 运行于 Herdr 窗格内时上报生命周期状态和会话身份。在 Kilo 发出携带会话信息的事件后,Herdr 可以用上报的会话 id 通过 kilo --session <id> 恢复该窗格。插件未安装时,屏幕清单检测仍然可用。

安装 Hermes Agent 插件:

Terminal window
herdr integration install hermes

Herdr 写入 ~/.hermes/plugins/herdr-agent-state/,并在 ~/.hermes/config.yaml 中启用 herdr-agent-state。Hermes 配置目录必须已经存在。安装后请重启 Hermes 以加载插件。卸载会删除插件目录,并从 plugins.enabled 中移除 herdr-agent-state

该插件在 Hermes 运行于 Herdr 窗格内时上报可恢复的会话 id。Herdr 使用屏幕清单检测 workingidleblocked,并可用上报的会话 id 通过 hermes --resume <id> 恢复该窗格。

安装 Qoder CLI 钩子:

Terminal window
herdr integration install qodercli

该钩子向 Herdr 上报 Qoder CLI 的会话身份,用于原生恢复。生命周期状态仍来自 Herdr 的屏幕清单检测,因为 Qoder 钩子没有覆盖所有生命周期转换。

Herdr 默认使用 ~/.qoder,设置了 QODER_CONFIG_DIR 时使用后者。Qoder 配置目录必须已经存在。安装会写入 hooks/herdr-agent-state.sh,并向 settings.json 添加 Herdr 钩子条目。卸载会移除匹配的钩子条目并删除钩子脚本。

Herdr 用 qodercli --resume <id> 恢复保存的 Qoder CLI 会话。

钩子未安装时,屏幕清单检测仍然可用。

安装 Cursor Agent CLI 钩子:

Terminal window
herdr integration install cursor

该钩子在 Cursor Agent CLI 运行于 Herdr 窗格内时,通过 Cursor 的 sessionStart 钩子上报会话身份。Cursor 的状态来自 Herdr 的屏幕清单检测。

Herdr 默认使用 ~/.cursor,设置了 CURSOR_CONFIG_DIR 时使用后者。Cursor 配置目录必须已经存在。安装会写入 herdr-agent-state.sh,并向 hooks.json 添加 Herdr 的 sessionStart 条目。卸载会移除匹配的钩子条目并删除钩子脚本。

在 Cursor 发出会话启动事件后,Herdr 可以用上报的会话 id 通过 cursor-agent --resume <id> 恢复该窗格。Herdr 恢复窗格时,cursor-agent 命令必须在 PATH 上;Herdr 不会启动通用的 agent 命令。

安装 MastraCode 钩子:

Terminal window
herdr integration install mastracode

该钩子向 Herdr 上报 MastraCode 生命周期状态和线程身份,用于权威的 idleworkingblocked 状态和原生恢复。MastraCode 没有屏幕清单兜底;当 MastraCode 在 Herdr 窗格内运行时,状态来自该钩子。

Herdr 使用 ~/.mastracode。安装会写入 hooks/herdr-agent-state.sh,并把 Herdr 命令条目添加到 hooks.json;目录不存在时会创建。卸载会删除匹配的钩子条目和钩子脚本。

Herdr 用 mastracode --thread <id> 恢复保存的 MastraCode 线程。

安装 Antigravity CLI 钩子:

Terminal window
herdr integration install antigravity-cli

Herdr 默认使用 ~/.gemini/config/,设置了 ANTIGRAVITY_CLI_CONFIG_DIR 时使用后者。这是 Antigravity CLI 读取全局自定义配置的目录,并且必须已经存在。安装会写入 hooks/herdr-agent-state.sh(Windows 上为 herdr-agent-state.ps1),并向 hooks.json 添加由 Herdr 管理的 herdr 块。Antigravity CLI 按钩子名称管理 hooks.json,因此安装只会重写该块,不会改动其他命名钩子。卸载会移除 herdr 块并删除钩子脚本。

该集成仅上报会话。它会上报窗格当前运行的对话,但不上报智能体状态,因此 Herdr 仍根据 Antigravity CLI 在屏幕上绘制的内容判断 workingidleblocked

钩子在 PreInvocation 时运行,所以 Herdr 会在发送第一个提示词后获知对话。此后,Herdr 服务器重启时可以用 agy --conversation <id> 恢复窗格。

安装 Grok CLI 钩子:

Terminal window
herdr integration install grok

该钩子在 Grok CLI 运行于 Herdr 窗格内时,通过 Grok 的 SessionStart 钩子上报会话身份。Grok 的状态来自 Herdr 的屏幕清单检测。

Herdr 默认使用 ~/.grok,设置了 GROK_HOME 时使用后者。Grok 配置目录必须已经存在。Grok 会合并该目录中的所有 hooks/*.json 文件,因此安装会写入独立的 hooks/herdr.json,其中包含 Herdr 的 SessionStart 条目,并同时写入 hooks/herdr-agent-state.sh;它不会修改其他钩子文件。卸载只会删除这两个由 Herdr 管理的文件。

Grok 发出会话启动事件后,Herdr 可以用上报的会话 id 通过 grok --resume <id> 恢复窗格。

集成只把生命周期状态作为语义状态上报。例如,上报智能体为 working 时,不在生命周期报告中添加展示字段。

Terminal window
herdr pane report-agent w1:p1 \
--source custom:docs \
--agent docs-bot \
--state working

与 Herdr 管理的集成并行运行的用户钩子,应该使用元数据而不是 report-agent。元数据只改变展示,不会夺走集成对 idleworkingblocked 或会话恢复的权威。--agent--applies-to-source 只守卫展示字段 (--title--display-agent--state-label)。令牌补丁始终生效;上报方负责清除或刷新 TTL。--display-agent 修改显示名称。

Terminal window
herdr pane report-metadata "$HERDR_PANE_ID" \
--source user:claude-title \
--agent claude \
--title "Refactor auth middleware" \
--display-agent "Claude: auth" \
--token summary="refactor auth" \
--state-label working="refactoring auth" \
--ttl-ms 3600000

令牌和状态标签只影响视觉。等待、通知和工作区汇总仍使用语义状态。

列出已知的智能体:

Terminal window
herdr agent list

需要验证 Herdr 能看到什么时,读取窗格:

Terminal window
herdr pane read w1:p1 --source recent --lines 50

如果集成状态看起来不对,先确认智能体运行在 Herdr 内部,并且相关的钩子或插件是为同一个用户账号安装的。