DeepSHPlugins
dsh-workspace-explorer 專案預覽
GITHUB / COMMUNITY PROJECT

dsh-workspace-explorer

UI 增強JavaScriptMIT

獨立單功能的工作區檔案樹面板:會話頭部圖示開啟當前工作區目錄樹的動畫彈窗;點選或拖拽檔案即可把引用插入輸入框;自帶搜尋、行內預覽、實時設定與中英雙語;零配置,一條命令即裝即用。

26 StarsJiyr0119 更新時間 2026-09-07
訪問 GitHub 倉庫
dsh-workspace-explorer 專案預覽
dsh-workspace-explorer 介面截圖dsh-workspace-explorer 介面截圖dsh-workspace-explorer 介面截圖dsh-workspace-explorer 介面截圖dsh-workspace-explorer 介面截圖

專案介紹

中文

獨立單功能的工作區檔案樹面板:會話頭部圖示開啟當前工作區目錄樹的動畫彈窗;點選或拖拽檔案即可把引用插入輸入框;自帶搜尋、行內預覽、實時設定與中英雙語;零配置,一條命令即裝即用。

English

Standalone workspace file-tree panel for the DSH web UI: a session-header icon opens an animated popup of the current workspace tree; click or drag a file to insert its reference into the composer, with search, inline preview, live settings, and zh/en i18n; single-purpose, zero-config, one-command install.

專案資訊與收錄訊號

快照 2026-09-11
作者 / 組織
Jiyr0119
倉庫
Jiyr0119/dsh-workspace-explorer
GitHub Stars
26
Forks
0
開發語言
JavaScript
許可證
MIT
最近推送
2026-09-07
Manifest
資料中檢測到宣告

公開倉庫不自動等於可商用;許可證與當前相容性以原專案文件為準。Manifest 和資料評分不構成安裝安全認證。

資料評分

83/ 100
維護活躍
98
文件與實用資訊
99
生態關注度
41
安裝便捷訊號
100
專案宣告訊號
100

近 4 天仍在更新;README 含完整安裝與使用說明;標準命令一鍵安裝。

評分來自已有資料快照的五維模型,僅作瀏覽參考,不是實際使用評測或安全檢測結論。

安裝與使用

所有專案資料與許可均以對應 GitHub 倉庫為準。

dsh plugin --profile web add @jiyr0119/dsh-workspace-explorer

複製命令不會自動執行。請先閱讀倉庫文件,確認環境要求與許可證。

專案截圖

倉庫 README

GitHub 原文

已儲存的倉庫文件快照;文件抓取時間未記錄,可能與上方目錄介紹處於不同版本。安裝前請核對當前倉庫說明。

儲存庫檔案保留原文,指令與授權文字不作自動改寫。

dsh-workspace-explorer

English | 中文

License npm npm downloads Awesome DSH Plugin GitHub stars Last commit

⭐ If you find this useful, give it a Star — it makes the author's day  ·  ★ Give a Star

A workspace file explorer for the DeepSeek Harness Web UI: a “Workspace Files” capsule button in the session header (feature name + folder icon, beside the Session log button) opens an animated popup showing the current workspace's directory tree — click or drag a file to send its reference to the model.

Inspired by the VS Code / Cursor project tree, filling the gap of a missing directory view in DSH after workspaces are added.

🖥 Demo

dsh-workspace-explorer demo

*Demo GIF (recorded at v0.5.1): the “Workspace Files” pill entry, multi-select batch insert, folder drag → compact tree text, paginated preview, and the settings tab. The v0.6.0 split-view preview and file editing are shown in the screenshots below.*

Screenshots · 截图

Panel

File tree

Split-view preview

Edit mode

Insert & send

Features

  • 📂 Animated popup — a “Workspace Files” capsule button (feature name + folder icon, same style as the native Session log download button) sits in the session header and opens a floating panel with a spring-like fade/scale-in animation; the popup is measured live to sit between the session header and the composer (the chat area's right side), so it never covers the input box
  • 🗂 Top tab bar — click at the top of the panel to switch between Files and Settings; the Settings page tunes behavior live (hide noise dirs, show sizes, reference format, preview lines, panel width) and mirrors into DSH Settings → Workspace Explorer
  • 🗂 Lazy-loading tree — directories load on demand; noise dirs (node_modules, .git, dist, __pycache__, …) are hidden automatically
  • 🎨 File-type icons — filled, color-coded document badges per extension (TS / JS / Python / JSON / Markdown / image / config / shell, …); amber folders that brighten when expanded
  • 🖱 Click to insert — click a file row to append a [file: relative-path] reference to the composer; after sending, the model resolves it with its read tool
  • 🖱 Drag & drop — drop a file into the composer to insert at the caret (fullscreen dashed hint); dropping elsewhere appends to the end. Folders are draggable too — dropping a directory inserts a depth-limited compact tree listing
  • 🖱 Multi-select & batch insert — Shift / ⌘ click to select multiple rows, then insert all of them at once (files → references, folders → tree listings)
  • 🌓 Theme-aware — built entirely on DSH's --dsw-alias-* design tokens; adapts to light/dark with a native dialog look (16px radius, lv3 shadow)
  • 🔍 Search & filter — filter files by name across loaded directories (flat result list with a match count)
  • 👁 Paginated preview — preview any text file with prev/next line paging (total lines & current page shown); insert the reference, or paste the full content for small files (≤ 32 KB)
  • ✏️ Split view preview — click the 👁 icon before any file to open a 340px left-side preview panel; the file tree stays visible on the right for easy navigation
  • 📝 File editing — click "Edit" in the preview panel to enter textarea mode; save writes directly to disk with change detection (warns if the file was modified externally)
  • 🌐 i18n — zh/en dictionaries registered through DSH's locale service; the panel follows the DSH UI language

Quick Start

Installation & usage

Way 1 · Native install via dsh plugin add / storefront (recommended) One command installs the full plugin — no build step, no config changes. The npm package ships a native host half (lib/index.js, webServer JSON routes incl. /dsh-we/api/config) and a browser bundle (lib/client.js via dsh.plugin.json).

dsh plugin --profile web add -w @jiyr0119/dsh-workspace-explorer@latest

(or click the install button in the DSH market). After install, a “Workspace Files” pill (name + icon) appears in the session header; restart or hard-refresh the web UI if needed. This is the zero-config, no-build path.

Way 2 · npm source package (manual paste) npm install @jiyr0119/dsh-workspace-explorer — the package ships dynamic/host.js / dynamic/client.js for the manual paste flow below, with semver releases.

Way 3 · Dynamic plugin paste (zero-build fallback) A *dynamic Cordis plugin*: no build step, no config changes — useful for quick experimentation or environments without the storefront.

  1. In the DSH web UI, have an agent run cordis_define (or use the dynamic plugin panel) with idPrefix wsex.
  2. Paste the whole dynamic/host.js into Host code.
  3. Paste the whole dynamic/client.js into Client code.
  4. cordis_run to activate; authorize on the Run card when it first appears.
  5. Click the “Workspace Files” pill (name + folder icon) in the session header → expand directories → click a file, or drag it into the composer, then send.
ℹ️ pnpm note: modern pnpm (9/10) refuses to add a dependency at the workspace root (ERR_PNPM_ADDING_TO_ROOT), hence the -w flag above. Alternative: create ~/.dsh/profiles/web/.npmrc containing ignore-workspace-root-check=true.
⚠️ Common misconception: a listing alone never auto-installs anything — users still click install. With Way 1 the full UI now appears after install (native bundle, v0.4.0+ verified with a clean dsh plugin add — no boot errors).

See docs/install.md for details.

Usage

  1. Click the “Workspace Files” pill (feature name + folder icon) at the top right of the session header, beside the Session log button, to open the popup.
  2. Expand directories to browse files.
  3. Click a file, or drag it into the composer, then send.
  4. Use the Settings tab at the top of the popup (or DSH Settings → Workspace Explorer) to adjust panel behavior.

Project Structure

dsh-workspace-explorer/
├── README.md             # Docs — English (default)
├── README.zh.md          # Docs — 中文
├── LICENSE               # MIT
├── CHANGELOG.md          # Release notes
├── manifest.json         # Plugin metadata
├── package.json          # Repo metadata (not an npm package)
├── demo/
│   ├── index.html        # Interactive mock preview (GitHub Pages)
│   └── preview.gif       # Demo animation (README)
├── .github/
│   └── workflows/
│       └── pages.yml     # Deploy demo/ to GitHub Pages (manual; preview hidden)
├── docs/
│   ├── install.md        # Install guide
│   ├── native-package.md # Native DSH package roadmap (upstream PR sketch)
│   └── publish.md        # Publishing workflow (GitHub + npm)
├── src/
│   ├── index.ts          # Native host half: webServer JSON routes (/dsh-we/api/*)
│   └── client/
│       └── index.tsx     # Native client half: popup + tree + icons + drag & drop
├── dynamic/
│   ├── host.js           # Dynamic paste host half: fs listing + ws-tree.* RPC
│   └── client.js         # Dynamic paste client half: popup + tree + icons
└── lib/                  # Built artifacts (lib/index.js + lib/client.js)

Implementation Notes

CapabilityMechanism
Directory listingHost fs.resolve / fs.listDir
Host→Client RPCharness.handle('ws-tree.list' / 'ws-tree.peek') ↔ host.call(...)
Popupshell.overlay slot (useWorkspaces / useSessions), position measured between session header & composer
Toggle buttonconversation.session.header.utilities slot (“Workspace Files” pill: name + icon)
Composer writeconversation.input.dock → inputActions.setDraft
Drag & dropHTML5 DnD; native caret insert in the textarea, append elsewhere
Theming--dsw-alias-* CSS variables (light/dark)

Version

Current version v0.6.0 — the M2 write path: a 340px split-view preview panel (click the 👁 button before any file; the file tree stays visible on the right) and in-panel file editing (textarea mode with Save / Discard / Cancel, a “Modified” badge, and external-change detection on save). See CHANGELOG.md for release notes.

Roadmap

Focused on the two lines that actually matter to the product: the read path (pointing the model at code) and the write path (editing files). Everything else is parked in the backlog below instead of being listed as a peer track.

Done ✅

  • [x] v0.1 core: right-side file tree, click / drag-to-composer references, native DSH look
  • [x] Search & filter; inline preview (first 60 lines); content insertion for small files (≤ 32 KB)
  • [x] i18n (zh/en via the DSH locale service, follows the DSH UI language)
  • [x] Demo language toggle, GitHub Pages preview, demo GIF, storefront screenshots
  • [x] npm source package + dsh.bundle contract + awesome-dsh-plugin listing (#1158)

Milestone M1 — read-path UX ✅ (v0.5.0)

  • [x] Multi-target references: drag a directory in (inserts a depth-limited compact tree listing) + multi-select / batch-insert file references (Shift / Cmd) — one capability, one milestone
  • [x] Paginated full preview for large files (prev / next page, lazy loading) instead of the 60-line / 200 KB cap — not rendering the whole file at once

Milestone M2 — write path ✅ (v0.6.0)

  • [x] Split view preview panel: left-side 340px panel slides in, file tree stays visible on the right
  • [x] Clickable preview icon: 👁 button before each file name opens the preview panel
  • [x] In-panel file editing: textarea mode with save/discard/cancel; change detection (warns when file modified externally)
  • [x] Host write route: /dsh-we/api/write with atomic save and size-based change detection

Parked backlog (do when real demand shows up)

  • Content search across loaded dirs (host-side grep); recent files / favorites
  • Draggable / resizable panel that remembers position & width; full keyboard navigation; copy path / reveal in the OS file manager
  • Virtual scrolling (huge dirs); light/dark theme regression checks; Playwright e2e

Upstream-dependent chores

  • Native DSH package (@Remote namespace; needs upstream support) — see docs/native-package.md
  • dsh-genie hardened install; CI (lint + e2e + automated release)

License

MIT

使用前核對

安裝步驟、相容版本與授權範圍以原專案當前文件為準。Stars 和評分是快照中的導航訊號。

安裝與排錯 · 專案問題反饋

同類專案