Virtual session folders, click-to-move menu, and active task banner for DSH sidebar.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:pipipigu/dsh-workspace-tree
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
Virtual Session Folder Grouping, Move-to-Folder Menu, and In-App Visual Directory Browser for DeepSeek Harness (DSH).
📸 Visual Previews
1. Sidebar Overview & Core Features
2. In-App Visual Directory Browser & Workspace Creator
3. Precision Click-to-Move Folder Menu
🌟 Key Features
📁 Virtual Session Folders
- Zero Filesystem Pollution: Never moves or modifies underlying conversation logs or physical directories. Metadata is atomically persisted at
.dsh/workspace-tree.json. - Multi-Workspace Stability: Independent classification and pin queue per workspace. Folders remain persistent and stable across workspace switches.
- Full Folder Lifecycle: Create, inline rename (double-click), custom color badge, and delete (internal sessions safely fallback to uncategorized).
- Zero Filesystem Pollution: Never moves or modifies underlying conversation logs or physical directories. Metadata is atomically persisted at
➕ Folder-Scoped Session Creation
- Hover on any folder and click
[+]to start a new conversation directly inside that targeted folder with atomic SessionId binding, avoiding race conditions.
- Hover on any folder and click
🚀 Active Task Banner & Read-to-Dismiss
- Compact 28px Top Capsule: Pins active running tasks and unread completed conversations at the top of the sidebar.
- Smooth Lifecycle Transition: Pulsing blue dot during generation -> persistent green
[Unread]badge when completed in background -> automatically dismissed upon reading. - Deep-Jump & Auto-Expand: One-click navigation that automatically expands the parent workspace and folder.
📂 Precision Move-to-Folder Dropdown Menu
- Zero Misclicks: Replaced awkward sidebar drag-and-drop with a crisp, reliable click-to-move dropdown menu.
- Instant Categorization: Quick folder selection or inline new folder creation; dedicated eject button inside folders to return sessions to uncategorized.
🗂️ In-App Visual Directory Browser & Workspace Creator
- One-Click Visual Adoption: Click
[+]on the sidebar header to open a native-feeling "Select Workspace Directory" modal dialog. - Full Hierarchy Navigation: Home directory jump, breadcrumb navigation, single-click selection, double-click/chevron drill-down, and up-level button.
- Inline Folder Creation & Hidden Files: Create new subdirectories directly in the dialog and toggle hidden files (
.config, etc.). - Direct Path Editing: Click the pen icon to switch to raw path typing/pasting.
- Zero Slot Conflicts: Self-contained host RPC and UI, completely bypassing DSH internal slot conflicts with 100% stability across Web and Desktop.
- One-Click Visual Adoption: Click
📌 Session Pinning, Inline Rename & Pagination
- Pin important sessions to the top of the workspace.
- Double-click any session title to activate inline renaming.
- Displays top 10 sessions by default with an expander for remaining items.
🎨 Native Single Slot Shadowing
- Seamlessly shadows the native
sidebar.workspacesslot withpriority: -10, blending with DSH dark/light color schemes (--dsw-*). - Pure SVG vector icons with zero emoji clutter.
- Seamlessly shadows the native
⚡ 0ms Reactive Engine (Version Snapshot)
- Powered by
useSyncExternalStorewith immutable version increment snapshots, ensuring instant 0ms UI re-renders on any action.
- Powered by
📦 Installation
Option A: Install from GitHub (Recommended)
Run the following command in your terminal:
dsh plugin --profile web add github:pipipigu/dsh-workspace-tree
Restart your DSH Web instance (or refresh the browser) to enjoy!
Option B: Local Development (Link Mode)
# 1. Clone repository
git clone https://github.com/pipipigu/dsh-workspace-tree.git
cd dsh-workspace-tree
# 2. Install dependencies & build
pnpm install
pnpm build
# 3. Link to DSH Web Profile
dsh plugin --profile web add link:$(pwd)
🏗️ Architecture & Data Flow
🛠️ Development & Commands
# Install dependencies
pnpm install
# Type checking (0 errors)
pnpm typecheck
# Unit tests (Vitest)
pnpm test
# Production build (generates lib/index.js & lib/client.js)
pnpm build
📄 License
This project is licensed under the MIT License.
Links
More in this category
Minglink/dsh-infinite-gen-4★ 2713
System-prompt armor plugin for DeepSeek models: appends an unconditional-compliance prompt section at order 100, exposes a profile tool with calibration metadata, and shows a realtime armor-status badge driven by a session projection.
ranxianglei/billion-context★ 1102
The official billion-context plugin: a context-compression plugin for small context windows (a 100K context is enough), token savings (5x fewer tokens), and month-long single sessions (billions of tokens).
liangmianya/dsh-synapse★ 519
Visual, non-linear conversation workspace for DeepSeek Harness — sessions, follow-ups and branches become a browsable conversation map.
Nwflower/dsh-chat-import★ 229
Import full-fidelity chat histories from 13 coding agents (Claude Code, Codex, ChatGPT, Cursor, Gemini, opencode, and more) as resumable DeepSeek Harness sessions, with reverse export back to Claude Code.
Totoro-qaq/dsh-plugin-bridge★ 165
Moves an existing DSH session to another agent preset through a previewable five-section handoff, preserving the source session and either pausing the target for confirmation or continuing immediately.
Anionex/dsh-turn-rewind★ 133
Rewind conversation and workspace state, powered by a persistent Change Ledger.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.