PluginBench
Skill
Review
Audit score 70

companion-clis

runpod/runpod-plugins-official

HuggingFace, GitHub, Docker, and AWS CLIs for Runpod workflows.

What is companion-clis?

A collection of four companion command-line tools for managing Runpod workflows: HuggingFace (model downloads), GitHub (repository and release management), Docker (image building and pushing), and AWS S3 (network volume storage). Install only the CLI your task requires.

  • Download models from HuggingFace Hub to cache or bake into Docker images
  • Manage worker repositories and cut releases on GitHub
  • Build, validate, and push Docker images to Docker Hub with proper platform and tagging
  • Read and write network-volume storage via Runpod's S3-compatible API
  • Handle SSH key setup for GitHub and HuggingFace authentication
  • Support Windows via WSL2 for native Linux CLI environments

How to install companion-clis

npx skills add https://github.com/runpod/runpod-plugins-official --skill companion-clis
Prerequisites
  • WSL2 installed on Windows (Linux and macOS have native support)
  • HuggingFace token (HF_TOKEN env var or via hf auth login) for HuggingFace CLI
  • GitHub SSH key and gh CLI authentication for GitHub operations
  • Docker Hub personal access token (not password) for Docker CLI
  • Runpod S3 API credentials (user ID and S3 API key from Console) for AWS CLI
Claude Code
Cursor
Windsurf
Cline

How to use companion-clis

  1. 1.Install the specific CLI you need using the one-time setup guide (e.g., huggingface-setup.md, github-setup.md, docker-setup.md, or aws-setup.md)
  2. 2.Authenticate with the required credentials for that CLI (token, SSH key, or API credentials)
  3. 3.Consult the per-tool reference guide in reference/ for command syntax and Runpod-specific usage patterns
  4. 4.Run the CLI commands as part of your larger Runpod workflow (e.g., hf download, gh release create, docker build --platform=linux/amd64, aws s3 cp)
  5. 5.Use --help on each CLI for authoritative flags and subcommands beyond the Runpod-specific guidance

Use cases

Good for
  • Downloading a specific model from HuggingFace and caching it before building a Docker image
  • Creating and pushing a new release to GitHub so the Hub indexes the update
  • Building a multi-platform Docker image and pushing it to Docker Hub with semantic versioning
  • Uploading training data or results to a Runpod network volume using S3 commands
  • Repairing ComfyUI workflows by downloading missing models with verified URLs and hashes
Who it's for
  • Runpod workers building and deploying containerized applications
  • Machine learning engineers managing model artifacts and releases
  • DevOps engineers automating image builds and storage workflows
  • Developers integrating Runpod infrastructure into CI/CD pipelines

companion-clis FAQ

Should I install all four CLIs or just one?

Install only the CLI your task needs. Each has its own setup guide and credentials; load them independently to keep your environment lean.

What is the difference between hf CLI and huggingface_hub pip package?

Use the standalone hf CLI, not pip install huggingface_hub. The pip package is the older huggingface-cli with different syntax; the standalone hf is the current tool.

Why should I avoid using 'latest' tag for Docker images?

The 'latest' tag does not track the newest push, so Runpod workers can silently pull the wrong image. Always use explicit semantic tags (e.g., v1.2.3).

How do I authenticate with Runpod's S3 API?

Runpod's S3 API uses your Runpod user ID as the access key and an S3 API key (generated in Console > Settings > S3 API Keys) as the secret. These are not AWS credentials.

When should I use the ComfyUI model-repair guide instead?

If you have an imported ComfyUI workflow whose model filenames lack verified URLs or hashes, route to the ComfyUI model-repair guide in runpod-templates first. Return to companion-clis once the exact HuggingFace repository and file are known.

Full instructions (SKILL.md)

Source of truth, from runpod/runpod-plugins-official.


