dsh-powerdesk:在 DSH Web UI 中增加可停靠 IDE 工作台

前言

在 DSH 的插件化思路下,开发者可以把常用工具装进 Web UI。智能体工作流里,聊天、终端、文件、编辑、笔记、浏览器和日程常常分散在不同应用里;dsh-powerdesk 的目标是把这几类工具放进 DSH Web UI 的右侧和底部可停靠面板中,减少离开聊天页面的切换。

这是什么

dsh-powerdesk 是一个 DSH 网页插件,由 FleetingEcho 维护。它为 DSH Web UI 提供 IDE 工作台,包含终端、文件浏览器、Markdown 笔记、代码编辑器、沙箱浏览器和日历。

该插件尚未发布 npm 包,安装直接来自 GitHub 仓库:

https://github.com/FleetingEcho/dsh-powerdesk

使用它需要 DSH >=0.0.1,并且 dsh CLI 在 PATH 中。

核心功能

终端

终端使用 restty 渲染器,包含 WebGPU/WebGL2 + WASM VT,并由 Rust PTY 驱动,相关实现使用 napi-rs + portable-pty。

终端在当前会话工作目录打开;同一会话可以打开多个终端,直到配置配额。字体和主题可以在 Settings → Powerdesk 中调整。

文件浏览器

文件浏览器用于选择本地文件夹,并浏览目录树。点击文件可以在编辑器中打开;文件行提供复制相对路径或绝对路径的操作。

Markdown 笔记

笔记模块可以绑定一个本地文件夹,以递归树浏览和编辑其中的 .md 文件,并支持创建、重命名和删除。

代码编辑器

代码编辑器基于 CodeMirror 6,支持 TS/JS/Python/JSON/CSS/HTML/Markdown/Rust/YAML 语法高亮。它还支持主题、软换行,以及 Cmd/Ctrl+S 保存。

沙箱浏览器

沙箱浏览器提供带地址栏的 iframe。浏览器标签默认沙箱化:不使用 allow-same-origin,拒绝 loopback 地址,并探测 X-Frame-Options / frame-ancestors 的拒绝原因。

日历

日历使用 schedule-x,支持月、周、日视图。事件存储在本地 SQLite 数据库。

搜索、面板与扩展

插件提供 ripgrep 内容搜索。右侧面板和底部面板均支持停靠、拖动调整大小,并支持在面板间拖动标签。

自定义扩展可以通过提交 React 组件和 powerdesk.json.tgz 包来增加标签页。

安装采用零构建方式:lib/ 与 macOS / Linux-x64 Rust PTY 二进制已提交,安装时直接复制文件。

安装与启用

先确认环境:

  • DSH >=0.0.1
  • dsh CLI 在 PATH
  • 从源码安装时,需要 Node.js 20+ 和 pnpm 9+

README 提示只选择一个安装渠道,不要同时启用两个。下面先介绍从 GitHub 仓库安装。

从 GitHub 安装

dsh plugin --profile web add https://github.com/FleetingEcho/dsh-powerdesk.git

安装完成后,在浏览器执行硬刷新:

Cmd/Ctrl+Shift+R

预编译 Rust PTY 二进制已提交到 darwin-arm64darwin-x64linux-x64-gnu。其他平台首次使用时需要从源码构建 Rust PTY。例如 Windows 或 Linux ARM64:

cd ~/.dsh/profiles/web/node_modules/dsh-powerdesk
pnpm build:rust

从源码安装

适合开发或需要本地修改的场景。先克隆仓库,再执行构建和注册:

git clone https://github.com/FleetingEcho/dsh-powerdesk.git
cd dsh-powerdesk
pnpm install
pnpm build
pnpm build:rust
dsh plugin --profile web add "dsh-powerdesk@link:$PWD"

从源码安装需要 Node.js 20+ 和 pnpm 9+。

典型用法

1、点击窗口右上角按钮,打开或收起右侧面板、底部面板。

2、将标签拖到面板边缘进行分割,拖到面板中心进行合并或重排,也可以把标签在右侧面板与底部面板之间移动。

3、打开终端后,可以在当前会话工作目录执行命令;按配额打开多个终端,并在 Settings → Powerdesk 中调整字体和主题。

4、在文件浏览器中选择本地文件夹,浏览目录树,点击文件在编辑器打开,或复制相对路径、绝对路径。

5、在笔记中绑定本地文件夹,浏览和编辑 .md 文件,并创建、重命名、删除条目。

6、在日历中查看月、周、日视图;事件保存在本地 SQLite 数据库。

适用场景与注意

适合需要在 DSH Web UI 内同时使用终端、文件、编辑、笔记、浏览器和日历的开发者。由于它运行在 DSH Web 宿主环境中,会受当前 dsh 进程权限和本机目录访问能力影响;安装前应检查 GitHub 源码和 LICENSE 文件。已核实资料中只出现 LICENSE 文件名,未给出具体许可证名称,使用前应自行确认。

需要注意:

  • 浏览器标签默认沙箱化,不使用 allow-same-origin,并拒绝 loopback 地址。
  • darwin-arm64darwin-x64linux-x64-gnu 平台首次使用时需要构建 Rust PTY。
  • 只选择一个安装渠道,不要同时启用两个。
  • 插件尚未发布 npm 包,安装直接来自 GitHub 仓库。

获取

dsh-powerdesk 的价值在于把常用开发工具收进 DSH Web UI 的可停靠面板中,保持聊天和工作台在同一页面。

  • 目录页:https://www.skillhub.cn/plugins/FleetingEcho/dsh-powerdesk
  • GitHub:https://github.com/FleetingEcho/dsh-powerdesk
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye