xiazhicheng/dsh-remote-retry-llm-plugin ↗★ 0
dsh-remote-retry-llm-plugin
提供支持LLM重试的SSH远程开发工具 适合在不稳定或受限的远程网络下进行SSH开发与文件操作。
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:xiazhicheng/dsh-remote-retry-llm-plugin说明文档
阅读完整 README ↗Example usage
Agent: ssh-exec { command: "ls -la /home/user/project" }
→ { stdout: "total 48\ndrwxr-xr-x ...", stderr: "", exitCode: 0 }
Agent: ssh-read { path: "/home/user/project/config.yaml" }
→ { content: "host: ...\nport: 22", path: "/home/user/project/config.yaml" }
Agent: ssh-write { path: "/home/user/project/README.md", content: "# My Project" }
→ { success: true, path: "/home/user/project/README.md" }
The SSH connection is established lazily on first tool call and cached for the plugin's lifetime; a failed or timed-out call drops the connection so the next call reconnects. Connection parameters come from the plugin config (see below):
identityFile— private key path (~is expanded); when set, key auth is used.password— used when noidentityFileis set. Bothpasswordandkeyboard-interactiveare offered, so PAM/AD-backed servers (which commonly advertise only keyboard-interactive) log in exactly likessh(1)does.- neither —
SSH_AUTH_SOCK(ssh-agent) when available, otherwise the default~/.ssh/id_ed25519,id_ecdsa,id_rsakeys. username— defaults to$USER.
remoteDir is the default remote working directory: ssh-exec runs commands as cd '' && , and ssh-read/ssh-write resolve relative paths against it (absolute paths and ~ are used as-is).
The plugin talks SSH directly through
ssh2, so it does not read~/.ssh/config. Put the host, port, username, and key in the plugin config instead; aHostalias from your ssh config will not resolve.