@zhangzhian/dsh-devtools-terminal

中文文档
0.3.1发布于 2026/11/03MITTypeScriptES Module

DSH 开发工具:右侧栏终端(Ctrl/Cmd+点击打开输出里的 URL)

中文使用文档
文档目录9 节
  1. 安装
  2. 提供什么
  3. 为什么优先右栏浏览器(而不是系统浏览器)
  4. 要求
  5. 英语
  6. 安装
  7. 它提供了什么
  8. 为什么侧边栏浏览器是第一位的
  9. 要求

英语 | 简体中文

@zhangzhian / dsh-devtools-terminal

1 . DSH terminal 【中文译文 按“Ctrl/Cmd +”在 2 . DSH里打开(普通点击仍然是选择/光标, VSCode (VSCode)

【中文译文 @deepseek-ai/dsh-client-ui-sidebar-terminal “”“”“”“”“”“”“”“”“ 页签类型注册表——李慈欣 extension 注册会顶掉内置类型。接管的是「怎么画」, 【中文译文 ctx.webTerminals(中文:)。

安装

不要单独装它。装清单包——它会作为依赖自动拉下来,并在插件页上给你一个可开关的组件行:

dsh plugin --profile web add @zhangzhian/dsh-devtools

清单包同时用 browser.patch.yml 【翻译右栏浏览器 (@deepseek-ai/dsh-client-ui-sidebar-browser),所以终端链接点下去就落在那里。

本仓库开发回路:

pnpm install
pnpm --filter @zhangzhian/dsh-devtools-terminal build
node scripts/profile-link.mjs     # 把声明了 dsh.client 的包接进 ~/.dsh/profiles/web
node scripts/smoke-terminal-links.mjs   # 真浏览器 + 真 PTY 冒烟(链接落在右栏浏览器里)

装完/改完都要让运行中的dsh web重新发现插件(重启近年来网络,或等dsh-hmr重载)。 不需要【中文翻译】:http://www.chinac.cn/cn/】

提供什么

  • ;
  • 按“Ctrl / Cmd +”在右栏浏览器页签里打开链接—— ctx.sidebarRight.openTab('browser', { params: { url } }),载体由平台决定: Web / <webview>; 地址栏、后退/前进/刷新和「在系统浏览器中打开」都由那个面板提供;
  • 右栏浏览器页签不可用(配置文件) 自动回退 window.open(..., 'noopener,noreferrer'):浏览器里是新标签页, 【翻译回退不会吞掉这次点击;
  • 普通点击不打开(选择/光标原样);
  • ■■■■■■■■■■■■■■■■■■
  • OSC 8超链接走同一套逻辑(替掉xterm默认“单击+确认+空白页”的兜底);
  • 终端服务缺席时正文显示提示,插件其余部分不崩。

为什么优先右栏浏览器(而不是系统浏览器)

开发工具用户的日常恰好是面板能打开的那一类页面:自己起的服务器(轻快地/下/ dev 故事书,......),中文,中文,中文,中文,中文,中文。起完服务直接在右栏看, 【中文译文】公网站点仍可能因为 X-Frame-Options / CSP frame-ancestors 中文名称:中文名称 「在系统浏览器中打开」(↗)即可。

落点规则是纯函数(src/link-target.ts),单元测试钉住「面板优先 / 面板抛错回退 / 【中文翻译】:http://http://englishcn.cn/cn/ scripts/smoke-terminal-links.mjs Cmd/Ctrl+ <s:1> window.open 零次)。

要求

  • 近年来 0.2.0-rc.2 【中文译文 package.json 里);
  • 浏览器侧运行时:dsh.client.platform 是 web;
  • 宿主的终端服务(@deepseek-ai/dsh-api-terminal-controller)默认随 dsh web 提供; 没有它时正文显示「不可用」,不报错。

英语

@zhangzhian / dsh-devtools-terminal

DSH devtools的右边栏终端接管了平台的内置 terminal 选项卡类型,以便在终端输出中打开url Ctrl/Cmd + click 在 DSH右边栏浏览器选项卡 (普通点击仍然选择文本-相同 语义作为VS Code终端)。

为什么它接管而不是扩展:平台终端保留它的xterm 的私有惰性块中的实例和UI @deepseek-ai/dsh-client-ui-sidebar-terminal,所以第三方插件也不能 到达实例,而不是替换该UI。平台的干净扩展点 所提供的是 tab-type注册表:一个 extension 以相同方式注册 Kind优先于内置的。只有渲染被接管;这个 PTY仍然来自于平台 ctx.webTerminals (并发限制,空闲 回收,崩溃恢复和关闭处理程序继续工作)。

安装

请勿直接安装。安装manifest包——它把它作为一个 依赖并在插件页面上给你一个可切换的组件行:

