🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

后台子代理 kenjoe41/dsh-sidecar

DeepSeek Harness
kenjoe4114 天前有提交已提供中文文档扫描:含敏感能力

后台启动独立子代理,按需逐个查看结果

29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/19 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add kenjoe41/dsh-sidecar
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么
dsh 原生插件 · dev
装得上吗
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 14 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件
查看扫描证据(共 16 处,展示前 14 条)
  • 写入本地文件
    lib/index.js:187
    appendFileSync(DEBUG_FILE, `${new Date().toISOString()} ${text}\n`)
  • 执行外部命令固定命令
    lib/index.js:258
    const repo = execFileSync('git', ['-C', parentCwd, 'rev-parse', '--show-toplevel'], { encoding: 'utf8', stdio: ['ignore', 'pipe', 'pipe'] }).trim()
  • 写入本地文件
    lib/index.js:262
    mkdirSync(dirname(path), { recursive: true })
  • 执行外部命令固定命令
    lib/index.js:263
    execFileSync('git', ['-C', repo, 'worktree', 'add', '-b', `sidecar/${safe}`, path, 'HEAD'], { stdio: ['ignore', 'pipe', 'pipe'] })
  • 写入本地文件
    lib/index.js:268
    mkdirSync(resolved, { recursive: true })
  • 写入本地文件
    lib/index.js:277
    mkdirSync(dir, { recursive: true })
  • 写入本地文件
    lib/index.js:279
    writeFileSync(`${file}.tmp`, `${JSON.stringify({ parentId, sidecarName: name, cwd, childId, label, text, kind, createdAt: Date.now(), notified: false
  • 写入本地文件
    lib/index.js:280
    renameSync(`${file}.tmp`, file)
  • 读取本地文件
    lib/index.js:313
    files = readdirSync(dir)
  • 读取本地文件
    lib/index.js:321
    const entry = JSON.parse(readFileSync(path, 'utf8'))
  • 读取本地文件
    lib/index.js:340
    entry = JSON.parse(readFileSync(file, 'utf8'))
  • 删除本地文件
    lib/index.js:345
    unlinkSync(file)
  • 读取本地文件
    lib/index.js:519
    files = readdirSync(dir).filter((file) => file.endsWith('.json'))
  • 读取本地文件
    lib/index.js:525
    const entry = JSON.parse(readFileSync(join(dir, file), 'utf8'))
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-agent@deepseek-ai/dsh-llm@deepseek-ai/dsh-tools
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

为 DeepSeek Harness 提供后台子代理:名称唯一,各自独立的 cwd/git-worktree 空间,结果按需审查。

README

由 DeepSeek 最新模型翻译生成
dsh-sidecar 在后台启动专注的子代理,给它们起唯一的名字、分配独立的空间,然后按你自己的节奏逐个查看结果——任务、答案、证据链,需要时还能调出完整对话记录。独立插件:与 dsh-autocontinue(续跑/重启)和 dsh-update 更新器不共享任何状态。 命令与工具 /sidecar <task> # auto name (sidecar-1, -2, ...), parent cwd /sidecar --name alpha <task> # unique name, pinned as the child session title /sidecar --cwd /tmp/alpha-space <task> # separate working directory /sidecar --worktree --name wt-fix <task> # isolated git worktree + branch sidecar/wt-fix /sidecar list # running sidecars: name, id, age, cwd /sidecar result <id> # read and consume a stored result now
展开完整文档(README 剩余 1 节)
dsh-sidecar

在后台启动专注的子代理,给它们起唯一的名字、分配独立的空间,然后按你自己的节奏逐个查看结果——任务、答案、证据链,需要时还能调出完整对话记录。独立插件:与 dsh-autocontinue(续跑/重启)和 dsh-update 更新器不共享任何状态。

命令与工具

/sidecar <task> # auto name (sidecar-1, -2, ...), parent cwd
/sidecar --name alpha <task> # unique name, pinned as the child session title
/sidecar --cwd /tmp/alpha-space <task> # separate working directory
/sidecar --worktree --name wt-fix <task> # isolated git worktree + branch sidecar/wt-fix
/sidecar list # running sidecars: name, id, age, cwd
/sidecar result <id> # read and consume a stored result now
/sidecar log <id> # full child transcript on demand
/sidecar cancel <id> # interrupt one

多个 sidecar 可以并发运行,上限由子代理服务的 maxActiveSubagents 决定,默认 8。每个 sidecar 都有唯一的名字(如果请求的名字已被占用,会加上 -2、-3……后缀)、独立的子会话 id,标题固定为这个名字,这样 GUI 列表里不会混淆。默认与父级共用 cwd;需要独立工作区就用 --cwd,需要真正的文件系统/分支隔离就用 --worktree。worktree 从 HEAD 开始——父级未提交的改动有意不带到那里。

面向模型的工具(父级决定查看结果时使用):

- sidecar_result — { id } 返回已存储的待查看内容,并从队列中移除。
- sidecar_list — 列出等待查看的已存储结果。

投递方式:发通知,不排用户消息

子代理通过 ctx.subagents.startActivation() 启动,delivery: 'caller';它的提示词禁止调用 send_message,也禁止继续向下委派。

子代理完成后,插件会:

1. 把完整结果存到 ~/.dsh/sidecar/results/<parent>/<child>.json;
2. 调用 agent.inject(notice)——一条下一步通知,不唤醒。这不是 followup:不会创建排队的用户消息,也不会启动一轮对话。正在运行的父级会在下一步看到它;空闲的父级会在下次运行时看到。通知只说明结果已存储、sidecar_result 会返回它;
3. 绝不把完整结果注入对话记录。父级通过调用 sidecar_result(或用户运行 /sidecar result <id>)查看,结果以工具结果的形式返回,同时消费掉该文件。

存储的待查看内容刻意保持精简:

- sidecar 收到的完整任务(让父级知道这个结果是干什么的),
- 最终答案,
- 精简证据链:按顺序记录每次工具调用及其结果(上限 8 KB),
- 子会话 id,以及指向 sidecar_log 的提示。
子代理的完整会话日志都留在磁盘上,包括工作区指令、推理过程和每一步操作。需要时用 sidecar_log(或 /sidecar log <id>)取回。默认把整份原始日志推给父代理,会让有用的任务和答案淹没在好几页工作区样板文字里,所以这个行为要手动开启。

如果父代理还没看到通知就关闭了,文件会保留下来;下次创建那个父代理时(会话重新打开或恢复),通知会再次注入。如果通知已经被消费或错过了,可以用 sidecar_list 查找。

安装

dsh plugin --profile web add github:kenjoe41/dsh-sidecar
or pin a release
dsh plugin --profile web add github:kenjoe41/dsh-sidecar#v0.4.0

本地检出的话,改用链接方式安装;链接安装需要 node_modules/@deepseek-ai/{dsh-llm,dsh-tools} 垫片,好让配置档的 peer 依赖能解析。安装后重新加载或重启配置档。
预览分享卡片长什么样 ↓kenjoe41/dsh-sidecar
分享 · DeepSeek Harness Hub
kenjoe41/dsh-sidecar

后台启动独立子代理,按需逐个查看结果

回到顶部