Loading...
Loading...
Early-access skill for Mimiry's softlaunch GPU compute platform. Use this skill whenever the user wants to run a GPU job, start a compute session, train a model, launch a container on a GPU, check their balance, manage running sessions, or build a compute job script on the Mimiry softlaunch environment. Also triggers when the user mentions Mimiry softlaunch, Mimiry compute, GPU sessions, SSH-ing into a session, or asks to "run this on a GPU" or "launch a training job". Covers both quick one-liners and interactive job-building workflows. This is the softlaunch (early beta) version — the API and features may change.
npx skill4agent add mimiry-com/mimiry-skills mimiry-softlaunchSoftlaunch notice: This skill targets the Mimiry softlaunch environment (). It is an early beta — APIs, pricing, and features may change without notice. Report issues to the Mimiry team.softlaunch.mimiry.com
scripts/~/.agents/skills/mimiry-softlaunch/~/.claude/skills/mimiry-softlaunch/SKILL_DIRDo you have an SSH key registered on your Mimiry account?
.pubssh-keygen -t ed25519 -f ~/.ssh/mimiry -C "mimiry-softlaunch"~/.ssh/mimiry.pubhttps://softlaunch.mimiry.comcurljqssh-keygenopensslsource SKILL_DIR/scripts/mimiry-auth.sh <ssh_key_path>
# Exports: MIMIRY_TOKEN, MIMIRY_APIhttps://softlaunch.mimiry.com/api/compute/v1CRITICAL — All commands MUST be wrapped in. The Bash tool loads the user's shell profile, which can interfere with command execution. Always wrap the entire command inbash -cto run in a clean, non-interactive shell.bash -c '...'Shell state does not persist between Bash tool calls. Each call spawns a new shell. You MUST includein everysourceinvocation. Never runbash -cin one Bash call and usesource/$MIMIRY_APIin a separate one.$MIMIRY_TOKEN
These commands are for the agent's own shell. Always include theline. Never copy these verbatim into user-facing output — the variables won't exist in the user's terminal. When printing commands for the user, follow the "After Session Creation" section.source
bash -csourcebash -c 'curl -s "https://softlaunch.mimiry.com/api/compute/v1/availability?gpu_types=T4,V100,A100" | jq .'gpu_typesbash -c 'source SKILL_DIR/scripts/mimiry-auth.sh <ssh_key_path> && curl -s "${MIMIRY_API}/balance" -H "Authorization: Bearer $MIMIRY_TOKEN" | jq .'bash -c 'source SKILL_DIR/scripts/mimiry-auth.sh <ssh_key_path> && curl -s "${MIMIRY_API}/sessions" -H "Authorization: Bearer $MIMIRY_TOKEN" | jq .'bash -c 'source SKILL_DIR/scripts/mimiry-auth.sh <ssh_key_path> && curl -s "${MIMIRY_API}/sessions/$SESSION_ID" -H "Authorization: Bearer $MIMIRY_TOKEN" | jq .'runningbash -c 'source SKILL_DIR/scripts/mimiry-auth.sh <ssh_key_path> && curl -s "${MIMIRY_API}/sessions/$SESSION_ID/logs?tail=50" -H "Authorization: Bearer $MIMIRY_TOKEN" | jq -r .logs'retry_after_secondsbash -c 'source SKILL_DIR/scripts/mimiry-auth.sh <ssh_key_path> && curl -s -X DELETE "${MIMIRY_API}/sessions/$SESSION_ID" -H "Authorization: Bearer $MIMIRY_TOKEN" | jq .'bash -c 'source SKILL_DIR/scripts/mimiry-auth.sh <ssh_key_path> && curl -s "${MIMIRY_API}/quota" -H "Authorization: Bearer $MIMIRY_TOKEN" | jq .'bash -c 'source SKILL_DIR/scripts/mimiry-auth.sh <ssh_key_path> && curl -s "${MIMIRY_API}/transactions" -H "Authorization: Bearer $MIMIRY_TOKEN" | jq .'AskUserQuestionnvcr.io/nvidia/pytorch:24.01-py3nvcr.io/nvidia/tensorflow:24.01-tf2-py3nvcr.io/nvidia/cuda:12.3.1-devel-ubuntu22.04T4V100A100/availabilitytruefalseAgent-internal code — do not print this block to the user. All commands MUST be wrapped in.bash -c '...'
bash -c 'source SKILL_DIR/scripts/mimiry-auth.sh <ssh_key_path> && PUB_KEY=$(cat "<ssh_key_path>.pub") && curl -s -X POST "${MIMIRY_API}/sessions" -H "Authorization: Bearer $MIMIRY_TOKEN" -H "Content-Type: application/json" -d '"'"'{"name": "<session_name>", "image": {"uri": "<image_uri>"}, "gpu": {"types": ["<gpu_type>"], "count": 1}, "ssh_enabled": true, "ssh_public_key": "'"'"'"'"'"'"'"'"'$PUB_KEY'"'"'"'"'"'"'"'"'", "command": "<command_or_null>", "auto_terminate": <true|false>}'"'"' | jq .'bash -c 'source SKILL_DIR/scripts/mimiry-auth.sh <ssh_key_path> && PUB_KEY=$(cat "<ssh_key_path>.pub") && JSON=$(jq -n --arg name "<session_name>" --arg image "<image_uri>" --arg gpu "<gpu_type>" --arg key "$PUB_KEY" --arg cmd "<command>" '"'"'{name: $name, image: {uri: $image}, gpu: {types: [$gpu], count: 1}, ssh_enabled: true, ssh_public_key: $key, command: $cmd, auto_terminate: false}'"'"') && curl -s -X POST "${MIMIRY_API}/sessions" -H "Authorization: Bearer $MIMIRY_TOKEN" -H "Content-Type: application/json" -d "$JSON" | jq .'| Field | When | Value |
|---|---|---|
| User has a script to run | The command string |
| Interactive access | Omit entirely |
| Has a command | |
| Interactive / long-running | |
| Only terminate on success | |
| Always required | Contents of |
| User doesn't specify | |
| User needs env config | |
| Org billing | |
statesubmitted → provisioned → started → completed/failed/stopped → terminatedstatusprovisioningpulling_imagestarting_containerrunningstopping_containerterminatingPOST /sessions → state:submitted → state:provisioned → state:started → state:completed
status:provisioning status:pulling_image status:starting_container status:running ↓
state:terminated
DELETE /sessions/{id}
↓
state:stopped → state:terminated
On error at any stage → state:failed or state:provision_failedstartedbash -cbash -c 'source SKILL_DIR/scripts/mimiry-auth.sh <ssh_key_path> && while true; do RESP=$(curl -s "${MIMIRY_API}/sessions/$SESSION_ID" -H "Authorization: Bearer $MIMIRY_TOKEN"); STATE=$(echo "$RESP" | jq -r .state); STATUS=$(echo "$RESP" | jq -r .status); echo "State: $STATE | Status: $STATUS"; case "$STATE" in started) break ;; failed|provision_failed) echo "FAILED: $(echo $RESP | jq -r .error)"; break ;; completed|terminated|stopped) echo "Session ended unexpectedly"; break ;; esac; sleep 5; done'$RESP# Extract from $RESP (in the same bash -c call as the polling loop above):
SSH_HOST=$(echo "$RESP" | jq -r '.ssh.host')
# Then print for the user (with actual values substituted):
# ssh -i <key_path> -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null <host>
# Plus the mirc helper commands — see "After Session Creation"Note: SSH sessions connect through the ssh-proxy on port 22 (the default SSH port), which lands users directly inside their container. No special port or username is needed — just.ssh -i <key> <host>
${MIMIRY_API}$MIMIRY_TOKENmirc<session_id><key_path># Manage your session (run in any terminal):
mirc status <session_id> --key <key_path>
mirc logs <session_id>
mirc ssh <session_id>
mirc terminate <session_id>--keymirc--keySKILL_DIR/scripts/mirc.shalias mirc='SKILL_DIR/scripts/mirc.sh'# Authenticate (sets $MIMIRY_TOKEN for 1 hour, re-run to refresh):
source SKILL_DIR/scripts/mimiry-auth.sh <key_path>
# Check status:
curl -s "https://softlaunch.mimiry.com/api/compute/v1/sessions/<session_id>" \
-H "Authorization: Bearer $MIMIRY_TOKEN" | jq .
# Get logs:
curl -s "https://softlaunch.mimiry.com/api/compute/v1/sessions/<session_id>/logs?tail=50" \
-H "Authorization: Bearer $MIMIRY_TOKEN" | jq -r '.logs'
# Terminate:
curl -s -X DELETE "https://softlaunch.mimiry.com/api/compute/v1/sessions/<session_id>" \
-H "Authorization: Bearer $MIMIRY_TOKEN" | jq .https://softlaunch.mimiry.com/api/compute/v1/...${MIMIRY_API}$MIMIRY_TOKENsourcemircsource| Error | Meaning | Fix |
|---|---|---|
| Auth algorithm wrong | Ensure the bundled auth script is being used |
| Clock drift > 5 min | Sync system clock |
| Key not on account | Register key in Mimiry portal |
| No credits | Ask admin to add credits |
| No billing account | Ask admin to create one |
| VM booting | Retry after |
| Wrong session state for operation | Check session status |
bash -c '...'bash -cT4V100A100mircsource${MIMIRY_API}$MIMIRY_TOKEN