
Security News
Deno Goes the Way of the Dinosaur
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.
dsh-devices
Advanced tools
dsh (DeepSeek Harness) 多设备组网插件:mDNS 同网发现、密钥配对、SSH 跨网直连、SFTP 文件传输、邀请码一键舰队入队。装完在 dsh 会话内自动注册 7 个 fleet_* 工具,智能体(agent)直接调用;零 npm 依赖,Node 22 即装即用。
English · 简体中文
Turn your devices into a fleet.
Zero core changes, pure plugin mounting. A dsh plugin that lets your devices collaborate. Tools auto-register in dsh sessions — any dsh-hosted agent can call them directly. Uninstall leaves no core patches.
Requirements: ① At least 2 devices, each with dsh-devices installed (pairing is two-sided; a single device has nothing to pair with). ② Connectivity: same LAN with mDNS multicast allowed (UDP 5353; doesn't cross routers/subnets), or publicly reachable devices with SSH (port 22) open. NAT-isolated devices cannot connect to each other in this version (V2 = P2P/tailscale planned).
┌──────────────┐ ┌──────────────┐
│ dsh + devices │◄────────►│ dsh + devices │
└──────────────┘ └──────────────┘
npm install -g @deepseek-ai/dsh
dsh plugin add dsh-devices
Verified on real hardware: macOS / Ubuntu 22.04+ / Windows Server 2025 & Windows 11.
fleet7 serve); if discovery fails, allow UDP 5353 in the firewall.~/.fleet/ssh-keys/ (0600 enforced).createZstdDecompress boot error). Upgrade via nvm or the distro.sshd running, authorized_keys 600, ~/.ssh 700.npm config set registry https://registry.npmmirror.com to speed up dsh installs.Start-Service sshd; Set-Service sshd -StartupType Automatic
Allow port 22 through the firewall.fleet8 ssh, upload/download all work; && chains may return only the first command's output (OpenSSH for Windows console limitation — see TROUBLESHOOTING Q7). Split compound commands.fleet7/fleet8 exit cleanly on Windows (pipe-handle handling is explicit).fleet_ssh_exec with && chains may return only the first command's output (OpenSSH for Windows console-session quirk; see TROUBLESHOOTING Q7). Windows as a managed device is unaffected.| Module | Tool | What it does |
|---|---|---|
| mdns | fleet_discover | Scan the LAN for devices |
| mdns | fleet_pair | Pair with a device key |
| ssh | fleet_ssh_exec | Run a command on a paired device |
| ssh | fleet_workspace | Set/view remote workspace |
| ssh | fleet_upload | Upload a file to a paired device |
| ssh | fleet_download | Download a file from a paired device |
| ssh | fleet_status | Liveness probe for all paired devices (online/latency/last used) |
Disabled modules don't register their tools (modules: mdns | ssh | both).
No commands to memorize — discovery, pairing, and execution are all done by the agent calling fleet_discover / fleet_pair / fleet_ssh_exec in your session.
Or grab the tgz from Releases:
dsh plugin add ./dsh-devices-<version>.tgz.
dsh plugin add dsh-devices
dsh plugin add ./dsh-devices-<version>.tgz
You should see a clean install with no warnings. Four fleet_* tools are then auto-registered in dsh sessions.
git clone https://github.com/polaris-smart/dsh-devices.git
Both devices need dsh-devices (pairing is two-sided). Devices A and B on the same LAN.
B's user asks B's dsh agent to "start fleet broadcast" (agent runs fleet7 serve), or manually:
fleet7 serve
B generates a device key (fleet-d-..., printed in the terminal) on first fleet7 serve. Then on A:
Pair once, use forever — B has authorized A's public key; A remembers how to reach B.
When devices are not on the same LAN (e.g., commanding a cloud server from home):
echo "ssh-ed25519 AAAA... my-server" >> ~/.ssh/authorized_keys
fleet8 ssh my-server "hostname"
Then use fleet_ssh_exec / fleet_workspace in dsh sessions.
Onboarding a new device in three commands — the invite code travels over WeChat/phone, no manual key setup:
Host — generate an invite code:
fleet8 invite <your-ip-or-host> --user <remote-user> --port 22
# prints an invite code: host:port/user/token — send it to your teammate
New device — join with one command:
fleet8 join <invite-code>
# parses the code, generates an SSH keypair, registers the device, prints the public key
Host — authorize:
fleet8 allow <device-id> "<public key from the step above>"
# done — the new device can now be reached via fleet8 ssh / fleet_* tools
|---|---|---|---|
Disabled modules don't register their tools.
|---|---|---|
Errors carry next-step guidance; file transfer & workspace go through the agent tools.
After install, just say "call fleet_discover" in your dsh session to see LAN devices; pair once, then command remote devices with fleet_ssh_exec. No extra config — tools are exposed to every agent in the dsh session.
Only paired devices are reachable; key files must be 0600; all errors return readable text instead of throwing.
|---|---|---|
| modules | both | mdns / ssh / both |
┌─────────────────────────────────────────────────────┐
│ dsh (DeepSeek Harness) │
│ ┌──────────────┐ ┌──────────────┐ ┌───────────┐ │
│ │ fleet_pair │ │ fleet_workspace│ │ │ │
│ └──────┬───────┘ └──────┬───────┘ └───────────┘ │
│ │ mDNS │ SSH │
└─────────┼─────────────────┼─────────────────────────┘
▼ ▼
┌────────────┐ ┌──────────────┐
└────────────┘ └──────────────┘
│ │
For full troubleshooting see TROUBLESHOOTING.md.
A: Both devices must be on the same LAN (mDNS multicast doesn't cross routers); the target must run fleet7 serve; allow UDP 5353 through firewalls.
A: Use Scenario B manual pairing; check port 22 reachability and that the public key is in authorized_keys.
A: You likely have an outdated package — download the latest tgz from the Releases page.
A: After restarting the dsh session, type /fleet — seeing your device identity and paired devices means it works. Or ask the agent to call fleet_discover.
A: Check: ① the plugin was added to the profile you're booting (dsh plugin --profile <name> add dsh-devices) ② the session was restarted ③ Node 22+ (node --version). Still missing? Open an issue with the dsh plugin output.
A: Verify port 22 reachability (nc -vz <ip> 22 or fleet8 ssh <name> hostname) and that the public key is in the target's authorized_keys. Timeouts are usually network/firewall issues, not plugin issues.
Found a bug or have an idea?
Task-board claiming: post tasks from any device, paired devices claim them
v0.1.1 (2026-08-20)
dsh-devices); per-platform notes added to README.v0.1.0 (2026-08-20)
dsh plugin add dsh-devicesserve), fleet_status liveness probe (7th tool), real /fleet commands, SFTP transfer, SSH connect-retry, Windows adaptationsHistory (pre-rename, v0.2.x era)
/fleet command, SFTP, zero-dependency rebuild, CLI precompile, decentralized pivot (mDNS + SSH)MIT © polaris-smart
FAQs
dsh (DeepSeek Harness) 多设备组网插件:mDNS 同网发现、密钥配对、SSH 跨网直连、SFTP 文件传输、邀请码一键舰队入队。装完在 dsh 会话内自动注册 7 个 fleet_* 工具,智能体(agent)直接调用;零 npm 依赖,Node 22 即装即用。
The npm package dsh-devices receives a total of 0 weekly downloads. As such, dsh-devices popularity was classified as not popular.
We found that dsh-devices demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Security News
Cloudflare is acquiring Deno’s team, which will provide another year of bug fixes and security updates before ending support for the runtime.

Security News
Anthropic’s free OSS Scanner uses Mythos and other Claude models to find open source vulnerabilities and send maintainers reports with proposed fixes.

Security News
On Front Lines’ Early Adopters: CISO podcast, Andrew Becherer shares lessons from Datadog, weighs the long-term costs of AI-built tools, and explains how founders can actually gain a CISO’s trust.