Introduction¶
When developing sessions with DeepSeek Harness, checking the current working directory structure often requires switching windows. This plugin adds a docked file browser to the bottom of the sidebar, providing a lazy-loaded directory tree, filtering and reload features, and a draggable panel height control.
Core Features¶
- Docked Integration: Rendered in the sidebar footer, with width automatically following the sidebar, without using floating windows or standalone cards.
- Draggable Height: Adjust the panel height by dragging its top edge.
- Lazy-Loaded Directory Tree: Only expands levels that have been clicked, reducing memory usage.
- In-Memory Toggle: The toggle is stored in memory (Settings → General → File Browser); when turned off, the panel collapses to the title row.
- Read-Only and Sandboxed: The plugin only lists metadata, restricts paths to the session working directory, and lists up to 800 entries per request.
- Bilingual Support: Follows the DSH interface language.
- Easy Installation: No build required; install directly.
Installation¶
Use the official CLI to install the web profile plugin:
dsh plugin --profile web add github:mabaoguo9527/dsh-file-explorer
After installation, restart dsh web to activate it.
Usage¶
- Navigate: Click a directory row to expand or collapse its level, or click a file row to select it and display its relative path.
- Filter: Enter a name in the filter box to filter already loaded files.
- Refresh: Click the ↻ icon next to the title to reload the directory.
- Collapse/Expand Panel: Click the arrow on the left side of the title row, or use the toggle in Settings.
- Adjust Height: Hold the top edge of the panel and drag it.
Security and Limitations¶
The plugin is designed for a read-only environment:
* Path Validation: All requests validate whether the path is inside the session working directory and reject escape attempts.
* No Content Reading: It only uses fs.stat and fs.listDir, without reading file contents.
* No Network Requests: It does not access credentials or initiate external network requests.
* Configuration Restrictions: The plugin does not accept any configuration files; the toggle state is stored in memory and resets after restart.
Conclusion¶
By integrating a file tree into the sidebar, this plugin solves the pain point of frequently switching windows to check directory structures during local development. Its strict read-only constraints and security design make it suitable for use in development environments.