DSH Plugins Marketplace

DSH Plugins

Plugins

/

Development & Infrastructure

/

dsh-aliyun-ecs-connect

S

dsh-aliyun-ecs-connect

Manifest valid★ 1

One command starts your Aliyun ECS, finds its current public IP, and opens an SSH terminal — no console login, no copy-paste. Built for students who only power the server up when they need it. A DeepSeek Harness plugin. | For the "only turn it on when needed" student crowd: one command to boot the server and automatically connect.

hasBundlePatch

Aliyun ECS Quick Connect (DSH plugin)

Start an Alibaba Cloud ECS instance on demand, read its current public IP, and open an SSH terminal — instead of clicking Start in the console, waiting, copying the new IP, and retyping ssh -i ... root@<ip>.

Built as a plugin bundle for DeepSeek Harness (DSH).

中文说明

/connect
  → DescribeInstances (status + public IP)
  → StartInstance when stopped
  → poll every 3 s until Running with a public IP
  → TCP probe port 22 (sshd comes up after the OS)
  → open a terminal: ssh -i <key> -o StrictHostKeyChecking=accept-new root@<ip>

Features

Entry pointWhat it does
/connectFull flow: start if needed, resolve the IP, wait for SSH, open a terminal window
/ecs-statusStatus and current public IP only — never starts the instance
/ecs-stopStop the instance (pay-as-you-go instances use the billing-stopping mode)
ecs_connect toolModel-callable; openTerminal: false returns the ssh command only
auto connectOptional, off by default: run the flow automatically when the harness starts

Everything is idempotent: running it while the instance is already up just resolves the IP and opens a window.

Requirements

  • DSH with a profile (the web app works)
  • Windows 10/11 — the terminal launch uses wt.exe with a cmd.exe /c start fallback
  • ssh.exe (OpenSSH client, bundled with Windows) and a .pem / private key
  • Windows Terminal recommended, not required
  • An Alibaba Cloud ECS instance and a RAM AccessKey with ecs:DescribeInstances, ecs:StartInstance, ecs:StopInstance

Install

git clone https://github.com/SepTem61r/dsh-aliyun-ecs-connect.git
cd dsh-aliyun-ecs-connect
  1. Install the cloned directory as a local bundle — through the DSH plugin manager (install_bundle with this directory) or by asking your DSH agent to do it.
  2. Create the settings file and the credential file (below).
  3. Restart DSH.

The bundle declares no dependencies: it uses only Node built-ins, so there is no build step and no node_modules.

Configuration

Settings file — ~/.dsh/aliyun-ecs-settings.json

{
  "regionId": "cn-hongkong",
  "instanceId": "i-xxxxxxxxxxxxxxxxx",
  "sshUser": "root",
  "identityFile": "C:\\Users\\you\\.ssh\\your-key.pem",
  "sshPort": 22,
  "terminal": "auto",
  "autoConnect": false
}

See examples/aliyun-ecs-settings.example.json.

KeyDefaultMeaning
regionIdcn-hongkongECS region
instanceId—Instance ID (i-...)
sshUserrootSSH user
identityFile—Private key path
sshPort22SSH port
terminalautoauto (Windows Terminal, then cmd), wt, or cmd
autoConnectfalseRun the connect flow when the harness boots
autoConnectDelayMs2500Delay before that boot-time connect
startTimeoutMs180000How long to wait for Running + IP
pollIntervalMs3000Polling interval
sshReadyTimeoutMs90000How long to wait for port 22
credentialsFile~/.dsh/aliyun-ecs.jsonOverride the credential path
settingsFile~/.dsh/aliyun-ecs-settings.jsonOverride this file's path
endpointecs.<regionId>.aliyuncs.comOverride the API endpoint

A value written in the bundle row (cordis.patch.yml) is overridden by this file. Changes are read when the plugin activates, so restart DSH after editing.

Credential file — ~/.dsh/aliyun-ecs.json

