pod-doctor

pod-doctor is a skill for Claude Code from runpod/runpod-plugins-official. It costs 113 tokens per session (2,782 once invoked), scanned A, original, Apache-2.0.

A diagnostic and recovery workflow for an existing Runpod Pod, a rented computer used for containerised workloads. It reads the Pod's status and logs to investigate connection failures, missing GPUs, stuck states, and related problems.

In plain words
What is it for?
Use it to inspect Pod status, ports, mounts, GPU visibility, and boot logs, then plan or perform an authorised recovery. It can handle proxy errors, CUDA problems, failed restarts, and other Pod failures.
Why use it?
It keeps diagnosis read-only and requires authorisation before restarting, stopping, or deleting anything. This reduces the risk of destroying a Pod or its stored data while investigating.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the runpod plugin — 16 skills, 1 command, 1 MCP server shipped together

Good fit Use it to inspect Pod status, ports, mounts, GPU visibility, and boot logs, then plan or perform an authorised recovery. It can handle proxy errors, CUDA problems, failed restarts, and other Pod failures.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/runpod/runpod-plugins-official/pod-doctor
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add runpod/runpod-plugins-official --skill pod-doctor
Clone the repo
git clone --depth 1 https://github.com/runpod/runpod-plugins-official

Made for: Claude Code.

Or install runpod, the plugin that ships this one along with the rest of its 16 skills, 1 command, 1 MCP server.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for pod-doctor

