Skip to content

runpod/runpodctl

Repository files navigation

runpodctl cli

runpodctl is the cli tool to manage gpu pods, serverless endpoints, and more on runpod.io.

note: all pods automatically come with runpodctl installed with a pod-scoped api key.

table of contents

get started

install

linux/macos (wsl)

wget -qO- cli.runpod.net | sudo bash

macos

brew install runpod/runpodctl/runpodctl

windows powershell

wget https://github.com/runpod/runpodctl/releases/latest/download/runpodctl-windows-amd64.exe -O runpodctl.exe

conda, mamba, pixi (conda-forge)

runpodctl is available on conda-forge.

# conda
conda install conda-forge::runpodctl

# mamba
mamba install conda-forge::runpodctl

# pixi (user-global install)
pixi global install runpodctl

quick start

# configure api key
runpodctl config --apiKey=your_api_key

# list all pods
runpodctl pod list

# get a specific pod
runpodctl pod get pod_id

# create a pod
runpodctl pod create --image=runpod/pytorch:2.8.0-py3.11-cuda12.8.1-cudnn-devel-ubuntu22.04 --gpu-id=NVIDIA_A100

# start/stop/delete a pod
runpodctl pod start pod_id
runpodctl pod stop pod_id
runpodctl pod delete pod_id

commands

commands follow noun-verb pattern: runpodctl <resource> <action>

pod management

runpodctl pod list                    # list all pods
runpodctl pod get <id>                # get pod details
runpodctl pod create --image=<img>    # create a pod
runpodctl pod update <id>             # update a pod
runpodctl pod start <id>              # start a stopped pod
runpodctl pod stop <id>               # stop a running pod
runpodctl pod delete <id>             # delete a pod

serverless endpoints

runpodctl serverless list             # list endpoints (alias: sls)
runpodctl serverless get <id>         # get endpoint details
runpodctl serverless create           # create endpoint
runpodctl serverless update <id>      # update endpoint
runpodctl serverless delete <id>      # delete endpoint

other resources: template (alias: tpl), volume (alias: vol), registry (alias: reg)

file transfer

send and receive files without api key using croc:

# send a file
runpodctl send data.txt
# output: code is: 8338-galileo-collect-fidel

# receive on another computer
runpodctl receive 8338-galileo-collect-fidel

output format

default output is json (optimized for agents). use --output flag for alternatives:

runpodctl pod list                    # json (default)
runpodctl pod list --output=table     # human-readable table
runpodctl pod list --output=yaml      # yaml format

legacy commands

legacy commands are still supported but deprecated. please update your scripts:

get pod, create pod, remove pod, start pod, stop pod

release process

releases are fully automated by goreleaser via the release github action (.github/workflows/release.yml). to cut a release:

  1. make sure main is green and holds everything you want to ship.

  2. create and push a v* semver tag on the commit to release:

    git tag v2.7.0
    git push origin v2.7.0
  3. the tag push triggers the release workflow, which runs goreleaser release --clean and:

    • builds binaries for darwin/linux/windows (amd64/arm64), incl. raw runpodctl-{os}-{arch} binaries for the legacy self-update command and a upx-compressed linux/amd64 build.
    • creates the github release with archives + checksums (prereleases are auto-detected from the tag).
    • opens pull requests on runpod/homebrew-runpodctl for the homebrew formula and cask.
  4. merge the homebrew pull requests. the tap lives in a separate repo, so the release is not complete for brew install users until those prs are merged. (they cannot be combined into this repo.)

notes:

  • the workflow can also be run manually via workflow_dispatch (re-runs goreleaser against the current ref).
  • the homebrew prs are authored by a github app; tap auth uses the RELEASE_APP_ID / RELEASE_APP_PRIVATE_KEY secrets, and goreleaser pushes via the generated HOMEBREW_TAP_TOKEN.
  • conda-forge is updated separately by the conda-forge feedstock bot, not by this workflow.

acknowledgements

About

interact with Runpod via the cli

Topics

Resources

License

Stars

419 stars

Watchers

4 watching

Forks

Contributors

Languages