jimezsa/opencolab/projects/SKILLS/runpod-job/SKILL.md
runpod-job
Default Runpod workflow for user-managed Pods. Ask the human to create a Pod with the desired GPU, get the `pod_id` and SSH access details, save a manual Pod profile, and use `opencolab gpu ssh` sessions as the default control path. Use OpenColab `gpu server` and `gpu job` only when the user explicitly wants managed provisioning or `run_id` tracking.
- Source repository stars
- 11
- Declared platforms
- 0
- Static risk flags
- 1
- Last source update
- 2026-08-04
- Source checked
- 2026-08-04
Decision brief
What it does—and where it fits
Use this skill for bounded Runpod work.
Not for
- Tasks that require unconfirmed production actions or broad system permissions.
- Environments where the pinned source and install steps cannot be inspected.
Compatibility matrix
Platform support, with evidence labels
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
Inspect first. Install second.
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/jimezsa/opencolab --skill "projects/SKILLS/runpod-job"Inspect the Agent Skill "runpod-job" from https://github.com/jimezsa/opencolab/blob/f647b8e4c37a18b4bd3443bd4a8f5470ea1b9d09/projects/SKILLS/runpod-job/SKILL.md at commit f647b8e4c37a18b4bd3443bd4a8f5470ea1b9d09. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
What the source asks the agent to do
- 01
Default Manual Pod Workflow
This is the default workflow for almost all Runpod requests.
create a Runpod Pod manually with the desired GPU typewait until the Pod is actually runningsend the podid - 02
4. Stage only what is needed
Use narrow uploads. Prefer rsync when syncing a small tree, or scp for one or two files.
only upload the files the task really needsavoid full-repo copies by defaultdo not silently copy secrets - 03
Optional OpenColab-Managed Workflow
Use this only when the user explicitly wants the OpenColab-managed CLI lifecycle.
reuse the user's requested server id when providedreuse the user's requested location or GPU constraints when providedonly broaden the GPU list beyond a single A100 when the user explicitly asks for broader availability, lower cost, or different hardware - 04
Core Rules
Default to the manual user-managed Pod workflow through opencolab gpu ssh.
Default to the manual user-managed Pod workflow through opencolab gpu ssh.If the user has not yet created a Pod, ask them to create one manually with the desired GPU type and then send the podid.Do not start by checking Runpod capacity or creating OpenColab server targets unless the user explicitly wants the OpenColab-managed path. - 05
Progress Helper
waiting for podid
waiting for podidwaiting for SSH host, port, username, or key pathmanual SSH profile saved
Permission review
Static risk signals and limitations
Runs scripts
The documentation asks the agent to run terminal commands or scripts.
opencolab gpu job exec --run-id <run_id> --command "<remote_command>"Runs scripts
The documentation asks the agent to run terminal commands or scripts.
when a `keep_warm` run reaches a terminal state and the Pod is still available, ask whether the user wants to keep it running for reuse or cancel itEvidence record
Why each signal appears
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 86/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 11 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Provenance and original SKILL.md
- Repository
- jimezsa/opencolab
- Skill path
- projects/SKILLS/runpod-job/SKILL.md
- Commit
- f647b8e4c37a18b4bd3443bd4a8f5470ea1b9d09
- License
- MIT
- Collected
- 2026-08-04
- Default branch
- main
View the original SKILL.md
Runpod Job Skill
Use this skill for bounded Runpod work.
Default path: the human manually creates a Runpod Pod with the desired GPU, gives the agent the pod_id, and the agent works against that Pod through a saved opencolab gpu ssh profile plus transcript-backed gpu ssh session commands. This is a capacity-driven default: the OpenColab-managed Runpod CLI path still works, but live GPU stock is often unavailable when the agent tries to provision on demand, and the gpu ssh session flow avoids leaving the agent parked inside a raw interactive ssh shell.
Do not use raw Runpod APIs unless the user is explicitly fixing OpenColab itself.
Preferred execution paths:
- default: saved
opencolab gpu sshprofile plusopencolab gpu ssh session start|read|write|stopfor a user-managed Pod identified bypod_id - bounded helpers:
opencolab gpu ssh profile test, plus narrowscp,rsync, or one-shotsshonly when file transfer or an explicit user request requires them - optional:
opencolab gpu server ...andopencolab gpu job ...only when the user explicitly wants OpenColab-managed provisioning, detachedrun_idtracking, or the managed CLI lifecycle
Core Rules
- Default to the manual user-managed Pod workflow through
opencolab gpu ssh. - If the user has not yet created a Pod, ask them to create one manually with the desired GPU type and then send the
pod_id. - Do not start by checking Runpod capacity or creating OpenColab server targets unless the user explicitly wants the OpenColab-managed path.
- Treat a user-supplied
pod_idas a manual path outside the normal OpenColabrun_idlifecycle. - Do not invent a
run_idfor a manual Pod. - Do not claim that
opencolab gpu job execworks against a rawpod_id; it does not. - Save or update a project-scoped manual SSH profile with
opencolab gpu ssh profile save ...once the user provides enough details, and prefer--set-default truewhen the active agent is likely to reuse that Pod. - Prefer
opencolab gpu ssh profile test ...before starting a session so host and port can be refreshed from Runpod Pod metadata when local Runpod auth is available and SSH reachability is validated before real work starts. - Ask for the SSH connection details needed to save the profile if they are not already available locally.
- Use
opencolab gpu ssh session start|read|write|stopas the default command and inspection path for manual Pods rather than opening a raw interactivesshshell. - Keep commands bounded and task-focused. This skill is for concrete remote work, not open-ended interactive shells.
- Do not leave a manual SSH session sitting at a shell prompt or endless stream unless the user explicitly wants that. Stop it explicitly when you have the output you need.
- Prefer minimal
rsync,scp, or one small uploaded script over broad workspace copies when files need to move. Those are bounded helpers, not the default control path. - Never blindly forward all environment variables or secrets.
- If a manual Pod task fails, explain the failure clearly, call out any missing tracking or session limitations, and propose the next useful step.
- If
OPENCOLAB_PROGRESS_FILEis available and the task is long enough to justify updates, emit bounded progress events for waiting on the user-managed Pod, saving the manual SSH profile, validating the profile, starting the manual SSH session, syncing files, sending the remote command, reading transcript output, copying outputs back, stopping the session, and blocked states. - Only use the OpenColab-managed CLI path when the user explicitly asks for it or explicitly wants a
run_idand OpenColab-managed status/log/artifact tracking. - On the optional managed path, launch with
opencolab gpu job start --wait false, return therun_idpromptly, refresh the run withopencolab gpu job status --run-id <run_id>before reading logs, and reviewbootstrap,stdout,stderr, andpollerwhen summarizing the run.
Progress Helper
emit_progress() {
if [ -z "${OPENCOLAB_PROGRESS_FILE:-}" ]; then
return 0
fi
printf '%s\n' "$1" >> "$OPENCOLAB_PROGRESS_FILE"
}
Examples:
emit_progress '{"kind":"milestone","stage":"manual_pod","slot":"runpod","message":"Waiting for the user-managed Runpod Pod id."}'
emit_progress '{"kind":"milestone","stage":"manual_pod","slot":"runpod","message":"Saved the manual Pod profile and started a transcript-backed gpu ssh session."}'
Useful updates:
- waiting for
pod_id - waiting for SSH host, port, username, or key path
- manual SSH profile saved
- manual SSH profile validated
- manual SSH session started
- files synced
- remote command sent
- transcript inspected
- outputs copied back
- manual SSH session stopped
- manual path blocked
- managed CLI run launched
- managed CLI logs refreshed
Default Manual Pod Workflow
This is the default workflow for almost all Runpod requests.
1. Ask the human to create the Pod
If the user has not already created one, ask them to:
- create a Runpod Pod manually with the desired GPU type
- wait until the Pod is actually running
- send the
pod_id - send or confirm the SSH details needed to reach it
Minimum details you need before execution:
pod_id- either a full SSH command that can be normalized with
--ssh-command, or structured SSH details such as host or public IP, port, username, and authentication material available in the local environment - an authentication method available in the local environment, such as a key path or an existing SSH config entry
If local Runpod auth is already configured, opencolab gpu ssh profile test may refresh host and port from the pod_id, but do not assume that path will work. If required SSH details are still missing, stop and ask for them instead of guessing.
2. Save and validate a manual SSH profile
Tell the user that:
- you are using
opencolab gpu sshagainst a user-managed Pod - this is outside the normal OpenColab
gpu jobandrun_idlifecycle - OpenColab may not automatically track status, logs, artifacts, or cleanup for this path
Preferred default manual path:
opencolab gpu ssh profile save \
--profile-id <profile_id> \
--pod-id <pod_id> \
--ssh-command "ssh -p <ssh_port> <ssh_user>@<ssh_host>" \
--set-default true
opencolab gpu ssh profile test --profile-id <profile_id>
Notes:
- the saved profile is project-scoped and may also be set as the default for the active agent
profile testcan refresh host and port from Runpod Pod metadata when local Runpod auth is available- interactive access defaults to
opt_in, which is what the session workflow needs - if any required SSH detail is still missing after
profile test, stop and ask for it instead of guessing
3. Start a transcript-backed session
session_output="$(
opencolab gpu ssh session start --profile-id <profile_id>
)"
printf '%s\n' "$session_output"
session_id="$(printf '%s\n' "$session_output" | awk -F': ' '/^Session ID:/ {print $2}')"
If session_id is empty, stop and report the session start output instead of pretending the session is ready.
Quick validation example:
opencolab gpu ssh session write --session-id <session_id> --stdin "nvidia-smi"
opencolab gpu ssh session read --session-id <session_id>
Notes:
- the live session is explicit opt-in and transcript-backed
session readreturns machine-readable output slices so the agent can follow live shell output over multiple steps- keep the
session_idand use incremental reads when the remote command produces more than one chunk of output
4. Stage only what is needed
Use narrow uploads. Prefer rsync when syncing a small tree, or scp for one or two files.
Example:
rsync -az \
--exclude '.git' \
--exclude 'node_modules' \
<local_path_or_dir> \
<ssh_user>@<ssh_host>:/workspace/<remote_dir>/
If only a single file is needed:
scp -P <ssh_port> <local_file> <ssh_user>@<ssh_host>:/workspace/<remote_dir>/
Keep staging bounded:
- only upload the files the task really needs
- avoid full-repo copies by default
- do not silently copy secrets
These are bounded helpers. They do not replace the default opencolab gpu ssh session control path.
5. Run bounded remote commands through the session
Use opencolab gpu ssh session write for concrete remote commands and session read for output inspection.
Example:
opencolab gpu ssh session write \
--session-id <session_id> \
--stdin "cd /workspace/<remote_dir> && <remote_command>"
opencolab gpu ssh session read --session-id <session_id>
opencolab gpu ssh session read --session-id <session_id> --offset <next_offset>
Treat this as a bounded command-and-read loop, not an invitation to sit in a long raw shell.
Guidance:
- prefer one concrete shell command per
session write - if remote work must continue after you disconnect, launch it in a bounded detached form and then stop the session once you have the PID, log path, or start confirmation you need
- do not leave the session open longer than necessary
6. Fetch only the outputs the user asked for
Use scp or rsync to copy back declared outputs.
Example:
scp -P <ssh_port> \
<ssh_user>@<ssh_host>:/workspace/<remote_dir>/<artifact_path> \
<local_destination>
Notes:
- keep downloads bounded and specific
- if the output path is large or unclear, ask the user before recursively copying a whole directory
- if the command produced no output files, report that plainly instead of implying artifact tracking exists
7. Stop the session and summarize the result
Stop the live session once you have what you need:
opencolab gpu ssh session stop --session-id <session_id>
For the manual path, include:
- that you used
opencolab gpu sshagainst a user-managed Pod - the
pod_id - whether the saved profile was created or reused and whether
profile testrefreshed the endpoint - the command or task summary
- whether the command succeeded
- key transcript findings or the most relevant failure
- which files were copied back, if any
- any bounded
scp,rsync, or one-shotsshhelper that was needed - any limitation from using the manual path, such as missing automatic run tracking or cleanup ownership
Optional OpenColab-Managed Workflow
Use this only when the user explicitly wants the OpenColab-managed CLI lifecycle.
This path still exists, but it is no longer the default.
1. Inspect existing targets
opencolab project show
opencolab gpu server list
If the user named a specific server id, inspect it too:
opencolab gpu server show --server-id <server_id>
2. Create a target only when needed
For a curated default target, use a short ordered location list and a single A100 GPU:
opencolab gpu server add \
--provider runpod \
--server-id runpod-a100 \
--location US-KS-2,US-TX-3,US-CA-2,US-WA-1,CA-MTL-1,CA-MTL-2 \
--gpu-type "NVIDIA A100 80GB PCIe" \
--gpu-count 1 \
--volume-name runpod-a100 \
--volume-size-gb 200 \
--workspace-root /workspace \
--bootstrap-profile pytorch-cu12 \
--max-runtime-minutes 360 \
--auto-stop-policy keep_warm
Managed-path notes:
- reuse the user's requested server id when provided
- reuse the user's requested location or GPU constraints when provided
- only broaden the GPU list beyond a single A100 when the user explicitly asks for broader availability, lower cost, or different hardware
- when current stock, datacenter choice, or GPU choice matters, run
opencolab gpu server availability --server-id <id>before launch - treat availability as a live snapshot, not a reservation
- if availability shows
pod-api incompatibleorstorage failed, explain that clearly instead of pretending the target is healthy
3. Plan sync, env, and artifacts
Before launching, define the minimal:
--include: only the repo-relative paths the remote command really needs--exclude: heavy or irrelevant paths when needed--env: only the exact env vars required remotely--artifact: outputs the user expects fetched back
4. Launch in detached mode
start_output="$(
opencolab gpu job start \
--server-id <server_id> \
--command "<remote_command>" \
--include <path1,path2> \
--artifact <artifact1,artifact2> \
--env <ENV1,ENV2> \
--wait false
)"
printf '%s\n' "$start_output"
run_id="$(printf '%s\n' "$start_output" | awk -F': ' '/^Run ID:/ {print $2}')"
If run_id is empty, stop and report the launch output instead of pretending the job started.
Return the run_id promptly. Do not sit in a monitoring loop unless the user explicitly asks to monitor the run.
For bounded direct Pod inspection after launch:
opencolab gpu job exec --run-id <run_id> --command "<remote_command>"
5. Inspect, fetch, or cancel later
Status:
opencolab gpu job status --run-id <run_id>
Logs:
opencolab gpu job logs --run-id <run_id> --stream bootstrap
opencolab gpu job logs --run-id <run_id> --stream poller
opencolab gpu job logs --run-id <run_id> --stream stdout
opencolab gpu job logs --run-id <run_id> --stream stderr
Fetch outputs:
opencolab gpu job fetch --run-id <run_id>
Cancel:
opencolab gpu job cancel --run-id <run_id>
Managed-path guidance:
- always run
opencolab gpu job status --run-id <run_id>before reading log streams so local snapshots are refreshed first - review
bootstrap,stdout,stderr, andpollerbefore concluding the run has no useful evidence - do not dump huge raw logs unless the user explicitly asks for them
- if
gpu job execsays the run is not SSH-usable yet, explain the current state rather than pretending direct access exists - when a
keep_warmrun reaches a terminal state and the Pod is still available, ask whether the user wants to keep it running for reuse or cancel it
Final Reply
Always include the correct mode:
user-managed Pod via opencolab gpu ssh, orOpenColab-managed gpu job
For the manual path, include:
pod_id- whether the saved profile was created or reused and whether
profile testrefreshed the endpoint - command or task summary
- success or failure status
- key transcript output or failure reason
- copied-back outputs, if any
- any bounded raw helper that was needed, such as
scp,rsync, or one-shotssh - any limitations from bypassing OpenColab
run_idtracking
For the managed path, include:
- target id
run_id- current or final state
- whether local log snapshots were refreshed
- important log findings or failure reason
- fetched artifacts and missing artifacts
- whether a
keep_warmPod is still running and whether the user wants to keep it or cancel it
In both modes:
- propose the next useful step if the task is blocked, degraded, or incomplete
Alternatives
Compare before choosing
alirezarezvani/claude-skills
app-store-optimization
App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist
wanshuiyin/Auto-claude-code-research-in-sleep
citation-audit
Use it for operations and research tasks; the detail page covers purpose, installation, and practical steps.
dotnet/skills
migrate-vstest-to-mtp
Migrates .NET test projects from VSTest to Microsoft.Testing.Platform (MTP). Use when user asks to "migrate to MTP", "switch from VSTest", "enable Microsoft.Testing.Platform", "use MTP runner", set OutputType=Exe only for test projects in Directory.Build.props, or mentions EnableMSTestRunner, EnableNUnitRunner, or UseMicrosoftTestingPlatformRunner. USE FOR: MTP behavioral differences vs VSTest (exit code 8, zero tests discovered, --ignore-exit-code, TESTINGPLATFORM_EXITCODE_IGNORE); centralizing
aaron-he-zhu/aaron-marketing-skills
social-selling-planner
Use when the user asks to "set up my founder social-selling routine", "build a daily engagement block for target accounts", or "turn funding / hiring signals into selling plays"; produces the founder/seller daily operating block — a time-boxed engagement-block spec (substantive value-add comments on target-account posts, never a pitch), warm-touch-before-ask cadence rules, trigger-response plays consuming the social-pulse-monitor B2B trigger watchlist (funding / hiring / launch signals), and a q