README.md
[![agentmods](https://agentmods.dev/badge/skills/runpod/runpod-plugins-official/pod-doctor/github.svg)](https://agentmods.dev/skills/runpod/runpod-plugins-official/pod-doctor)
Your own site
<a href="https://agentmods.dev/skills/runpod/runpod-plugins-official/pod-doctor"><img src="https://agentmods.dev/badge/skills/runpod/runpod-plugins-official/pod-doctor/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for pod-doctor

Your own site · 80×15
<a href="https://agentmods.dev/skills/runpod/runpod-plugins-official/pod-doctor"><img src="https://agentmods.dev/badge/skills/runpod/runpod-plugins-official/pod-doctor.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 113 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,782 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • Socket pass 15 Oct 2026
  • Snyk warn 15 Oct 2026
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00113 $0.02782
Opus 5.5 $0.00045 $0.01113
Sonnet 5.5 $0.00023 $0.00556
Haiku 4.5 $0.00011 $0.00278

Measured 2d ago against content hash c436c2232070, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

pod-doctor scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/runpod/skills/pod-doctor/SKILL.md · 92 lines

How it starts

The opening of the file, as written. The whole thing — 92 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Pod doctor

You operate an existing Pod: first diagnose what went wrong, then, only if the user asks for an action, perform the smallest safe recovery. Diagnosis is always read-only: no update-pod, pod-action, delete-pod or create-pod while diagnosing, whatever the logs suggest. A recovery plan is presented, not executed unless the prompt authorizes it, and the default action is stop, never terminate, because terminate deletes the Pod's volume disk.

Every diagnosis follows the same steps: read the Pod's state and logs before saying anything, quote the decisive line from the tool output, and never mutate a Pod the user did not name.

Required capabilities

Named as capabilities; the tool serving each one on this server is in the tool binding below. This skill reads before it acts.

  • List Pods: the account-wide stuck audit and the "which Pod" resolution.
  • Inspect one Pod: full status, ports, GPU count, mounts.
  • Read a Pod's boot/container logs: the model-load and crash evidence.
  • Trigger a Pod state transition (stop / start / restart): the gated action.
  • Terminate a Pod: the destructive transition, gated separately.
  • Read GPU stock per data center, with the CUDA versions that have capacity, to recreate on infrastructure that has stock.
  • Recreate a Pod, only inside an authorized recovery.

Phase 1 — diagnose (always, read-only)

Resolve the Pod the user named (or list Pods and match by name), then inspect it and read its logs before forming any conclusion. Classify against the symptom:

  • Proxy 502 / "can't reach the web UI". Inspect the Pod. If its status is not RUNNING, that is the cause: the proxy has nothing to route to. If it is running, read the logs: a 502 through <podId>-<port>.proxy.runpod.net almost always means the app inside is bound to 127.0.0.1 (must bind 0.0.0.0), listening on a port the Pod never exposed, still starting, or never started at all (no process on the exposed port). Quote the bind/listen line. The exposed ports are on the Pod record; name the mismatch, do not guess. A 524 is different: the proxy closes requests that run longer than 100 s, so it means a long request, not a dead app. For an app that never started, the answer is the diagnosis plus the exact change the user would apply (the start command, the env, the restart), marked "not applied".
  • torch.cuda.is_available() is False. Inspect the Pod record's gpu block, which carries the GPU count. If the block is absent or its count is 0, treat the Pod as CPU-only: this is a zero-GPU allocation, not a CUDA problem; go to the next classifier. If it shows one or more GPUs, the GPU is attached but the container can't use it: read the logs for the driver/runtime line. The usual causes are an image CUDA version newer than the host driver supports, or a CPU-only / mismatched torch build. Quote the line; do not assert which without it.
  • No GPU after a restart. A stopped Pod releases its GPU but stays bound to its machine and resumes there. If another renter took that machine's GPU in the meantime, a plain start is refused for lack of a free GPU on that host, or the Pod comes back RUNNING without a GPU. Confirm it from the Pod record (the gpu block absent or its count 0, so the Pod is CPU-only) and say what it means: the GPU on that one machine is taken. Data-center stock for the GPU type does not predict whether this Pod gets its GPU back, so quote availability only when proposing a fresh Pod elsewhere. This is a placement problem, not a broken Pod. Give the user the concrete recoveries, not only a retry: (1) retry start until that machine's GPU frees; (2) migrate the Pod from the console, or recreate it on a GPU type or data center with live stock (a migrated or recreated Pod gets a new id and proxy URL); (3) data rescue from a zero-GPU pod: a pod started with 0 GPUs still runs and serves its filesystem, so the files are reachable with no GPU attached. No MCP tool moves bytes, so name the real path for the copy itself and hand it to the user: runpodctl send / runpodctl receive, aws s3 against a network volume's S3 endpoint, or scp/rsync over the Pod's direct SSH (ssh.direct) (see runpod-mcp/reference/api-boundary.md). Never claim the rescue needs a GPU first, and never claim to have copied anything yourself. Never terminate; that deletes the volume disk.
  • Read the logs for a load or startup answer. Read the Pod's logs with a generous tail (source=system for the pull, create and start events when the Pod is stuck in STARTING). Quote the single decisive line: the weights-loaded / "running on 0.0.0.0:PORT" success line, or the OOM / missing-file / auth failure. Report what the log says, never what it probably says.
  • Account-wide stuck audit. List all Pods. Flag as stuck: status=RUNNING with no GPU (the Pod record's gpu block absent or its count 0); or stuck in PROVISIONING/STARTING past about 10 minutes with no pull progress in the system log (a 20 GB image legitimately takes 10 to 15 minutes to pull). Present one table (name, requested GPU, status, stuck-for, reason). If nothing is stuck, say so in one line and stop. The counts in the summary must equal the rows in the table.

Read the full file on GitHub · 92 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago Changed c436c2232070
  2. 6d ago Changed c569d2183aee
  3. 7d ago Changed af589bcb7ae8
  4. 8d ago Changed 514d10410796
  5. 12d ago First seen · 92 lines · 113 tokens per session scan A ad5c8b8f266e

Subscribe to this mod's changes

pod-doctor is a skill published in the GitHub repository runpod/runpod-plugins-official (46 stars, last pushed today), licensed Apache-2.0. It adds 113 tokens to every session and 2,782 once invoked, about $0.0005 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-10.

Related

Other skills, from other repositories

gcloud-usage

This skill should be used when user asks about "GCloud logs", "Cloud Logging queries", "Google Cloud metrics", "GCP observability", "trace analysis", or "debugging production issues on GCP".

fcakyon/claude-codex-settings · 49 tokens

troubleshoot-website

Diagnose and fix a website on Hostinger web hosting (Shared, Cloud or Agency plans) that is down, slow, erroring, insecure or failing to build. Checks the site from outside, reads builds, runtime logs, WordPress health, SSL, cache and PHP settings through the Hostinger MCP, names the cause with evidence, and applies…

hostinger/api-mcp-server · 139 tokens

pulumi-troubleshooting

Comprehensive guide to troubleshooting Pulumi TypeScript errors, infrastructure issues, and best practices - covers common errors, Outputs handling, AWS Beanstalk deployment, and cost optimization.

pr-pm/prpm · 40 tokens

distributed-tracing

Implement distributed tracing with OpenTelemetry, Tempo/Jaeger — instrumentation, sampling, and trace-to-log correlation. Use when the user asks about distributed tracing, OpenTelemetry setup, span instrumentation, trace propagation, or connecting traces to logs and metrics.

sawrus/agent-guides · 53 tokens

AWS CloudWatch Alarm Runbook

Automates incident response for AWS CloudWatch alarms using boto3, the CloudWatch GetMetricData API, and AWS Systems Manager runbook documents. Maps alarm states to diagnostic procedures and remediation actions.

agentskillexchange/skills · 46 tokens

AWS CloudWatch Alarm Triage

Triages AWS CloudWatch alarms using boto3 CloudWatch.describealarms, CloudWatch Logs Insights queries, and AWS X-Ray trace analysis via the xray-sdk. Correlates alarm triggers with deployment events.

agentskillexchange/skills · 50 tokens