← 返回列表
未验证
把无人值守运行的过程事件实时输出为 NDJSON 流
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/22 · 已提供中文文档
dsh(DeepSeek Harness)无头运行的 NDJSON 事件输出——看清智能体在做什么,而不只是它的最后一行。
综合分
28.1
GitHub 分
28.1
用户评分
—
★ Stars
1
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add bigsongeth/dsh-events该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
dsh-events
English · 简体中文
给 dsh(DeepSeek Harness)的
无人值守模式补上结构化事件输出——也就是 dsh 目前还没有的那个 --json。
dsh --profile headless "" 只打印一行:最终回复。中间发生的一切——读了哪些文件、
跑了什么命令、逐字输出、token 用量——全部丢掉。
这不是 dsh 缺数据:它内部的会话事件总线上什么都有,只是 headless 汇总完就扔了。这个插件
订阅那条总线,把其中一个有文档、有版本的子集镜像成 NDJSON:
{"v":1,"seq":20,"ts":1755690001456,"type":"tool.call","turn":1,"step":1,"name":"write","arguments":""}
{"v":1,"seq":36,"ts":1755690002012,"type":"text.delta","turn":1,"step":3,"index":0,"text":"hello"}
{"v":1,"seq":42,"ts":1755690002345,"type":"turn.end","turn":1,"ok":true}
stdout 原样不动——最终回复那一行还在那儿,现有用法一个都不会坏。事件走 stderr(或写文件)。
别家早就有了:Claude Code 有 --output-format stream-json,Codex 有 --json,
OpenCode 有 --format json。只要你想把 dsh 放进 GUI、编辑器插件、CI 或者做个进度显示,
就会需要同样的东西。
安装
持久安装——装一次,之后每次无人值守运行都带事件流:
dsh plugin --profile headless add dsh-events
然后往 ~/.dsh/profiles/headless/cordis.patch.yml 里追加:
- insert:
- id: dsh-events
name: 'dsh-events'
一次性——不动 profile 配置:
npm i -g dsh-events
dsh-events "跑一下测试" # 事件到 stderr
dsh-events --out events.ndjson "跑一下测试" # 事件写文件
配置
| 环境变量 | 作用 |
|---|---|
| DSH_EVENTS_OUT | stderr(默认)/ stdout / 文件路径 |
| DSH_EVENTS_RAW=1 | 额外把未加工的 dsh 事件作为 raw 发出——开之前请先看 SCHEMA.zh.md 里的警告 |
Schema
完整词表和兼容性约定见 SCHEMA.zh.md。一句话版本:v 只在破坏性变更时增加,
消费者必须忽略自己不认识的事件类型和字段。
与 OpenLess 的关系
这个插件是为 OpenLess 的语音 Agent 功能写的:
它需要在 dsh 干活时实时显示进度,而无人值守模式只在最后打印一行。
OpenLess 在生产环境中使用它——同一个文件,按版本锁定。它被列为 OpenLess 附属项目。
有问题请在本仓库提 issue,不要提到 OpenLess 或 dsh 的仓库。
免责声明
独立的第三方插件,与 DeepSeek 无从属关系,未获其背书。
License
MIT扫码进群