Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 52 additions & 11 deletions docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -410,19 +410,20 @@
"group": "Runpod CLI",
"pages": [
"runpodctl/overview",
"runpodctl/reference/runpodctl-doctor",
"runpodctl/reference/runpodctl-pod",
"runpodctl/reference/runpodctl-serverless",
"runpodctl/reference/runpodctl-template",
"runpodctl/reference/runpodctl-network-volume",
"runpodctl/reference/runpodctl-registry",
"runpodctl/reference/runpodctl-gpu",
"runpodctl/reference/runpodctl-datacenter",
"runpodctl/reference/runpodctl-billing",
"runpodctl/reference/runpodctl-user",
"runpodctl/reference/runpodctl-ssh",
"runpodctl/reference/runpodctl-config",
"runpodctl/reference/runpodctl-create-pod",
"runpodctl/reference/runpodctl-create-pods",
"runpodctl/reference/runpodctl-get-cloud",
"runpodctl/reference/runpodctl-get-pod",
"runpodctl/reference/runpodctl-receive",
"runpodctl/reference/runpodctl-remove-pod",
"runpodctl/reference/runpodctl-remove-pods",
"runpodctl/reference/runpodctl-send",
"runpodctl/reference/runpodctl-ssh-add-key",
"runpodctl/reference/runpodctl-ssh-list-keys",
"runpodctl/reference/runpodctl-start-pod",
"runpodctl/reference/runpodctl-stop-pod",
"runpodctl/reference/runpodctl-receive",
"runpodctl/reference/runpodctl-update",
"runpodctl/reference/runpodctl-version"
]
Expand Down Expand Up @@ -875,6 +876,46 @@
"source": "/runpodctl/reference/runpodctl",
"destination": "/runpodctl/overview"
},
{
"source": "/runpodctl/reference/runpodctl-create-pod",
"destination": "/runpodctl/reference/runpodctl-pod"
},
{
"source": "/runpodctl/reference/runpodctl-create-pods",
"destination": "/runpodctl/reference/runpodctl-pod"
},
{
"source": "/runpodctl/reference/runpodctl-get-pod",
"destination": "/runpodctl/reference/runpodctl-pod"
},
{
"source": "/runpodctl/reference/runpodctl-get-cloud",
"destination": "/runpodctl/reference/runpodctl-datacenter"
},
{
"source": "/runpodctl/reference/runpodctl-remove-pod",
"destination": "/runpodctl/reference/runpodctl-pod"
},
{
"source": "/runpodctl/reference/runpodctl-remove-pods",
"destination": "/runpodctl/reference/runpodctl-pod"
},
{
"source": "/runpodctl/reference/runpodctl-start-pod",
"destination": "/runpodctl/reference/runpodctl-pod"
},
{
"source": "/runpodctl/reference/runpodctl-stop-pod",
"destination": "/runpodctl/reference/runpodctl-pod"
},
{
"source": "/runpodctl/reference/runpodctl-ssh-add-key",
"destination": "/runpodctl/reference/runpodctl-ssh"
},
{
"source": "/runpodctl/reference/runpodctl-ssh-list-keys",
"destination": "/runpodctl/reference/runpodctl-ssh"
},
{
"source": "/hub/public-endpoints",
"destination": "/public-endpoints/overview"
Expand Down
Empty file removed runpodctl/manage-pods.mdx
Empty file.
99 changes: 74 additions & 25 deletions runpodctl/overview.mdx
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(Line 210)

Citation: Fixed shell completion documentation based on review feedback from Tim Pietrusky. runpodctl completion takes no arguments—it auto-detects the shell via $SHELL env var and appends the appropriate source command. This was also corrected in the SKILL file in PR #11.
View source

Original file line number Diff line number Diff line change
@@ -1,18 +1,28 @@
---
title: "Overview"
sidebarTitle: "Overview"
description: "Use Runpod CLI to manage Pods from your local machine."
description: "Use Runpod CLI to manage Pods, Serverless endpoints, templates, and more from your local machine."
---

import { PodsTooltip, PodTooltip } from "/snippets/tooltips.jsx";

Runpod CLI is an [open source](https://github.com/runpod/runpodctl) command-line interface tool for managing your Runpod resources remotely from your local machine. You can transfer files and data between your local system and Runpod, execute code on remote <PodsTooltip />, and automate Pod deployment workflows.
Runpod CLI is an [open source](https://github.com/runpod/runpodctl) command-line tool for managing your Runpod resources from your local machine. You can manage Pods, Serverless endpoints, templates, network volumes, and models, transfer files between your system and Runpod, diagnose issues, and view account information.

## Install Runpod CLI locally
## Quick start

After installing and configuring `runpodctl`, you can start managing resources immediately:

Every <PodTooltip /> you deploy comes preinstalled with the `runpodctl` command and a Pod-scoped API key. You can also install it on your local machine to manage your Pods remotely from your own system.
```bash
runpodctl doctor # First time setup (API key + SSH)
runpodctl gpu list # See available GPUs
runpodctl template search pytorch # Find a template
runpodctl pod create --template-id runpod-torch-v21 --gpu-id "NVIDIA RTX 4090"
runpodctl pod list # List your Pods
```

## Install Runpod CLI locally

To install Runpod CLI locally, follow these steps:
Every <PodTooltip /> you deploy comes preinstalled with `runpodctl` and a Pod-scoped API key. You can also install it on your local machine to manage resources remotely.

### Step 1: Choose an installation method

Expand All @@ -22,39 +32,39 @@ Choose the installation method that matches your operating system.
<Tab title="macOS">

**Homebrew:**
```sh
```bash
brew install runpod/runpodctl/runpodctl
```

**ARM (Apple Silicon):**
```sh
wget --quiet --show-progress https://github.com/runpod/runpodctl/releases/download/v1.14.3/runpodctl-darwin-arm64 -O runpodctl && chmod +x runpodctl && sudo mv runpodctl /usr/local/bin/runpodctl
```bash
wget --quiet --show-progress https://github.com/runpod/runpodctl/releases/latest/download/runpodctl-darwin-arm64 -O runpodctl && chmod +x runpodctl && sudo mv runpodctl /usr/local/bin/runpodctl
```

**AMD (Intel):**
```sh
wget --quiet --show-progress https://github.com/runpod/runpodctl/releases/download/v1.14.3/runpodctl-darwin-amd64 -O runpodctl && chmod +x runpodctl && sudo mv runpodctl /usr/local/bin/runpodctl
```bash
wget --quiet --show-progress https://github.com/runpod/runpodctl/releases/latest/download/runpodctl-darwin-amd64 -O runpodctl && chmod +x runpodctl && sudo mv runpodctl /usr/local/bin/runpodctl
```

</Tab>

<Tab title="Linux">
```sh
wget --quiet --show-progress https://github.com/Run-Pod/runpodctl/releases/download/v1.14.3/runpodctl-linux-amd64 -O runpodctl && chmod +x runpodctl && sudo cp runpodctl /usr/bin/runpodctl
```bash
wget --quiet --show-progress https://github.com/runpod/runpodctl/releases/latest/download/runpodctl-linux-amd64 -O runpodctl && chmod +x runpodctl && sudo cp runpodctl /usr/bin/runpodctl
```

</Tab>

<Tab title="Windows">
```sh
wget https://github.com/runpod/runpodctl/releases/download/v1.14.3/runpodctl-windows-amd64.exe -O runpodctl.exe
```bash
wget https://github.com/runpod/runpodctl/releases/latest/download/runpodctl-windows-amd64.exe -O runpodctl.exe
```

</Tab>

<Tab title="Google Colab / Jupyter Notebook">
```sh
!wget --quiet --show-progress https://github.com/Run-Pod/runpodctl/releases/download/v1.14.3/runpodctl-linux-amd -O runpodctl
```bash
!wget --quiet --show-progress https://github.com/runpod/runpodctl/releases/latest/download/runpodctl-linux-amd64 -O runpodctl
!chmod +x runpodctl
!cp runpodctl /usr/bin/runpodctl
```
Expand All @@ -69,9 +79,17 @@ This installs `runpodctl` globally on your system, so you can run commands from

Before you can use `runpodctl` locally, you must configure it with an [API key](/get-started/api-keys).

Run the following command to add your API key to `runpodctl`, replacing `YOUR_API_KEY` with your API key:
The easiest way to set up your API key and SSH configuration is with the `doctor` command:

```sh
```bash
runpodctl doctor
```

This command guides you through first-time setup, including API key configuration and SSH key setup.

Alternatively, you can manually configure your API key:

```bash
runpodctl config --apiKey YOUR_API_KEY
```

Expand All @@ -84,25 +102,56 @@ saved apiKey into config file: /Users/runpod/.runpod/config.toml

To verify that `runpodctl` installed successfully, run this command:

```sh
```bash
runpodctl version
```

You should see which version is installed:

```sh
runpodctl v1.14.4
```bash
runpodctl v2.0
```

## Command groups

Runpod CLI organizes commands into groups based on the resource type:

| Command | Alias | Description |
|---------|-------|-------------|
| `runpodctl pod` | | Manage Pods (create, list, start, stop, delete) |
| `runpodctl serverless` | `sls` | Manage Serverless endpoints |
| `runpodctl template` | `tpl` | List, search, and manage templates |
| `runpodctl network-volume` | `nv` | Manage network volumes |
| `runpodctl registry` | `reg` | Manage container registry authentications |
| `runpodctl gpu` | | List available GPUs |
| `runpodctl datacenter` | `dc` | List datacenters |
| `runpodctl billing` | | View billing history |
| `runpodctl user` | `me` | View account information |
| `runpodctl ssh` | | Manage SSH keys and get connection info |

## Help and reference

Learn how to use Runpod CLI commands by browsing the CLI reference using the sidebar to the left, or by running the `help` command:

```sh
```bash
runpodctl help
```

Learn more about a particular command by running:
```sh
runpodctl [command] help
```
```bash
runpodctl [command] --help
```

## Shell completion

Enable tab completion for your shell to make working with `runpodctl` easier:

```bash
# Bash
runpodctl completion bash >> ~/.bashrc

# Zsh
runpodctl completion zsh >> ~/.zshrc
```

Restart your shell or source the configuration file for changes to take effect.
108 changes: 108 additions & 0 deletions runpodctl/reference/runpodctl-billing.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
---
title: "billing"
sidebarTitle: "billing"
---

View billing history for Pods, Serverless endpoints, and network volumes.

<RequestExample>
```bash Command
runpodctl billing <subcommand> [flags]
```
</RequestExample>

## Subcommands

### View Pod billing

View billing history for Pods:

```bash
runpodctl billing pods
```

#### Pod billing flags

<ResponseField name="--bucket-size" type="string" default="day">
Time bucket size (`hour`, `day`, `week`, `month`, `year`).
</ResponseField>

<ResponseField name="--start-time" type="string">
Start time in RFC3339 format (e.g., `2024-01-01T00:00:00Z`).
</ResponseField>

<ResponseField name="--end-time" type="string">
End time in RFC3339 format.
</ResponseField>

<ResponseField name="--grouping" type="string" default="gpuId">
Group results by `podId` or `gpuId`.
</ResponseField>

<ResponseField name="--pod-id" type="string">
Filter by specific Pod ID.
</ResponseField>

<ResponseField name="--gpu-id" type="string">
Filter by specific GPU type.
</ResponseField>

### View Serverless billing

View billing history for Serverless endpoints:

```bash
runpodctl billing serverless
```

#### Serverless billing flags

<ResponseField name="--bucket-size" type="string" default="day">
Time bucket size (`hour`, `day`, `week`, `month`, `year`).
</ResponseField>

<ResponseField name="--start-time" type="string">
Start time in RFC3339 format.
</ResponseField>

<ResponseField name="--end-time" type="string">
End time in RFC3339 format.
</ResponseField>

<ResponseField name="--grouping" type="string" default="endpointId">
Group results by `endpointId`, `podId`, or `gpuId`.
</ResponseField>

<ResponseField name="--endpoint-id" type="string">
Filter by specific endpoint ID.
</ResponseField>

<ResponseField name="--gpu-id" type="string">
Filter by specific GPU type.
</ResponseField>

### View network volume billing

View billing history for network volumes:

```bash
runpodctl billing network-volume
```

#### Network volume billing flags

<ResponseField name="--bucket-size" type="string" default="day">
Time bucket size (`hour`, `day`, `week`, `month`, `year`).
</ResponseField>

<ResponseField name="--start-time" type="string">
Start time in RFC3339 format.
</ResponseField>

<ResponseField name="--end-time" type="string">
End time in RFC3339 format.
</ResponseField>

## Related commands

- [`runpodctl user`](/runpodctl/reference/runpodctl-user)
18 changes: 14 additions & 4 deletions runpodctl/reference/runpodctl-config.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ sidebarTitle: "config"
Configure the Runpod CLI with your API credentials and API URL to enable programmatic access to your Runpod resources.

<RequestExample>
```sh Command
```bash Command
runpodctl config [flags]
```
</RequestExample>
Expand All @@ -15,11 +15,16 @@ runpodctl config [flags]

Configure the CLI with your API key:

```sh
runpodctl config \
--apiKey "rpaPOIUYYULKDSALVIUT3Q2ZRKZ98IUYTSK2OQQ2CWQxkd01"
```bash
runpodctl config --apiKey "your-api-key-here"
```

<Note>

For first-time setup, we recommend using [`runpodctl doctor`](/runpodctl/reference/runpodctl-doctor) instead, which guides you through API key configuration and SSH key setup interactively.

</Note>

## Flags

<ResponseField name="--apiKey" type="string">
Expand All @@ -29,3 +34,8 @@ Your Runpod API key, which authenticates the CLI to access your account. You can
<ResponseField name="--apiUrl" type="string" default="https://api.runpod.io/graphql">
The Runpod API endpoint URL. The default value should work for most users.
</ResponseField>

## Related commands

- [`runpodctl doctor`](/runpodctl/reference/runpodctl-doctor)
- [`runpodctl user`](/runpodctl/reference/runpodctl-user)
Loading
Loading