Preface¶
In DSH / agent development scenarios, it is common for a machine to run a dsh session while needing to access another development machine, cloud host, or test machine. When handling this manually, you typically need to first confirm the network location, then manually SSH, copy files, and check whether keys are paired.
dsh-devices is a dsh plugin designed for these multi-device collaboration scenarios. It provides mDNS same-network discovery, device key pairing, SSH cross-network direct command execution, remote workspace setup/viewing, file upload/download, paired device liveness probing, and invite-code fleet joining.
DSH’s extension model leans toward “everything is a plugin”; the plugin directory is an independent community site and has no official affiliation with DeepSeek / High-Flyer.
What Is This¶
dsh-devices enables multiple devices with dsh installed to collaborate through plugin tools.
Verified information includes:
- Plugin name:
dsh-devices - Repository URL:
https://github.com/polaris-smart/dsh-devices - Plugin directory page:
https://www.skillhub.cn/plugins/polaris-smart/dsh-devices - License: MIT
- Retrieved
package.jsonversion:0.1.2 - Installation command:
dsh plugin add dsh-devices
After installation, the plugin registers fleet_* tools within the dsh session for the agent in the dsh session to call. Verified tool names include:
fleet_discoverfleet_pairfleet_ssh_execfleet_workspacefleet_uploadfleet_downloadfleet_status
Core Capabilities¶
Same-Network Discovery and Pairing¶
Same-network scenarios use mDNS for device discovery.
Verified capabilities include:
fleet_discover: Scans for devices on the LANfleet_pair: Pairs keys with a device- mDNS is in beta status
- Limited to the same LAN / same subnet only
- Requires UDP
5353
Pairing is bidirectional. Once devices are paired, they can only access paired devices.
Fleet keys are located at:
~/.fleet/ssh-keys/
Key files in this directory require permission 0600.
SSH Cross-Network Direct Command Execution¶
Cross-network scenarios use direct SSH.
Verified capabilities include:
fleet_ssh_exec: Executes commands on paired devicesfleet_workspace: Sets or views the remote workspace- In the current version, NAT-isolated devices cannot interconnect
- Cross-network execution depends on SSH reachability
File Upload and Download¶
Verified capabilities include:
fleet_upload: Uploads files to paired devicesfleet_download: Downloads files from paired devices- The plugin description mentions SFTP file transfer
Paired Device Liveness Probing¶
fleet_status is used to probe the liveness status of paired devices.
Verified information includes:
- Can return online status
- Can return latency
- Can return last used time
Invite Code Fleet Joining¶
The invite code flow is used for new devices to join the fleet.
Verified CLI commands include:
fleet8 invite <your-ip-or-host> --user <remote-user> --port 22
fleet8 join <invite-code>
fleet8 allow <device-id> "<public key from the step above>"
Module Control¶
The plugin supports disabling tool registration per module.
The verified configuration item is modules, which can be set to:
mdnssshboth
When a module is disabled, the tools under that module are not registered.
Installation and Activation¶
Below are the installation methods based on verified commands.
1. Install dsh¶
First, install dsh:
npm install -g @deepseek-ai/dsh
2. Install dsh-devices¶
Use the plugin installation command:
dsh plugin add dsh-devices
If using a local tgz package, you can use:
dsh plugin add ./dsh-devices-<version>.tgz
3. Check Node Requirements¶
The engines field in package.json is:
"node": ">=22.18"
The README’s Linux platform section states:
Node ≥ 22.19 required
The two statements are inconsistent. Before installation, it is recommended to check the Node version according to the target platform’s instructions.
4. Check Peer Dependencies¶
The peerDependencies in package.json includes:
"@deepseek-ai/cordis": "*"
Both @deepseek-ai/dsh and @deepseek-ai/cordis appear in the materials, but their relationship is not explained. Before installation, it is recommended to review the dependency documentation.
5. Check the Patch Field¶
package.json contains:
"dsh": {
"bundle": {
"patch": "./cordis.patch.yml"
}
}
The README mentions Zero core changes / uninstall leaves no core patches. Since both the “zero core changes” description and the dsh.bundle.patch field exist in the materials, you should inspect ./cordis.patch.yml and the plugin source code before installation.
Typical Usage¶
Same Network: Discover and Pair¶
Same-network usage starts with discovery, followed by pairing.
-
Prepare at least 2 devices, each with
dsh-devicesinstalled. -
Start the mDNS-related service on one device:
fleet7 serve
-
On another device, use
fleet_pairto complete key pairing with that device. -
After pairing is complete, call
fleet_discoverin the dsh session to view LAN devices.
Cross-Network: Direct SSH¶
Cross-network usage first confirms SSH reachability, then executes commands.
-
The target device needs SSH open, typically on port
22. -
Add the public key to the target device’s
authorized_keys. -
Run a test command:
fleet8 ssh my-server "hostname"
- In the dsh session, use:
fleet_ssh_execfleet_workspace
Invite Code Fleet Joining¶
Here is a three-step process.
- Generate an invite code on an existing device:
fleet8 invite <your-ip-or-host> --user <remote-user> --port 22
- Join the fleet on the new device:
fleet8 join <invite-code>
- Return to the existing device and authorize the new device:
fleet8 allow <device-id> "<public key from the step above>"
Once completed, the new device can enter the paired device list.
File Transfer¶
File upload and download are invoked through agent tools:
fleet_uploadfleet_download
In-Session Quick Invocation¶
After installation, you can directly say in the dsh session:
call fleet_discover
to view devices on the same network. After pairing is complete, you can use:
fleet_ssh_exec
to execute commands on remote devices.
Applicable Scenarios and Precautions¶
Applicable Scenarios¶
dsh-devices is suitable for the following scenarios:
- Accessing other devices on the same LAN from one dsh device
- Managing cross-network hosts via SSH
- Allowing the agent in a dsh session to call
fleet_*tools to execute commands, view workspaces, or upload/download files - Using invite codes to let new devices join a paired fleet
Prerequisites¶
At least 2 devices are required, each with dsh-devices installed.
Pairing is bidirectional. A single device has no peer to pair with.
Network Limitations¶
Same-network discovery relies on mDNS.
Verified limitations include:
- mDNS is in beta
- Limited to the same LAN / same subnet only
- Requires UDP
5353 - Cross-network devices use direct SSH
- NAT-isolated devices cannot interconnect in the current version
macOS Notes¶
macOS’s SSH server is disabled by default.
To allow other devices to remotely command this macOS machine, you need to enable Remote Login.
Linux Notes¶
Verified considerations for the Linux platform include:
- The README platform section requires Node ≥
22.19 - The
enginesinpackage.jsonrequires Node ≥22.18 - When acting as a managed device,
sshdmust be running authorized_keyspermission should be600~/.sshpermission should be700- The cloud security group needs to allow SSH port
22
Windows Notes¶
When Windows acts as a managed device, OpenSSH Server needs to be installed.
When Windows acts as a controller, && chains may only return the output of the first command. It is recommended to split compound commands.
Permissions and Security¶
The plugin runs with the current dsh process’s permissions. Before installation, it is recommended to check:
- The plugin source code
- The MIT license
package.json./cordis.patch.yml- The
@deepseek-ai/cordispeer dependency - The target device’s SSH configuration and key permissions
Verified runtime constraints include:
- Can only access paired devices
- Key file permissions require
0600 - Errors return readable text rather than throwing exceptions directly
Conclusion¶
The value of dsh-devices lies in bringing same-network discovery, key pairing, SSH cross-network execution, file transfer, and fleet joining into dsh session tools, allowing the agent to call them directly.
Before use, you need to confirm the number of devices, network location, SSH reachability, Node version, key permissions, and the plugin source code and patch files.
Related addresses:
- Plugin directory page:
https://www.skillhub.cn/plugins/polaris-smart/dsh-devices - GitHub:
https://github.com/polaris-smart/dsh-devices