dsh plugin --profile web add @zhangzhian/dsh-devtools

清单包还启用 right-Sidebar浏览器 (@deepseek-ai/dsh-client-ui-sidebar-browser),平台船只被禁用 Web,通过其 browser.patch.yml -所以终端连接就在那里。

此存储库的本地开发循环:

pnpm install
pnpm --filter @zhangzhian/dsh-devtools-terminal build
node scripts/profile-link.mjs     # link every package declaring dsh.client into ~/.dsh/profiles/web
node scripts/smoke-terminal-links.mjs   # real browser + real PTY smoke (link lands in the Sidebar browser)

安装或重建后,让运行 dsh web 重新发现插件 (重新启动它,或者等待ssh -hmr重新加载)。 DSH安装没有变化 它本身是需要的 -新机器、新版本或远程SSH环境 只需要安装一次插件。

它提供了什么

  • 右侧栏终端(多个选项卡);将URL悬停会显示下划线和 指针游标;
  • Ctrl / Cmd + click 控件中的链接 右边栏浏览器选项卡 - - - - - - ctx.sidebarRight.openTab('browser', { params: { url } });平台挑选 载体:网络和手机上的iframe,原生的 <webview> 在桌面 (dsh-electron航母)。地址栏,后退/前进/重新加载和“在系统中打开” 浏览器"都来自那个面板;
  • 当浏览器选项卡是 不可用 (配置文件禁用了该行,或者 平台版本没有这样的选项卡类型),它回落到 window.open(..., 'noopener,noreferrer') - Web上的一个新浏览器选项卡 系统浏览器通过桌面载体。退路永远不会吞噬一切 点击;
  • 普通点击不打开(选择和光标的行为和以前一样);
  • 包装url,宽字符,CJK标点符号和平衡括号都是 处理自实端缓冲器;
  • OSC 8超链接遵循相同的规则(取代xterm的默认值) “点击+确认+空白页”回退);
  • 如果终端服务缺席,则正文显示通知,其余部分显示 插件保持工作。

为什么侧边栏浏览器是第一位的

开发服务器页面正是面板最擅长处理的:vite / next / 在环回端口上的故事书和后端预览页几乎从不拒绝 框架。启动服务器并在侧边栏中观察它,而不是将DSH留给 另一个浏览器选项卡。公共网站仍然可以显示空白框架,因为 X-Frame-Options / CSP frame-ancestors -这是一个的物理极限 面板上的“在系统浏览器中打开”(xxx)是出路。

目标规则是一个纯函数(src/link-target.ts)和单元测试 固定“面板第一/回落时面板抛出/从不打开非http(s)”; 真正的点击语义在真正的浏览器中由 scripts/smoke-terminal-links.mjs (普通点击打开什么,Ctrl/Cmd+点击 在侧边栏浏览器中以零打开 window.open 调用)。

要求

  • 近年来 0.2.0-rc.2 或者是更新的(同侪范围) package.json);
  • 浏览器端运行时: dsh.client.platform 是 web;
  • 主机的终端服务(@deepseek-ai/dsh-api-terminal-controller)船只 与 dsh web 默认情况下;没有它,身体会显示“不可用”,而不是 失败。

版本与发布记录

@zhangzhian/dsh-devtools-terminal 共发布 3 个版本,首次发布于 2026/11/01;过去 12 个月发布了 3 个版本。

版本发布日期距今
0.3.1latest2026/11/03今天
0.3.02026/11/011 天前
0.0.0-stage2026/11/011 天前

关于 @zhangzhian/dsh-devtools-terminal 的常见问题

@zhangzhian/dsh-devtools-terminal 是什么?

DSH 开发工具:右侧栏终端(Ctrl/Cmd+点击打开输出里的 URL)

如何安装 @zhangzhian/dsh-devtools-terminal?

在项目目录运行 npm install @zhangzhian/dsh-devtools-terminal,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@deepseek-ai/cordis(~4.0.4)、@deepseek-ai/dsh-host-webserver(^0.2.0-rc.2)、@deepseek-ai/dsh-client-ui-slots(^0.2.0-rc.2)、@deepseek-ai/dsh-client-ui-primitives(^0.2.0-rc.2)、@deepseek-ai/dsh-client-ui-sidebar-right(^0.2.0-rc.2)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@zhangzhian/dsh-devtools-terminal 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@zhangzhian/dsh-devtools-terminal 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@zhangzhian/dsh-devtools-terminal 可以商用吗?

@zhangzhian/dsh-devtools-terminal 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@zhangzhian/dsh-devtools-terminal 还在维护吗?

最新版本 0.3.1 发布于 2026/11/03(今天);至今共发布 3 个版本,其中过去 12 个月发布了 3 个;首次发布于 2026/11/01。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。