{ "accessKeyId": "LTAI...", "accessKeySecret": "..." }

The environment variables ALIYUN_ACCESS_KEY_ID and ALIYUN_ACCESS_KEY_SECRET take priority. The key is read per operation and never logged.

Use a RAM sub-account, not the primary account. Minimal policy — replace the placeholders and attach it to the sub-account:

{
  "Version": "1",
  "Statement": [
    { "Effect": "Allow", "Action": ["ecs:DescribeInstances"], "Resource": "*" },
    {
      "Effect": "Allow",
      "Action": ["ecs:StartInstance", "ecs:StopInstance"],
      "Resource": "acs:ecs:<region-id>:*:instance/<instance-id>"
    }
  ]
}

See examples/aliyun-ram-policy.example.json.

Why it does not need an EIP

A pay-as-you-go instance in billing-stopping mode releases its public IP on stop and gets a new one on every start — that is why the address keeps changing. This plugin resolves the address after every start, so a fixed EIP (and its idle fee) is unnecessary. Use an EIP only when you need a stable address for DNS or an allowlist.

Billing notes

  • The plugin only starts and stops an instance; it does not change the billing method.
  • Stopping only saves money on instances billed pay-as-you-go with the billing-stopping mode.
  • Disks and EIPs may still bill while the instance is stopped — check the console.
  • Alibaba Cloud's own scheduled start/stop tasks still work when your PC is off; the /ecs-stop command only works while DSH is running.

Troubleshooting

SymptomCause
缺少 instanceId / 找不到 SSH 私钥文件Settings file missing or wrong
找不到 AccessKey 文件 / placeholder content errorCredential file missing or still a template
Forbidden.RAMThe RAM policy is missing or its resource scope does not match
InstanceNotFoundWrong instance ID / region, or the key belongs to another account
等待实例运行超时The instance is stuck starting — check it in the console
Window opens but the connection failsSecurity group does not allow port 22, or sshd is not up yet

Development

No dependencies and no build step.

node test/plugin-wiring.mjs   # command/tool registration and the auto-connect branch
node test/smoke.mjs --status  # query the instance using the real settings file
node test/smoke.mjs --open    # full flow, opens a terminal

License

MIT — see LICENSE.

Comments

Loading…

From the same category

awesome-dsh-plugin

by awesome-dsh-plugin

A curated list of plugins for DeepSeek Harness (dsh) · DeepSeek Harness 插件精选列表

Development & Infrastructure

★ 19.8k

CC0-1.0

Python

Oct 20, 2026

Index only — not installable

by 0xsline

DeepSeek Harness (DSH) ecosystem: curated plugins, tools, and infrastructure from dsh-external/hub and the public dsh-plugin topic.

Development & Infrastructure

★ 1.2k

CC0-1.0

Python

Oct 16, 2026

Index only — not installable

by pax-beehive

Open-source CLI, schemas, resolver, and DSH agent tools for DSH Plugin Hub

Development & Infrastructure

★ 386

MIT

TypeScript

Oct 20, 2026

Index only — not installable

by xiajiajun516

DeepSeek Harness (DSH) backup & restore plugin — export, import, migrate and sync your complete DSH configuration, plugins, MCP servers, skills and workspace. One-click migration to another machine.

Development & InfrastructureManifest valid

★ 217

MIT

TypeScript

Oct 18, 2026

dsh plugin --profile web add dsh-config-manager

by yjh051108

推荐组件(非必须):DeepSeek Harness 运行时注入器;已随 dsh-routing-suite 单仓库化保留,本仓库继续维护/发布。

Development & InfrastructureManifest valid

★ 165

TypeScript

Oct 16, 2026

dsh plugin --profile web add @dsh-external/dsh-super-injector

by jigjoy-ai

A CLI that turns a goal into a pull request - and a sandbox for testing concurrent AI coding agents on the Mozaik runtime.

Development & Infrastructure

★ 124

MIT

TypeScript

Oct 13, 2026

Index only — not installable