Skip to main content

Run AI workloads on any cloud account to find the cheapest GPU.

anycloud scans every region of every account you connect for the cheapest GPU — pool your credits, keep your data.

Your accounts. Your credits. Your data.

$curl -fsSL https://get.anycloud.sh | sh
$anycloud gpus --type h100 --spot
# illustrative spot prices
Pool credits across your cloud accounts
AWSAzureGCPLambdaVast

Lower your GPU bill

Stretch your runway on spot.

Same job, cheapest spot GPU across every account you connect — auto-recovering when preempted, so long runs still finish.

anycloud submit --gpu-type h100 --spot

One submit, every region of every account — the lowest price wins. Illustrative spot prices.

Cheapest GPU across your accounts

The cheapest matching spot GPU across every region of every account — often 2× cheaper elsewhere, up to 90% off on-demand.

Preemption-proof jobs

On preemption, your job resumes from the last checkpoint on a new VM — most ML frameworks already write one.

Pool cloud credits across accounts

Connect cloud accounts with unused balances, then submit work through one flow.

Preemption recovery
VM 1VM 2VM 3checkpointpreemptionresume on a new VM

Agent-first

Agents can run hundreds of experiments — on budget

Point Claude Code, Codex, or Cursor at your own cloud — hundreds of experiments a day, every session auto-tagged, caps optional. See Agents.

$ anycloud budget set 4000 --per day --agent-session

Budget  day  (resets in 19h)
  per agent-session  cap $4,000 each
    train-llama-sft     ██████████  96%    $3,848 / $4,000      $152 left
    lr-sweep            ████████░░  78%    $3,136 / $4,000      $864 left
    eval-harness        █░░░░░░░░░   9%      $368 / $4,000      $3,632 left

Run anywhere

Docker images get bucket-synced folders

anycloud prepares your input bucket as files under /mnt/input and uploads files written under /mnt/output back to your output bucket.

import anycloud
from pathlib import Path
from anycloud.types import CloudConfig

@anycloud.function(
    image="ghcr.io/acme/train:latest",
    gpu="h100:8",
    cloud_config=CloudConfig(
        credentials="my-aws", spot=True,
        input_bucket="training-data",
        output_bucket="results",
    ),
)
def train(learning_rate: float):
    data = Path("/mnt/input/data").read_text()
    # your training loop reads local files
    Path("/mnt/output/result").write_text(
        "loss=0.12\n",
    )

job = train.submit(0.001)
job.wait()
anycloud submit ghcr.io/acme/train:latest \
  --gpu-type h100 --gpus all --spot \
  --credentials my-aws \
  --input-bucket training-data \
  --output-bucket results \
  -- python train.py \
    --lr 0.001 \
    --data /mnt/input/data \
    --out /mnt/output/result
Your code just reads and writes folders; anycloud handles the bucket transfer.

How it works

From submit to shutdown

anycloud handles the VM lifecycle around your container: start compute, run the image, recover from interruption, move outputs, and tear everything down.

  1. 01

    Install

    Use the CLI or Python SDK.

  2. 02

    Connect

    Add the cloud account you want to run in.

  3. 03

    Submit

    Send a Docker image, GPU target, command, and buckets.

  4. 04

    Run

    anycloud starts the VM and runs your container.

  5. 05

    Recover

    Interrupted spot jobs restart with checkpoints restored.

  6. 06

    Finish

    Outputs are uploaded and the VM is terminated.

Ready to run AI workloads on your own accounts?

Five minutes from install to running hundreds of experiments.