dsh-opencode-live

DSH PLUGIN工具与能力

仓库 lof6yo/dsh-opencode-live

工具与能力 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

dsh-opencode-live 是 lof6yo 维护的 工具与能力 类 DSH 可安装插件, 仓库为 lof6yo/dsh-opencode-live,许可证 MIT。 下面按「装什么、怎么装、验没验过、跑起来要注意什么」逐项列出。

一句话选型结论

按资料字段整理

dsh-opencode-live 是工具与能力类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类工具与能力 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 0 复刻 0 · 未关闭 issue 0
最近更新 2026-10-30 创建于 2026-10-28
README 8.0 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:lof6yo/dsh-opencode-live
  1. 1
    确认版本与运行环境

    仓库没有标注兼容版本与 Node.js 要求,先确认你的 DSH 版本能装,再继续。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本未标注版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

能做什么

工具与能力
字段来自项目仓库与公开索引,中文说明由本站标注

适用场景

智能体编排

上游标签

dsh-plugin

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在工具与能力场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-opencode-live当前 L5 · 运行验证通过 低风险 0 未标注 有
loopx 未做沙盒验证 未标注 6,233 未标注 无
dsh-startup-screen 未做沙盒验证 未标注 633 未标注 有
minara-skills L4 · 沙盒安装通过 中风险 360 未标注 有
dsh-blender-plugin 未做沙盒验证 未标注 211 未标注 无
tokenledger L5 · 运行验证通过 低风险 204 0.2.0-rc.2 等 11 个 有

仓库档案

工具与能力
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方lof6yo仓库 dsh-opencode-live · 默认分支 main
分类工具与能力agents
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言未标注仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 0收录时的数值,非实时
创建 / 更新2026-10-28 · 2026-10-30最后推送 2026-10-30
本站收录2026-10-30首次进入本站目录的时间

README 全文

8.0 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-opencode-live

把 OpenCode 当作 DSH 的子智能体来用,并把它实际使用的 agent、工具调用和它自己派生的子 agent(fixer、explorer…)实时显示在 DSH 的一个面板里。

  • 委派:DSH 里的 opencode 工具,一次任务启动一个独立的 opencode acp 子进程;
  • 实时:Host 端把 ACP 事件镜像成 trace,Client 插件直接渲染:右侧栏按会话显示,左侧栏图标进入全局页汇总所有会话;面板只消费 /opencode-live/events(SSE:连接时先发一份 snapshot,之后逐事件推送),不再提供 HTML 页面;/opencode-live/state 保留为只读 API(返回同一份快照),面板本身不使用它;
  • 不多加耦合:OpenCode 用它自己的配置、模型和认证,DSH 只传 cwd + 任务文本。

装好并重启后:

  • 右侧边栏的「+」引导页里会出现 OpenCode Live,点开是一个常驻标签页,只显示当前会话的委派;
  • 左侧栏出现 OpenCode Live 图标,点开是全局页,按会话分组汇总所有会话的委派(running/error 优先),页面右侧标注「所有 session」,并可一键「返回对话」。

两个视图共用同一条 SSE 全局流和同一套卡片渲染;打开全局页会替换中央对话区,右栏标签页内容此时隐藏,返回对话即恢复。

面板里能看到什么

事件 来源
主会话的 agent(mode)和 model session/new 的 configOptions,以及 config_option_update
每次工具调用(标题 / kind / 状态) session/update → tool_call / tool_call_update
OpenCode 派给子 agent 的任务(含 agent 名) tool_call_update.rawInput.agent
子会话的生命周期(created/running/completed) opencode/session/child_update(需要客户端声明 _meta["opencode/child-session-updates"])
子会话里的工具调用和消息 同上的 child_update.update
思考片段、token 用量、结束原因 agent_thought_chunk、usage_update、prompt 结果

> 子 agent 的模型不在 ACP 流里。面板能确认主会话的 model,以及每个子 agent 的名字和动作;子 agent 自己用的模型要看 OpenCode 的会话存储。

安装

在 DSH profile 里用 plugin_manager 的 install_bundle 安装本目录。bundle 的
cordis.patch.yml 插入两行:provider(opencode-live)和工具(opencode,
maxDepth: provider-managed)。

ACP 客户端只用 Node 内置模块;@deepseek-ai/schemastery(声明插件 Config 用)声明为
peerDependency,由 DSH 安装提供,link 方式安装时也会被正确解析,不需要本地
node_modules。

bundle 同时声明了 dsh.client,所以安装后需要重启一次 DSH(新的 Client 模块在启动时扫描),
之后每次委派都会出现在面板里。卸载/禁用时 Host 侧通过 ctx.effect 释放路由与 provider。

配置

- id: opencode-live
name: dsh-opencode-live
config:
# 省略时依次尝试 $OPENCODE_BIN、~/.opencode/bin/opencode、PATH
command: opencode
args: ['acp']
# ask    = 把 OpenCode 的权限请求转成 DSH 问题卡片(允许一次 / 始终允许 / 拒绝)
# allow  = 自动同意(OpenCode 自己的 deny 规则仍然生效)
# reject = 只读子智能体
permission: ask
# 问题送不到你面前时的回退(没有应答者 / 超时;运行被取消时直接回 cancelled)
askFallback: reject
# 问题等待上限(毫秒,0 = 一直等)
askTimeoutMs: 600000
# 面板路径(Host 路由与浏览器端都会跟随),默认 /opencode-live
path: /opencode-live
# 跨重启保留最近 N 条 run(0 = 关闭持久化)
historyRuns: 30
# 早于 N 天的记录自动清理(0 = 不按时间清理)
historyDays: 7
# 每条 run 只持久化最近 N 条事件
historyEvents: 200
# 传给子进程的环境变量(在凭据清洗之后合并)
env: {}
# 模型/agent 同样属于插件配置,可以在「设置 → 插件 → dsh-opencode-live」
# 的配置页里改(会写回 profile patch)。留空则用 OpenCode 的默认值:
# ACP 不会继承 preset 里 agent→model 的映射。
# model: opencode-go/deepseek-v4.1-flash
# mode: orchestrator

