Skip to main content

One CLI to search, provision, and manage cloud GPUs across 10 providers

Project description

swm

License PyPI Python

One CLI to rule all GPU clouds.
Search pricing across 10 providers, spin up a GPU in seconds, sync your workspace, and track every dollar.


$ swm gpus -g h200 --max-price 4

  Live GPU Availability
┏━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━┓
┃ Provider ┃ GPU              ┃ VRAM   ┃ $/hr     ┃ Stock   ┃
┡━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━┩
│ vastai   │ NVIDIA H200      │ 141 GB │ $2.89/hr │ 12 avl  │
│ runpod   │ NVIDIA H200      │ 141 GB │ $3.49/hr │ High    │
│ lambda   │ NVIDIA H200      │ 141 GB │ $3.99/hr │ 4 avl   │
│ vultr    │ NVIDIA H200      │ 141 GB │ $3.88/hr │ 8 avl   │
└──────────┴──────────────────┴────────┴──────────┴─────────┘

Install

# macOS (Homebrew)
brew tap swm-gpu/swm && brew install swm

# Python (3.11+)
pipx install swm-gpu

# From source
git clone https://github.com/swm-gpu/swm.git && cd swm && pip install -e .

Quick Start

# 1. Add your API key
swm config set runpod.api_key <your-key>

# 2. Find a GPU
swm gpus -g h200

# 3. Create a pod
swm pod create -p runpod -g h200 -n my-session

# 4. Install a framework
swm setup install vllm runpod:<id>

# 5. Done — saves workspace and terminates
swm pod down runpod:<id>

Or just ask your agent

Don't want to learn the CLI? Install the SKILL.md and your AI agent manages GPUs for you:

# Universal (works with Cursor, Copilot, Windsurf, Amp, Devin)
mkdir -p .agents/skills/swm-gpu-workflow
curl -sL https://raw.githubusercontent.com/swm-gpu/swm/main/.agents/skills/swm-gpu-workflow/SKILL.md \
  -o .agents/skills/swm-gpu-workflow/SKILL.md

Works with Cursor, Claude Code, Codex, Copilot, Windsurf, Amp, Devin, and any agent that can run shell commands.

Supported Providers

Provider GPU Search Provision Stop/Resume Billing API
RunPod Live Yes Yes Full
Vast.ai Live Yes Yes Full
Lambda Labs Live Yes
Vultr Live Yes Yes
TensorDock Live Yes Yes
FluidStack Live Yes Yes
AWS (EC2) Live Yes Yes
GCP (Compute) Live Yes Yes
Azure Live Yes Yes
CoreWeave Live Yes Yes

Key Features

GPU Search & Provisioning

swm gpus                            # all GPUs, all providers
swm gpus -g h200 -c 4              # 4×H200 configs
swm gpus --max-price 4 --secure    # under $4/hr, certified clouds
swm pod create -p runpod -g h200 -n train
swm pod down runpod:<id>            # sync + terminate

Workspace Sync

Your /workspace directory follows you across clouds via S3-compatible storage (Backblaze B2, Amazon S3, Google GCS).

swm sync push runpod:<id>           # pod → storage
swm sync pull runpod:<id>           # storage → pod
swm sync watch runpod:<id>          # auto-push on file changes

Three-tier smart sync: inotify watcher tracks changes, incremental push uploads only what changed, tar mode packs 600k small files into one S3 object.

Frameworks

swm setup install vllm runpod:<id>       # vLLM inference server
swm setup install open-webui runpod:<id> # Open WebUI chat interface
swm setup install comfyui runpod:<id>    # ComfyUI image generation
swm setup install axolotl runpod:<id>    # Axolotl fine-tuning
swm setup install ollama runpod:<id>     # Ollama model runner
swm setup install swarmui runpod:<id>    # SwarmUI
swm setup install llm-studio runpod:<id> # H2O LLM Studio

Auto-detects GPU count for tensor parallelism, opens SSH tunnels for unexposed ports, probes health endpoints.

Lifecycle Guard

Monitors SSH sessions, GPU utilization, filesystem writes, and active processes. If nothing's happening, it saves your workspace and terminates the pod.

swm guard enable runpod:<id> --policy auto-down --idle 30m
swm guard list

No more $96 overnight H100 bills.

Cost Tracking

swm costs live                      # running cost right now
swm costs summary                   # spending breakdown
swm costs reconcile                 # verify against provider billing APIs
swm costs budget set 100            # $100/month alert

Model Management

swm models search qwen3             # search HuggingFace Hub
swm models pull runpod:<id> Qwen/Qwen3-235B
swm models set runpod:<id> Qwen/Qwen3-235B  # hot-swap vLLM model

How It Works

Everything happens over SSH. No agents on the pod. No custom images. No webhooks.

┌──────────┐       SSH        ┌─────────────┐       S3 API      ┌───────────┐
│ Your Mac │ ───────────────> │  GPU Pod    │ ────────────────> │ B2 / S3   │
│   swm    │  exec, scp      │  (any       │  s5cmd sync       │ / GCS     │
│          │ <─────────────── │   provider) │ <──────────────── │(workspace)│
└──────────┘                  └─────────────┘                   └───────────┘

Credentials are never stored on the pod. Storage keys are passed as transient environment variables per command.

Security

  • SSH key authentication only — no passwords stored anywhere
  • No credentials on pods — storage keys passed transiently, never written to disk
  • Non-destructive syncs — files are never deleted from your storage bucket
  • Secure cloud defaultswm pod create defaults to SOC 2 / HIPAA certified data centers

Documentation

Full docs at swmgpu.com.

Page Description
Getting Started (CLI) Install and create your first pod in 5 minutes
Getting Started (Agent) Let your AI agent manage GPUs for you
Configuration All config keys for providers and storage
Command Reference Full reference for every swm command
Core Concepts Providers, workspaces, frameworks, lifecycle guard

Requirements

  • macOS or Linux
  • Python 3.11+ (if not using Homebrew binary)
  • SSH client (ssh, scp)
  • An account with at least one GPU provider

License

Licensed under the Apache License, Version 2.0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

swm_gpu-0.1.1.tar.gz (105.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

swm_gpu-0.1.1-py3-none-any.whl (140.1 kB view details)

Uploaded Python 3

File details

Details for the file swm_gpu-0.1.1.tar.gz.

File metadata

  • Download URL: swm_gpu-0.1.1.tar.gz
  • Upload date:
  • Size: 105.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.8

File hashes

Hashes for swm_gpu-0.1.1.tar.gz
Algorithm Hash digest
SHA256 aafc0fca197c74ca212e3863e50200ba9e663e39cf95e17b67ee5758283f2225
MD5 1de591112a7f27a8b158e4d5257e4ebd
BLAKE2b-256 c7b3d94970bb9663af748d507fea062ffd7f3f306fdfa70b487f412cb3c751a7

See more details on using hashes here.

File details

Details for the file swm_gpu-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: swm_gpu-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 140.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.8

File hashes

Hashes for swm_gpu-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2ec6453346533126ef3155b0679fbf3f67d06c312451359b64bca6940ecaecd5
MD5 ad06cd5f74ad0c967f17d5b5aff4f334
BLAKE2b-256 73e83a4d80c83881d2bc9e8ecf0be1fbd4801f54188dca7f2bbc27ab4d81d502

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page