Introduction

DSH Web’s “Create Workspace” requires directory selection to be performed in the browser. When accessing DSH Web via nginx reverse proxy, public domain names, or LAN IP, this selection action may not function properly in the remote browser.

The purpose of dsh-remote-dirpicker is to force the use of the browser’s internal directory browser (browse) interaction, ensuring consistent directory selection behavior for both remote and local access.

The following sections introduce its positioning, core features, installation methods, typical usage, and notes on versions, permissions, and uninstallation.

What is this?

dsh-remote-dirpicker is a DSH plugin licensed under the MIT license, used for directory selection in DSH Web’s “Create Workspace”.

It adjusts the DSH plugin composition via a composition-layer patch without modifying the dsh core code. Specifically, it disables directory-picker-auto and mounts the browse host capability along with the browser interface, making the directory selection appear as the browser’s browse method.

Repository Address:

https://github.com/gfds2005/dsh-remote-dir-picker

Core Features

Verified capabilities of this plugin include:

  • Fixed use of the browser’s internal directory browser (browse) interaction, ensuring consistent behavior locally and remotely.
  • When accessing remotely, clicking “Create Workspace” triggers the browser’s internal directory browser.
  • Supports browsing the host file system, including breadcrumb navigation and entering levels sequentially.
  • Supports jumping by entering absolute paths.
  • Supports editing paths.
  • Supports showing/hiding hidden files.
  • Supports immediately entering a newly created folder.
  • Local access also uses the browser’s internal directory browser, eliminating native dialog popups.
  • Provides directory listings and folder creation via the host.listDirectory / host.createDirectory RPC.
  • The host side checks at startup that the directoryPicker capability is browse and prints confirmation messages.

Installation and Enabling

Before installation, confirm that the target DSH environment can run the dsh command. The examples below use the web profile.

Installing from npm

dsh plugin --profile web add dsh-remote-dirpicker

Installing from source code

dsh plugin --profile web add /absolute/path/dsh-remote-dirpicker

Post-installation check

After installation, a line for dsh-remote-dirpicker is appended to dsh.profile.bundles.

Bundle composition changes are read at startup, so dsh web must be restarted after installation.

Typical Usage

After the above installation and restart, usage can proceed as follows:

  1. Open DSH Web and enter workspace selection.
  2. Click “Create Workspace”.
  3. Browse directories, enter absolute paths, edit paths, or create folders within the browser’s internal directory browser.
  4. Click “Open” to create the workspace.

Verification

After installing and restarting dsh web, check the following two items:

  • boot manifest contains:
@deepseek-ai/dsh-client-ui-directory-picker-browse
  • browse client bundle client.js is accessible and returns 200.

Uninstallation

If you need to restore the original behavior, execute:

dsh plugin --profile web remove dsh-remote-dirpicker

Restart dsh web after uninstallation to restore dsh’s default directory-picker-auto behavior.

Applicable Scenarios and Notes

Applicable Scenarios

Suitable for scenarios where DSH Web is accessed via nginx reverse proxy, public domain names, or LAN IPs.

Target platform is the DSH Web host (macOS / Linux / Windows), with cross-platform directory browsing.

Version Information

Verified version information in the available materials is as follows:

  • version in package.json is:
"version": "0.1.1"
  • README version log: 0.2.0 is deprecated and reverted to 0.1.0; it is recommended to always use version 0.1.0 or a higher stable version.

Dependency Declaration

peerDependencies declaration in package.json is as follows:

{
  "peerDependencies": {
    "@deepseek-ai/dsh-client-locale": "^0.1.0-rc.6",
    "@deepseek-ai/dsh-client-runtime": "^0.1.0-rc.6",
    "@deepseek-ai/dsh-client-ui-slots": "^0.1.0-rc.6",
    "@deepseek-ai/dsh-client-ui-workspace": "^0.1.0-rc.6",
    "@deepseek-ai/dsh-host-directory-picker-browse": "^0.1.0-rc.6",
    "@deepseek-ai/cordis": "^4.0.1"
  }
}

Permissions and Security

The browse capability is exposed only via dsh’s own RPC channel, adhering to existing dsh access control without introducing additional open ports.

Since directory browsing accesses the host file system, the plugin runs with the current dsh process permissions. You should check the source code and license before installing.

Conclusion

The value of dsh-remote-dirpicker lies in fixing the “Create Workspace” directory selection in DSH Web to the browser, ensuring consistent behavior for remote and local access while maintaining a composition-layer approach without modifying dsh core code.

GitHub:

https://github.com/gfds2005/dsh-remote-dir-picker