历史记录与清理

运行记录默认只在内存里;现在会把最近若干条镜像到磁盘,重启 DSH 后仍然可见。

  • 位置:$DSH_HOME/opencode-live/history.json(未设置时为 ~/.dsh/opencode-live/history.json),文件权限 0600,纯文本 JSON;
  • 落盘内容:每条 run 的目录名与命令名(均为 basename,不保存绝对路径)、session id、起止时间与结束原因,以及最近 historyEvents 条事件——
    其中可能包含模型思考片段(每条最多 600 字符)、工具标题与描述、最终回答(最多 20 000 字符)、
    token 用量,以及 OpenCode 的 stderr 尾部(最多 600 字符)。共享机器上请把它当作敏感数据;
  • 写入时机:每次 run 结束(1 秒内多次结束合并成一次写),临时文件 + rename 原子替换;
  • 清理规则(加载和写入都会执行):
配置 默认 作用
historyRuns 30 最多保留多少条,超出丢最老的;0 关闭持久化
historyDays 7 早于 N 天的记录丢弃;0 不按时间清理
historyEvents 200 每条 run 只存最近的 N 条事件
— 2 MB 单文件超过上限时继续丢最老的 run
  • 文件损坏或版本不匹配:忽略并从空开始,不阻塞插件启动;
  • 重启时仍在 running 的记录会标记成 done / aborted,不会以绿灯回归。

安全边界

  • 子进程不在 DSH 的文件沙箱之下。permission: ask(默认)把 OpenCode 的每次权限请求
    转成一道 DSH 问题卡片:允许一次回 allow_once、始终允许回 allow_always(由 OpenCode
    自己记住,和它的 TUI 一致)、拒绝回 reject。问题送不到用户时(没有应答者、超时
    askTimeoutMs)按 askFallback(默认 reject)fail-closed,并在面板 trace 里记一条 note。
    运行以别的方式结束时(取消、子进程退出、错误),尚未回答的问题会被撤回,run 不会回落到
    askFallback;取消路径直接向 ACP 回 cancelled。allow 会自动同意,reject 让子智能体只读。
  • 面板复用 DSH Web UI 自己的鉴权:/opencode-live/* 在进入任何数据逻辑前调用宿主的
    connection.requestRejection——外来 Origin / 不可信 Host 返回 403,缺失或无效的
    dsh-auth-* cookie 返回 401。同源页面用登录后已有的 cookie 即可,无需额外配置;
    通过局域网 IP 访问时,也要先在该 authority 上正常登录 DSH。取不到 host 的 connection
    服务时路由一律 fail-closed(403)。
  • 发往浏览器的 trace 只带目录名 / 命令名(basename),不下发绝对路径。
  • 子进程的环境变量会过滤掉 *_API_KEY、*_TOKEN、*SECRET*、*PASSWORD* 这类名字;
    确实需要时用 config.env 显式补回。

限制

  • 外部子智能体是一次性的:只回最终文本,不能 send_message 追问。
  • 面板是本进程内存里的环形记录(最多 50 个 run、每个 600 条事件),进程重启即清空。
  • 只为 OpenCode 的 ACP 扩展做了适配;换成别的 ACP agent 时,child_update 相关行不会出现。

结构

index.js           插件入口:注册 provider + /opencode-live 数据路由(state / SSE)
client.js          Client 模块:侧边栏图标 + main 面板(React,订阅 SSE)
lib/provider.js    ACP 客户端与 subagent provider(无第三方依赖)
lib/trace.js       运行记录与 SSE 扇出

开发

node --check index.js client.js lib/provider.js lib/trace.js

lib/provider.js 不依赖 DSH,可以脱离宿主单独驱动一个 opencode acp 子进程做联调。

License

MIT

常见问题

6 问
答案由本站依据条目字段整理,不引用上游原文
dsh-opencode-live 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:lof6yo/dsh-opencode-live` 即可。

dsh-opencode-live 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-opencode-live 安全吗?

低风险。

dsh-opencode-live 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-opencode-live 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

同名或近似条目

1 条
不同作者的仓库分开列,请确认你要装的是哪一个
工具与能力
按星标排序,可作替代方案

loopx

loopx

LoopX 是面向长周期 Agent 的本地优先控制平面,作为 DSH plugin 为 DeepSeek Harness 提供持久目标、证

未标注验证等级 6,233 星

dsh-startup-screen

dsh-startup-screen

DeepSeek Harness 的启动界面与启动动画插件。

未标注验证等级 633 星

dsh-blender-plugin

dsh-blender-plugin

让 AI 模型通过直连 TCP 通道实时驱动 Blender 的 DSH plugin:15 个工具覆盖视口取帧、任意角度渲染、内循环搜索、

未标注验证等级 211 星

tokenledger

TokenLedger

TokenLedger 为 DeepSeek Harness 提供零配置的 Token 用量记账,自动归属到实际服务请求的中转站,无需凭据即

L5 · 运行验证通过 204 星

deepseek-harness-jev

deepseek-harness-jev

把 TypeSafe Jev 接入 DeepSeek Harness 作为 System One 决策层,为技能与文件选择、任务监督、纠偏和

未标注验证等级 203 星

lof6yo 的其它插件

2 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 —。