运行无头命令行会话,随时恢复上次进度
24.5/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add ghbhiee/dsh-plugin-cli-session该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · security
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 74 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 1 处,展示前 1 条)
- 写入本地文件lib/startup.js:59
mkdirSync(dir, { recursive: true });
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-layout@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-client-ui-sidebar@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-client-ui-theme@deepseek-ai/dsh-client-web-react给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
可续跑的无头命令行会话运行器,用于 DeepSeek Harness
README
由 DeepSeek 最新模型翻译生成dsh-plugin-cli-session
一个支持恢复会话的命令行运行器,用于 DeepSeek Harness。它替换了自带的单次无头运行器,新运行器可以继续之前的会话,并且在需要时输出机器可读的信封格式,而不是散文。
它是两个手工复制的配置档运行器的合并产物(一个用于对话,一个仿 claude -p 风格),两者的 runner.js/startup.js 已经漂移成了几乎重复的代码。它们真正共享的部分——会话解析、驱动循环、摘要、退出处理——现在只有一份实现;不同的只是配置。
安装
还没上 npm。构建产物 lib/ 已经提交,所以可以直接从 GitHub 安装——不用下载,不用构建步骤:
dsh plugin --profile chat add github:ghbhiee/dsh-plugin-cli-session
或者从本地克隆安装(用 link:,这样本地重新构建会被识别):
git clone https://github.com/ghbhiee/dsh-plugin-cli-session.git
dsh plugin --profile chat add ./dsh-plugin-cli-session
展开完整文档(README 剩余 1 节)
dsh-plugin-cli-session
一个支持恢复会话的命令行运行器,用于 DeepSeek Harness。它替换了自带的单次无头运行器,新运行器可以继续之前的会话,并且在需要时输出机器可读的信封格式,而不是散文。
它是两个手工复制的配置档运行器的合并产物(一个用于对话,一个仿 claude -p 风格),两者的 runner.js/startup.js 已经漂移成了几乎重复的代码。它们真正共享的部分——会话解析、驱动循环、摘要、退出处理——现在只有一份实现;不同的只是配置。
安装
还没上 npm。构建产物 lib/ 已经提交,所以可以直接从 GitHub 安装——不用下载,不用构建步骤:
dsh plugin --profile chat add github:ghbhiee/dsh-plugin-cli-session
或者从本地克隆安装(用 link:,这样本地重新构建会被识别):
git clone https://github.com/ghbhiee/dsh-plugin-cli-session.git
dsh plugin --profile chat add ./dsh-plugin-cli-session
同系列插件安装方式相同:dsh-plugin-workbench、 dsh-plugin-mobile-shell、 dsh-plugin-cli-session。
开发
pnpm install
pnpm run check # typecheck → vitest → tsdown build
因为 lib/ 是纳入版本管理的(git 安装提供的正是它),每次改源码都要重新构建并提交。
两种风格,一个插件
对话式(~/.dsh/profiles/chat/cordis.patch.yml):
- id: cli-runner
config:
request: !!js ctx.cliStartup
sessionTag: chat-cli
announceSessionId: true
机器可读(~/.dsh/profiles/api/cordis.patch.yml):
- id: cli-runner
config:
request: !!js ctx.cliStartup
sessionTag: api
announceSessionId: false
补丁会替换目标行的整个 config,所以 request 在两处都必须重新声明。
| 字段 | 默认值 | 含义 |
| sessionTag | cli | 写入每个会话的 agentPreset;同时限定 --list 和 --resume 的范围,所以同一目录下的两个配置档永远不会看到彼此的会话 |
| announceSessionId | false | 把 session: <id> 写到 stderr(stdout 保持干净,只放答案) |
| exitGraceMs | 1500 | 等待优雅退出的时长,超时后强制退出;必须是非负数 |
用法
dsh --profile chat "explain this file" # new session
dsh --profile chat -r "follow-up" # resume the newest session here
dsh --profile chat -s <id> "follow-up" # resume a specific session
dsh --profile chat -w ./scratch "start here" # new session in another directory
dsh --profile chat -l # list this profile's sessions here
dsh --profile api -o json "summarize this" # {"type":"result",…}
dsh --profile api -o stream-json "summarize" # init line, then the result line
| 参数 | 含义 |
| -o, --output-format <text\|json\|stream-json> | 打印内容的形态;text 是对话式的那种 |
| -n, --new | 开一个新会话(默认行为) |
| -r, --resume | 在这个目录里继续此配置档最新的会话 |
| -s, --session <id> | 继续指定名称的会话 |
| -w, --workdir <dir> | 开新会话前先创建并进入某个目录 |
| -l, --list | 列出此配置档在此处的会话,然后退出 |
| --json-schema <schema> | 让模型按这个形状输出 JSON(只是提示词,不是约束) |
-o json / -o stream-json 会输出 {type, subtype, is_error, duration_ms, num_turns, result, session_id, usage?}。stream-json 会在前面加一行 {type:"system",subtype:"init",…},带上会话 id、cwd、服务商和模型。
配置写错,启动就失败
这一行的 request 来自 !!js ctx.cliStartup。接错了,配置 schema 的默认值会悄悄产出 action: 'new' 加一个空任务——会话建起来了,模型调用也花掉了,却什么都没干。runner 会在加载时直接拒绝,并告诉你该怎么写:
cli-runner: no task to run. The row's config.request should be wired to the
startup service, as in request: !!js ctx.cliStartup.
空的 sessionTag(--list 和 --resume 用来划定范围的标签)和负数的 exitGraceMs 也会被同样拒绝。
测试
pnpm test 不用 API key 就能覆盖两半:runner 的纯核心(返回哪条助手消息、会话如何按标签划定范围、--json-schema 是提示词文本),以及命令行契约(每种接受的形状、每种被拒的组合,还有 --workdir 是在发布之前 chdir,好让沙箱根目录跟着走)。
已知限制
- --json-schema 是提示词,不是约束。 schema 会追加到任务文本后面,要求模型输出符合它的 JSON;它不是服务商的结构化输出模式。模型照样可能用代码围栏或解说文字来回答,所以解析时要防一手。
- 只返回最后一条助手消息。 中间轮次在会话日志里,不在 result 里。
- is_error 覆盖任何非 completed 的轮次原因,包括压根没启动的轮次。
- sessionTag 存在 agentPreset 里,这是 harness 给智能体预设定义的字段。它今天能当会话标签用,但这是借来的字段,不是有文档的扩展点。
- 硬退出是兜底,不是设计。 发出优雅退出请求后,过了 exitGraceMs 进程就被杀掉,这可能会截断一次非常慢的 flush。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
ghbhiee/dsh-plugin-cli-session
运行无头命令行会话,随时恢复上次进度
相关插件 · 安全 / 权限
智能体逆向工程morluto/rea
用智能体逆向工程任何东西,从应用行为到原生二进制。
★ 415,267已汉化DSH
73.3
智能体集群框架ruvnet/ruflo
面向 Claude Code 与 Codex 的智能体元基座meta-harness。
★ 80,414已汉化MCP
71.9
WorkBuddy 模型接入corrinehu/dsh-workbuddy-connect
2026 年 10 月 20 日起,WorkBuddy…
★ 1,604已汉化DSH
71.7
破甲一键通z91772524-ai/pojia-next
十五个 AI…
★ 967已汉化DSH
71.6
AI 代理虚拟终端strukto-ai/mirage
Mirage 是给 AI 智能体用的虚拟终端:一层 shell,统管数据、命令行和运行时。Unix…
★ 3,756已汉化DSH
70.8
Agent 操作层agentic-os-org/ANOLISA
ANOLISA(Agentic Nexus Operating Layer & Interface System Architecture)|智能体操作系统,带运行时、安全、可观测性,以及 Tokenless 响应压缩,降低 token 用量与成本。
★ 649已汉化DSH
70.7