跳到正文

TGYD-helige/dsh-pi

30最近提交 2026年8月14日

dsh-pi DSH 插件

dsh-pi 是一个兼容性主机,能够在 DeepSeek Harness (DSH) 中运行未经修改的 Pi 扩展。它为每个 DSH 代理创建一个 Pi 运行时,并将 Pi 的 ExtensionAPI 方法映射到 DSH 的能力,实现工具、命令、消息和附件。它并非转换 Pi 源码,而是在运行时适配其可观察表面,保留 Pi 的生命周期和会话状态。

如何安装 dsh-pi DSH 插件

dsh plugin --profile demo add dsh-pi-host \

复制不会执行命令。安装 dsh-pi DSH 插件前请核对仓库和版本。

dsh-pi DSH 插件数据来源

dsh-pi DSH 插件快照日期:2026年8月16日

discovered

dsh-pi DSH 插件能做什么

  • 注册 Pi 标志并读取其值(registerFlag, getFlag)。
  • 发送包含文本和图片的用户消息作为 DSH 后续消息(sendUserMessage)。
  • 执行子进程,支持配置工作目录、环境变量、超时和取消(exec)。
  • 向扩展暴露 Pi 上下文能力:工作目录、空闲状态、项目信任、中止信号和 waitForIdle。

dsh-pi DSH 插件适合哪些场景

  • 在 DSH 代理中使用 Pi 图像生成扩展(如 @amaster.ai/pi-image-gen)。
  • 在不修改 Pi 代码的情况下,将 Pi 视频生成工具与现有 DSH 插件一起运行。
  • 将基于 Pi 命令的扩展与 DSH 命令和生命周期事件集成。
  • 在开发或兼容性验证期间,在 DSH 环境中测试 Pi 扩展。

dsh-pi DSH 插件适合谁

  • 希望利用 Pi 扩展生态系统的 DSH 用户。
  • 希望在 DSH 中测试或运行其扩展的 Pi 扩展开发者。

dsh-pi DSH 插件的限制

  • 仅支持 Pi 0.80.x 和 DSH 0.1.0-rc.6,版本范围被刻意限制得很窄。
  • 许多 Pi ExtensionAPI 方法仅部分支持(如 registerTool、sendMessage、registerCommand),有些完全不支持(registerShortcut、registerMessageRenderer、registerProvider)。
  • Pi 扩展是受信任的 Node.js 代码,未沙箱化;默认禁用 allowLocalPaths。
  • 用户需要自行提供 API 密钥(如 GEMINI_API_KEY)并单独配置 Pi 的 settings.json。

dsh-pi DSH 插件的仓库 README 摘录

以下文字摘自 dsh-pi DSH 插件的上游仓库 TGYD-helige/dsh-pi 的 README,版权归原作者,仅作引用。

Run trusted, unmodified [Pi extensions](https://pi.dev/docs/latest/extensions) inside [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness). This is a compatibility host, not a source-to-source converter: Pi's official loader and `ExtensionRunner` own Pi semantics, while this package adapts their observable surface to agent-scoped DSH tools, commands, messages, attachments, and lifecycle hooks. The project currently targets Pi `0.80.x` and DSH `0.1.0-rc.6`. DSH is still a developer preview; the peer range is intentionally narrow. ## Why a host instead of generated plugins An extension factory is executable code with lifecycle and session state. Converting its source once cannot preserve tools registered during `session_start`, mutable active-tool sets, cancellation, providers, or per-agent state. The host therefore creates one Pi runtime per DSH agent and reconciles registrations into that agent's Cordis context. ```mermaid flowchart LR C["DSH bundle config"] --> R["Package / manifest resolver"] R --> P["Pi loader + ExtensionRunner"] P --> A["Agent-scoped adapter"] A --> T["DSH tools"] A --> M["DSH commands"] A --> L["DSH lifecycle and messages"] F["

阅读完整 README仓库许可: Apache-2.0

dsh-pi DSH 插件常见问题

如何安装 dsh-pi?

在同一个 DSH profile 中安装发布包和你需要的 Pi 扩展。例如:`dsh plugin --profile demo add dsh-pi-host @amaster.ai/pi-image-gen @amaster.ai/pi-video-gen`。然后在 profile 的 `cordis.patch.yml` 中覆盖该 bundle 的配置,列出 Pi 扩展。本地开发时,可以用路径如 `./dsh-pi` 代替包名。

如何为 dsh-pi 配置 Pi 扩展?

在 DSH profile 目录下(如 `$DSH_HOME/profiles/demo/settings.json`)放置 `settings.json` 文件。设置环境变量 `PI_CODING_AGENT_DIR` 指向该 profile 目录。在 `settings.json` 中使用 Pi 的标准格式,每个扩展作为顶级键,例如 `{"pi-image-gen": {"defaultModel": "nano-banana"}}`。API 密钥应设置在环境变量中(如 `GEMINI_API_KEY`)。

dsh-pi 支持所有 Pi 扩展吗?

dsh-pi 适用于使用受支持的 ExtensionAPI 方法的 Pi 扩展。许多方法仅部分支持或不支持(如 `registerShortcut`、`registerMessageRenderer`、`registerProvider`)。请查看 README 中的兼容性表格了解哪些方法可用。主机还有 `strict` 模式,会跳过那些架构无法在 DSH 中完全表示的工具。

dsh-pi 可以与其他 DSH 插件一起使用吗?

可以,dsh-pi 是一个 DSH bundle,可以与其他插件共存。Pi 扩展作为 dsh-pi 的依赖加载,而不是独立的 DSH 层。它们被集成到同一个代理上下文中。你可以混合使用 Pi 工具和命令与 DSH 原生的工具和命令。

dsh-pi 的版本要求是什么?

dsh-pi 目前针对 Pi 0.80.x 和 DSH 0.1.0-rc.6。版本范围被刻意限制得很窄,因为 DSH 仍处于开发者预览阶段。你需要确保你的 Pi 和 DSH 版本匹配这些范围。请查看 README 了解最新的支持版本。