Introduction¶
With DSH’s plugin architecture, developers can install common tools into the Web UI. In agent workflows, chat, terminal, files, editing, notes, browser, and calendar are often scattered across different applications; dsh-powerdesk aims to place these types of tools into dockable panels on the right and bottom of the DSH Web UI, reducing context switching away from the chat page.
What is this¶
dsh-powerdesk is a DSH web plugin maintained by FleetingEcho. It provides an IDE workspace for the DSH Web UI, including a terminal, file browser, Markdown notes, code editor, sandboxed browser, and calendar.
The plugin has not yet published an npm package; installation is directly from the GitHub repository:
https://github.com/FleetingEcho/dsh-powerdesk
Using it requires DSH >=0.0.1, and the dsh CLI must be in PATH.
Core Features¶
Terminal¶
The terminal uses the restty renderer, incorporates WebGPU/WebGL2 + WASM VT, and is powered by a Rust PTY, with the implementation using napi-rs + portable-pty.
The terminal opens in the current session’s working directory; multiple terminals can be opened in the same session until the configured quota is reached. Fonts and themes can be adjusted in Settings → Powerdesk.
File Browser¶
The file browser is used to select a local folder and browse the directory tree. Clicking a file opens it in the editor; file rows provide actions to copy relative or absolute paths.
Markdown Notes¶
The notes module can bind to a local folder, recursively browse and edit .md files within it, and support creating, renaming, and deleting entries.
Code Editor¶
The code editor is based on CodeMirror 6, supporting syntax highlighting for TS/JS/Python/JSON/CSS/HTML/Markdown/Rust/YAML. It also supports themes, soft wrap, and Cmd/Ctrl+S save.
Sandbox Browser¶
The sandbox browser provides an iframe with an address bar. Browser tabs are sandboxed by default: allow-same-origin is not used, loopback addresses are rejected, and the refusal reasons for X-Frame-Options / frame-ancestors are detected.
Calendar¶
The calendar uses schedule-x, supporting month, week, and day views. Events are stored in a local SQLite database.
Search, Panels, and Extensions¶
The plugin provides ripgrep content search. Both the right and bottom panels support docking, drag-to-resize, and dragging tabs between panels.
Custom extensions can add tabs by providing a .tgz package containing React components and powerdesk.json.
Installation uses a zero-build approach: lib/ and macOS/Linux-x64 Rust PTY binaries are pre-compiled, and files are copied directly during installation.
Installation and Activation¶
First, confirm the environment:
DSH >=0.0.1dshCLI inPATH- When installing from source, Node.js 20+ and pnpm 9+ are required
The README suggests choosing only one installation channel and not enabling both at the same time. Below is an introduction to installation from the GitHub repository.
Installation from GitHub¶
dsh plugin --profile web add https://github.com/FleetingEcho/dsh-powerdesk.git
After installation, perform a hard refresh in the browser:
Cmd/Ctrl+Shift+R
Precompiled Rust PTY binaries have been committed for darwin-arm64, darwin-x64, and linux-x64-gnu. For other platforms, building Rust PTY from source is required for the first use. For example, Windows or Linux ARM64:
cd ~/.dsh/profiles/web/node_modules/dsh-powerdesk
pnpm build:rust
Installation from Source¶
Suitable for development or scenarios requiring local modifications. First, clone the repository, then execute build and registration:
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"
Installing from source requires Node.js 20+ and pnpm 9+.
Typical Usage¶
-
Click the button in the top-right corner of the window to open or close the right and bottom panels.
-
Drag tabs to the edge of a panel to split, drag to the center to merge or rearrange, or move tabs between the right and bottom panels.
-
After opening a terminal, commands can be executed in the current session’s working directory; open multiple terminals up to the quota limit, and adjust fonts and themes in
Settings → Powerdesk. -
Select a local folder in the file browser, browse the directory tree, click a file to open it in the editor, or copy relative or absolute paths.
-
Bind a local folder in the notes section, browse and edit
.mdfiles, and create, rename, or delete entries. -
View month, week, and day views in the calendar; events are saved in the local SQLite database.
Use Cases and Notes¶
Suitable for developers who need to use terminal, files, editing, notes, browser, and calendar simultaneously within DSH Web UI. Since it runs in the DSH Web host environment, it is affected by the permissions of the current dsh process and local directory access capabilities; before installation, check the GitHub source code and LICENSE file. The verified information only shows the LICENSE file name without a specific license name, so you should verify it independently before use.
Please note:
- Browser tabs are sandboxed by default,
allow-same-originis not used, and loopback addresses are rejected. - For non-
darwin-arm64,darwin-x64, orlinux-x64-gnuplatforms, building Rust PTY from source is required for the first use. - Choose only one installation channel and do not enable both at the same time.
- The plugin has not yet published an npm package; installation is directly from the GitHub repository.
Get it¶
The value of dsh-powerdesk lies in gathering common development tools into the dockable panels of DSH Web UI, keeping chat and the workspace on the same page.
- Directory page:
https://www.skillhub.cn/plugins/FleetingEcho/dsh-powerdesk - GitHub:
https://github.com/FleetingEcho/dsh-powerdesk