chiro2001/dsh-oc 预览 preview

chiro2001/dsh-oc

桌面端Desktop 原生Native ⭐ 5 其他Other

DeepSeek Harness × OpenCode TUI 前端:将 dsh 的 Agent、会话和工具集成到官方 opencode 终端中。

项目介绍Project Overview

dsh-oc 是 DeepSeek Harness 的 OpenCode TUI 客户端插件。它以官方 opencode 终端为前端、dsh 为后端,通过内置 oc-bridge HTTP/SSE 桥接,实现会话、Agent、工具与模型能力的复用,并通过 dsh --profile oc 命令启用。适用于希望保留官方 TUI 体验、统一由 dsh 调度模型、权限与凭据的场景。注意:MCP/LSP 等外围路由仅返回 schema-valid stub,二进制附件如 PDF 暂不支持。

dsh-oc is a DSH client plugin that pairs the official opencode TUI with a dsh backend. It ships an in-process oc-bridge (HTTP/SSE) so the opencode TUI can reuse dsh's Agent, session, tool, and model layers, launched via dsh --profile oc. Use it to keep the stock opencode terminal UX while centralising models, credentials, and approvals in dsh. Caveat: peripheral routes (MCP/LSP/formatter/skills/integration) return schema-valid stubs only, and binary attachments such as PDF are not yet supported.

或使用命令行安装(适合开发者)Or use CLI install (for developers)

命令行安装CLI Install

dsh plugin --profile oc add chiro2001/dsh-oc

chiro2001/dsh-oc 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

dsh-oc

DeepSeek Harness 的 OpenCode TUI 前端:以官方 opencode TUI 为终端前端, dsh 作为后端提供 Agent、会话、工具与模型能力。

CI e2e

  • 前端:opencode 官方 CLI(attach 模式),直接使用官方二进制,只做 TUI。
  • 后端:DeepSeek Harness(dsh)负责 Agent、Session、工具、模型、权限和用户提问。
  • 连接:dsh-oc 在 dsh 进程内提供 OpenCode 兼容的 HTTP/SSE 桥(oc-bridge),并启动官方 TUI 客户端(oc-tui)。
dsh (Node) ── dsh-oc bundle ── oc-bridge (HTTP/SSE) <── opencode TUI (attach)
                  │
                  └─ DSH Agent/Session/Tools/LLM/Approval/Questions

能力状态

完整矩阵见 docs/FEATURES.md,路由细节见 docs/PROTOCOL.mddsh --profile oc --help 展示同一摘要。

能力 状态
会话列表/新建/续聊/fork/compact、SSE 流式消息
会话列表标题渐进补温(投影标题 → 目录名 → id 回退;大目录后台补温)
模型目录、reasoning effort、agent preset 切换
工具卡片(bash/read/write/edit)、diff 与 Modified Files
工具参数流式显示
权限/提问流、子代理会话树与后台子代理
Goal 创建/查看(sidebar + /goal
Esc 打断/取消(全量双按、mini 单按)
文本/图片附件 ✅(PDF 等二进制暂不支持)
Allow always 权限 ✅(会话内内存记忆,重启清空)
MCP / LSP / formatter / skills / integration 等外围路由 ❌(schema-valid stub)

opencode 子进程直接使用官方二进制(锁定 1.18.18)。

演示

dsh-oc 核心功能演示(真实 DeepSeek 模型)

真实录制:品牌启动画面 → 真实模型运行 pnpm test → 全部单测通过 → 退出提示。

安装使用

dsh plugin --profile oc add chiro2001/dsh-oc
dsh --profile oc

更新到该源最新版本(重复执行安装命令即可):

dsh plugin --profile oc add chiro2001/dsh-oc

固定分支/版本用 pnpm git spec,例如 github:chiro2001/dsh-oc#develop。 npm 包名为 @chiro2001/dsh-oc(未发布 registry,走 GitHub 源安装)。

发布与候选流程见 docs/RELEASE.md(版本 bump → 全套门禁 → full-SHA 安装/回滚演练 → 受保护 tag)。

安装后可用简写命令 dsh-oc(等价于 dsh --profile oc,参数原样透传)。 它由 npm bin 提供:把 profile 的 bin 目录加入 PATH 即可直接使用,例如:

export PATH="$HOME/.dsh/profiles/oc/node_modules/.bin:$PATH"
dsh-oc                        # 等价 dsh --profile oc
dsh-oc --mini                 # 等价 dsh --profile oc --mini
dsh-oc --version              # 同时输出 dsh-oc 与 dsh 的版本

pnpm 提示缺少 @deepseek-ai/cordis 等 peer 属于预期警告,由 dsh-base/宿主在 运行时提供,可忽略。

参数透传

支持透传给 opencode attach 的参数:

  • --continue / -c--session / -s--fork--dir--mini--print-logs--log-level

示例:

dsh --profile oc --session <session-id>
dsh --profile oc --dir ~/project --mini

--dir 还会写入 bridge 工作目录(路径、新建会话、附件校验以此为基准)。 其它参数会显式打印 ignored unsupported arg 警告,不会静默丢弃。

数据隔离

opencode 的配置、数据、状态与缓存全部隔离在 $DSH_HOME/opencode 下; 模型与凭据由 dsh 后端管理,dsh-oc 不向 opencode 注入 provider/key。

已知限制

  • Allow always:仅会话内内存记忆,重启清空。
  • 退出 splash:官方退出画面无法替换,dsh-oc 在其下方补一行 dsh 恢复说明 (DSH_OC_DISABLE_EXIT_NOTE=1 可关)。
  • --mini 入口 logo:官方 mini 界面不加载 TUI 插件,无法替换其内置 OpenCode 字符画;dsh-oc 会在启动前先打印 DSH OC 品牌。
  • Esc 打断:--mini 单按、全量 TUI 连按两次;dsh-oc 会转为 session.cancel
  • 附件:支持文本与图片,PDF 等二进制暂不支持。
  • 工具回合的后续文本在“忙碌中排队第二条消息”时,TUI 即时转录顺序可能 错位(内容完整、无重复;重新进入会话后恢复),官方 opencode 同类场景 甚至不保留该后续文本。
  • 外围路由(MCP/LSP/formatter/skills/integration):schema-valid stub,不伪造结果。
  • 模型与权限:由 dsh 后端管理。

自测

pnpm run e2e:api   # 快速 API 回归
pnpm run e2e       # 全量 e2e(真实 opencode TUI)

完整自测门槛见 AGENTS.md

开发者 / Agent

开发环境、常用命令、自测门槛、分支与提交流程、安装/更新与二进制策略见 AGENTS.md;人类贡献流程见 CONTRIBUTING.md。 其它文档:docs/PLAN.mddocs/ROADMAP.mddocs/CHANGELOG.mddocs/MANUAL-TEST.md

上一个 Prev dsh-mindmap 下一个 Next dsh-plugin-market