
Hyperpod Ssm
Remote command execution and file transfer on SageMaker HyperPod cluster nodes via AWS...
Install
npx skills add awslabs/agent-plugins --skill hyperpod-ssm -g -a claude-code -y- Repository
- awslabs/agent-plugins933
- Category
- DevOps
- Updated
- 20d ago
- License
- Apache-2.0
- Context cost
- Lightabout 1,144 tokens
- Runs scripts
- Yes, review before use
What it does
Remote command execution and file transfer on SageMaker HyperPod cluster nodes via AWS Systems Manager (SSM). This is the primary interface for accessing HyperPod nodes, direct SSH is not available. Use when any skill, workflow, or user request needs to execute commands on cluster nodes, upload files to nodes, read/download files from nodes, run diagnostics, install packages, or perform any operation requiring shell access to HyperPod instances. Other HyperPod skills depend on this skill for all node-level operations.
HyperPod SSM Access
Prerequisites
awsCLI v2, authenticated for the target account/Region.session-manager-plugin, installed alongside the AWS CLI.jq, the scripts build JSON payloads with it.unbuffer(from theexpectpackage), wrapsaws ssm start-sessionwith a PTY so the session-manager-plugin flushes stdout instead of racing to close. Without it, calls intermittently return empty output withCannot perform start session: EOFeven when the command ran. Install withsudo yum install expect,sudo apt install expect, orbrew install expect.ssm-exec.shdetects and uses it automatically; falls back with a warning if missing.
SSM Target Format
Target: sagemaker-cluster:<CLUSTER_ID>_<GROUP_NAME>-<INSTANCE_ID>
CLUSTER_ID: Last segment of cluster ARN (NOT the cluster name). Extract viaget-cluster-info.sh.GROUP_NAME: Instance group name, retrieve vialist-nodes.sh.INSTANCE_ID: EC2 instance ID (e.g.,i-0123456789abcdef0)
Scripts
Three scripts under scripts/. Resolve cluster info and nodes once, then execute per node.
get-cluster-info.sh, Resolve cluster name → ID (call once)
scripts/get-cluster-info.sh CLUSTER_NAME [--region REGION]
# Output: {"cluster_id":"...","cluster_arn":"...","cluster_name":"...","region":"..."}
list-nodes.sh, List all nodes with pagination (call once)
scripts/list-nodes.sh CLUSTER_NAME [--region REGION] [--instance-group GROUP] [--instance-id ID]
# Output: JSON array of ClusterNodeSummaries (InstanceId, InstanceGroupName, InstanceStatus, etc.)
list-cluster-nodes paginates at 100 nodes. This script handles pagination automatically.
ssm-exec.sh, Execute command on a node (call per node)
# Execute, with pre-built target
scripts/ssm-exec.sh --target "sagemaker-cluster:CLUSTERID_GROUP-INSTANCEID" 'command' [--region REGION]