name: companion-clis description: Companion CLIs for Runpod workflows — HuggingFace, GitHub, Docker, and AWS. Use the ComfyUI model-repair guide in runpod-templates instead when an imported ComfyUI workflow lacks model download metadata. allowed-tools: Bash(hf:), Bash(gh:), Bash(docker:), Bash(aws:), Bash(ssh-keygen:), Bash(ssh-add:), Bash(ssh-agent:*) compatibility: Linux, macOS, Windows metadata: author: runpod version: "1.4.0" # x-release-please-version license: Apache-2.0

Companion CLIs

Four CLIs commonly needed alongside Runpod. Each has its own credentials + command reference in reference/ — plus a one-time <cli>-setup.md for install (only opened if the CLI isn't installed). Load only the one the task needs, not all four.

If the request starts with an imported ComfyUI workflow whose model filenames lack verified URLs or hashes, route to the ComfyUI model-repair guide in runpod-templates. Return here when the exact Hugging Face repository/file is already known and the task is simply to download, cache, or bake that artifact.

CLIUse it toFull reference
hf (HuggingFace)Download models from the Hub to cache/bake into imagesreference/huggingface.md
gh (GitHub)Manage worker repos + cut releases (Hub indexes releases)reference/github.md
dockerBuild/validate/push images to Docker Hub for Runpod to pullreference/docker.md
aws (S3)Read/write network-volume storage over Runpod's S3 APIreference/aws.md

Each requires credentials before use. Read the per-tool reference for auth steps and commands; install is a separate one-time <cli>-setup.md.

These CLIs are usually one step inside a larger job. For the whole job the verified example is in runpod/golden-paths/README.md — baking vs mounting a model (25), building a minimal image (22), or moving data to a network volume (07).

These are third-party CLIs on their own release trains, so <cli> --help is authoritative for flags and subcommands — the references here cover the Runpod-specific usage and the traps, not the tool's full surface. Check --help before reporting that one of them cannot do something.

Windows: Install WSL2 First

If you are on Windows, install WSL2 before proceeding — it gives you the native Linux environment all these CLIs target. In PowerShell as Administrator, then restart:

wsl --install

Afterward open the Ubuntu app to finish setup, then follow the Linux instructions in each reference.

HuggingFace CLI

Download models locally so they're cached for a Docker build/run. Auth and hf download recipes: reference/huggingface.md (install: reference/huggingface-setup.md).

  • Use the standalone hf CLI, not pip install huggingface_hub (that's the older huggingface-cli with different syntax).
  • Auth via hf auth login, or export HF_TOKEN=hf_... (env var wins over saved token).

GitHub CLI

Manage worker repositories and cut releases. Auth and commands: reference/github.md (install + SSH-key setup: reference/github-setup.md).

  • The Hub indexes releases, not commits — every Hub listing update needs a new gh release create.
  • One SSH key (ssh-keygen -t ed25519) registers with both GitHub (gh ssh-key add) and HuggingFace (paste in browser).

Docker

Build, validate, and push images to Docker Hub. Credentials and commands: reference/docker.md (install: reference/docker-setup.md).

  • Always build --platform=linux/amd64 — Runpod runs on x86 Linux.
  • Always use explicit semantic tags; never latest — latest doesn't track the newest push, so workers can silently pull the wrong image.
  • Docker Hub auth uses a personal access token, not your password. For private images, register the credential once in Console → Container Registry Settings.

AWS CLI

Access network-volume storage over Runpod's S3-compatible API (bucket name = network volume ID). Credentials, region rules, and commands: reference/aws.md (install: reference/aws-setup.md).

  • Runpod's S3 API, not AWS: access key = Runpod user id (user_...), secret = S3 API key (rps_...).
  • S3 API keys are Console-only. No runpodctl/REST/GraphQL creates them — if they're not already in ~/.aws/credentials/env and S3 access is needed, stop and ask the user to generate them (Settings > S3 API Keys).
  • Every command needs --region DATACENTER --endpoint-url https://s3api-DATACENTER.runpod.io/ (datacenter = the volume's DC, not an AWS region).
  • For large/many-file transfers with reliable resume, see reference/aws.md → optional resumable volume transfers.