一键把正在跑的前台命令转入后台继续执行
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add nu0y4/dsh-manual-bg该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
发起外部网络请求
查看扫描证据(共 1 处,展示前 1 条)
- 发起网络请求lib/client.js:151
fetch("/manual-bg/promote", {
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/dsh-llm@deepseek-ai/dsh-sandbox@deepseek-ai/dsh-shell@deepseek-ai/dsh-tools给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
在 DeepSeek Harness 里一键把正在运行的 shell 命令转到后台:一个 run 工具,卡片上带个小 SVG 掉头按钮。
README
由 DeepSeek 最新模型翻译生成dsh-manual-bg
把 DeepSeek Harness(DSH)里正在跑的前台 shell 命令,点一下转成后台任务。
DSH 的 jobs 服务只有 start / list / read / kill,没有「接管进行中前台调用」的接口,所以官方工具要么一直等到超时、要么你只能干等。本插件补上这块:
- 一个 run 工具(改造自官方 @deepseek-ai/dsh-tool-pwsh,sandbox / jobs / 超时语义保持一致);
- 前台等待时同时竞速「命令跑完」和「用户点按钮」;
- Web 对话里只渲染一行:命令行 + 行尾 ↩ 图标按钮(无文字、不展开、不输出块);
- 点 ↘ 图标 → host 唤醒该调用的等待器 → 工具立刻返回 [moved to background job <id>],命令继续在后台跑,智能体马上能继续下一步;跑完有完成通知,输出可用 job_output 读、job_kill 停。
适用平台
- Windows + PowerShell(run 工具就是 pwsh 工具的改造版)。
- Linux/macOS 需要把工具描述与执行语义换成 bash;架构不用动(ctx.shell 本身就是平台执行器)。
展开完整文档(README 剩余 1 节)
dsh-manual-bg
把 DeepSeek Harness(DSH)里正在跑的前台 shell 命令,点一下转成后台任务。
DSH 的 jobs 服务只有 start / list / read / kill,没有「接管进行中前台调用」的接口,所以官方工具要么一直等到超时、要么你只能干等。本插件补上这块:
- 一个 run 工具(改造自官方 @deepseek-ai/dsh-tool-pwsh,sandbox / jobs / 超时语义保持一致);
- 前台等待时同时竞速「命令跑完」和「用户点按钮」;
- Web 对话里只渲染一行:命令行 + 行尾 ↩ 图标按钮(无文字、不展开、不输出块);
- 点 ↘ 图标 → host 唤醒该调用的等待器 → 工具立刻返回 [moved to background job <id>],命令继续在后台跑,智能体马上能继续下一步;跑完有完成通知,输出可用 job_output 读、job_kill 停。
适用平台
- Windows + PowerShell(run 工具就是 pwsh 工具的改造版)。
- Linux/macOS 需要把工具描述与执行语义换成 bash;架构不用动(ctx.shell 本身就是平台执行器)。
安装
方式 A:从 GitHub 直装(推荐)
dsh plugin --profile web add "github:nu0y4/dsh-manual-bg"
需要配置档里能解析 @deepseek-ai/ 运行时包(本仓库声明了 peerDependencies; DSH 自带插件依赖齐全时 pnpm 会直接复用)。
方式 B:本地开发(link)
1) 让树外包能解析 @deepseek-ai/ 运行时(在包内建 node_modules/@deepseek-ai junction) pwsh -File .\scripts\link-deps.ps1
2) 装进 web profile(写入依赖 + dsh.profile.bundles)
dsh plugin --profile web add "link:<本仓库绝对路径>"
接入预设(让模型真正用上 run 工具)
插件本身只提供能力;要在会话里看到按钮,需要把目标预设里的 shell 工具行换成 dsh-manual-bg/tool。
方式 1:手改预设(原生模式)
在预设的 agent.cordis.yml 里,把:
- id: tool-pwsh
name: '@deepseek-ai/dsh-tool-pwsh'
disabled: !!js process.platform !== 'win32'
换成:
- id: tool-run
name: 'dsh-manual-bg/tool'
disabled: !!js process.platform !== 'win32'
方式 2:全模式覆盖层(原生 + PTC 一起)
scripts/gen-all-modes-patch.mjs 会读 DSH 出厂预设(standard / ptc / minimal / cordis),把它们的 shell 工具行替换成 dsh-manual-bg/tool,生成一个 --patch 覆盖层:
node .\scripts\gen-all-modes-patch.mjs
默认输出:$env:DSH_HOME\profiles\web\all-modes.patch.yml(可用 DSH_HOME 覆盖)
然后用 --patch 挂载(Web 启动参数):
dsh web --patch <...>\lan-access.patch.yml --patch <...>\all-modes.patch.yml --no-open
环境变量:DSH_WEB_PRESETS_DIR(dsh-web-app 的 presets 目录)、DSH_HOME(输出位置)。
不支持出厂预设升级后的自动迁移:DSH 升级后重跑生成器即可。
原理
浏览器(client 半边) host(Node 进程) ┌──────────────────────────┐ ┌───────────────────────────────┐ │ tool.call.toolview │ POST │ manualBackground 服务 │ │ key = "run" │ ─────────────▶ │ Map<callId, resolve> │ │ 命令行 + 行尾 ↩ 图标 │ /manual-bg/ │ promote(callId) → resolve() │ └──────────────────────────┘ promote └──────────────┬────────────────┘ │ 唤醒 ┌────────────────▼────────────────┐ │ run 工具 execute() │ │ registry.start(job) │ │ race(job 完成, 用户 promote) │ │ 完了直接返回 exit/stdout │ │ 用户点了 → 返回 job id │ └─────────────────────────────────┘
- host(lib/index.js):提供 manualBackground 服务,外加 /manual-bg/promote、/manual-bg/ping 两条 HTTP 路由。
- tool(lib/tool.js):run 工具。前台调用先注册成 job,再
Promise.race([registry.wait(...), promotePromise]);按钮命中时返回
kind: "promoted"(timeoutMs: 0 作为手动标记),job 继续跑。
- client(lib/client.js):手写 DSH ModuleLoader bundle,注册 tool.call.toolview(key=run),渲染单行折叠卡片。
行为与边界
- 按钮只对本插件提供的 run 工具生效(原生 pwsh/bash 卡片没有按钮)。
- 失败安全:host 服务不可用时,工具行为退化为官方 pwsh 工具(不会崩)。
- /manual-bg/promote 只接受 {callId},只做「把已登记的前台等待转后台」,不执行命令、不返回数据;/manual-bg/ping 返回待转数量,便于排障。
- 后台任务与官方 job_output / job_kill 完全互通;完成通知走官方 jobs 消费面。
开发 / 测试
node test/host-service.test.mjs # host 服务 + HTTP 路由逻辑
node test/client-view.test.mjs # client bundle(mock ModuleLoader/react)渲染与点击
已知限制
- pending 等待器按进程内 callId 关联,只在一次调用存活期内有效。
- PTC 模式下按钮位于 run_code 卡片展开后的子调用行上(命令不是独立卡片)。
- 覆盖层整份替换出厂预设的 config,Web 编辑器里对这几个预设的修改会被盖掉。
- LAN 开放时(示例中的 lan-access.patch.yml)同网段浏览器也能调 promote 路由:该动作只能把已在跑的命令转后台,不接受参数,风险可控。
致谢 / 归属
lib/tool.js 改写自 DeepSeek Harness 官方包 @deepseek-ai/dsh-tool-pwsh (MIT)。其余代码为本项目原创。
License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
nu0y4/dsh-manual-bg
一键把正在跑的前台命令转入后台继续执行
相关插件 · 开发 / 工程
隐私简历生成器reactive-resume/reactive-resume
Reactive Resume 已迁至 GitHub 上的…
★ 45,125已汉化MCP
71.7
AI 架构文档生成器sopaco/deepwiki-rs
🚀 Litho 已进化为 Terrain —— 给你的 AI 智能体一张会呼吸的代码库地图。
★ 3,157已汉化DSH
70.8
长时任务执行闭环AMAP-ML/LongHorizon-Harness
面向 Computer-Use Agent 的 Loop Engineering
★ 1,764已汉化DSH
70.5
AI 编程纪律方法包GanyuanRan/Aegis
让 AI 编程 agent 变得可信:少返工、更安全、说“完成”前先给证据。
★ 1,384已汉化DSH
69.6
多代理编排运行时Enderfga/claw-orchestrator
面向编程智能体的运行时。把 Claude Code、Codex、Antigravity、Grok…
★ 586已汉化MCP
69.4
记忆进化插件csyangwen/dsh-memory-evolve
dsh-memory-evolve 使用场景指南
★ 461已汉化DSH
67.9