Docs · Getting started

Rent the cheapest GPU in stock from your terminal.

gpyou is a CLI that quotes every provider it knows, rents the cheapest GPU under your price and runs your container, fine-tune or model endpoint. You pay with prepaid credit. There are no API keys to manage. Every command speaks JSON, so a coding agent can drive it end to end.

Public beta

gpyou is open to everyone and rents real GPUs for real money. Three providers are live today and more are on the way. Expect rough edges, no SLA, and commands that may still change. Read the beta limits.

01Install and sign in

gpyou is on PyPI. Install it with uv or pipx on Python 3.12 or newer. You need a gpyou account to use it: sign up from the terminal with your email and a verification code, then add a passkey or an authenticator app if you like. The session lives in your OS keychain.

shell
$ uv tool install gpyou   # or: pipx install gpyou
$ gpyou signup          # email code, then passkey, app or skip
$ gpyou credits add 50  # opens Stripe Checkout
$ gpyou status

Update with uv tool upgrade gpyou or pipx upgrade gpyou. Headless box? Add --no-browser to credits add and open the Checkout URL from the JSON on another device.

02Quickstart

gpyou gpus lists the cheapest in-stock offer of every GPU model with at least 24 GB, across all providers. Pick one and the CLI asks what to run on it, then waits with live state until it is running.

gpyou gpus
$ gpyou gpus
  GPU          VRAM    PROVIDER   WHERE   $/HR
› RTX 4090      24 GB  cheapest   ··      ····
  L40S          48 GB  cheapest   ··      ····
  A100 80GB     80 GB  cheapest   ··      ····
  H100 80GB     80 GB  cheapest   ··      ····
  H200         141 GB  cheapest   ··      ····

  What should run on it?  container · fine-tune · endpoint
Narrow it --provider verda --country NL
Wait later gpyou instances wait ID

Ctrl-C stops the waiting, not the job.

No stock?

No machine within 15 minutes means the reserved credit comes back. Nothing is charged.

03Providers

Three providers are live, all on demand. gpyou ranks offers by confirmed stock, then past launch success, then price. If a provider refuses before renting, it moves to the next offer. More providers are coming.

  • Live container Runpod

    Secure Cloud. Data centres worldwide.

    --provider runpod
  • Live container Vast.ai

    Verified hosts only. Widest range.

    --provider vast
  • Live vm · EU Verda

    Finland and Iceland. Stays in the EU.

    --provider verda
  • Coming soon More providers

    Each one passes the same lifecycle, isolation and billing tests before it gets traffic.

04Run a container

Quote first, then launch at the rate you saw. The quote and request ID go to stderr, one JSON operation goes to stdout. Retry with the same --quote-id and --request-id. Never mint a new request ID when the outcome is unclear.

$ gpyou offers ghcr.io/you/train:1 2 --gpu 'RTX 4090'
$ gpyou launch ghcr.io/you/train:1 2 --gpu 'RTX 4090' \
    --count 1 --max-duration 3600 --yes
$ gpyou logs OPERATION_ID
$ gpyou terminate OPERATION_ID
FlagDefaultWhat it does
IMAGE MAX_PRICE required Image to run and your hourly ceiling in USD. The chosen offer price becomes the cap.
--gpu RTX 4090 GPU model. Every model with at least 24 GB is eligible.
--count 1 GPUs per machine, 1 to 8.
--provider any runpod, vast or verda.
--country any ISO country code for placement.
--max-duration none Seconds before the job stops. 300 to 604,800 (7 days).
--max-transfer 0 Transfer price cap in USD per GB.
--disk 40 Temporary disk in GB. Deleted with the machine.
--spec none Read the full request from a JSON file.

05Fine-tune

QLoRA or LoRA on Qwen2.5 1.5B and 7B Instruct, with pinned model revisions. MAX_SPEND is a hard cap. Jobs checkpoint every 100 steps.

$ gpyou buckets create data
$ gpyou storage upload BUCKET chat.jsonl
$ gpyou finetune validate OBJECT_ID
$ gpyou finetune quote DATASET 2 20
$ gpyou finetune start DATASET 2 20 \
    --method qlora
$ gpyou finetune wait OPERATION_ID

06Serve an endpoint

vLLM on one GPU, base model or your adapter. It starts asleep, wakes on the first request and releases its GPU after 15 idle minutes. You pay only while it is awake.

$ gpyou serve 2 \
    --model Qwen/Qwen2.5-1.5B-Instruct
$ gpyou serve 2 --adapter-job-id JOB
$ gpyou endpoints chat ID "hello"
$ gpyou endpoints usage ID
$ gpyou endpoints delete ID

07Storage and registry

Buckets and images live in Cloudflare R2, EU jurisdiction, and survive GPU termination. Uploads resume with --upload-id. gpyou registry login installs a Docker credential helper for your private namespace. Transfers use short-lived, scoped credentials.

08For coding agents

Pass --json to any command for machine output. Prices in the CLI are USD; the API uses integer micro-USD. Without a terminal, interactive pickers return JSON instead of prompting.

Idempotent

Every launch carries a request ID. A retry with the same ID never rents twice.

Bounded

Price, spend, duration and transfer ceilings are set per job, before anything runs.

CI ready

GitHub Actions signs in with OIDC. Trust a repo with gpyou identities trust.

stdout
$ gpyou --json instances get OPERATION_ID
{
  "id": "OPERATION_ID",
  "state": "running",
  "provider": "verda",
  "gpu": "RTX 4090",
  "max_hourly_micro_usd": 2000000
}

09Python SDK

The SDK reuses the CLI's keychain session. chat() and stream_chat() wait through cold starts and never retry once inference begins. The gateway speaks an OpenAI-style chat schema.

python
from gpyou.client import Client

client = Client()
endpoint = client.request("GET", "/v1/endpoints")[0]
result = client.chat(endpoint["id"], [
    {"role": "user", "content": "Explain gradient accumulation."},
])
print(result["choices"][0]["message"]["content"])

10CLI reference

Every command has --help with its arguments.

CommandSubcommands
gpyou gpus Cheapest in-stock offer per GPU model, then pick and run.
gpyou offers · launch Quote and start a container.
gpyou instances list · get · wait, plus logs and terminate
gpyou finetune validate · quote · start · status · wait · cancel
gpyou serve · endpoints list · chat · usage · delete
gpyou buckets · storage create · list · delete · upload · download · abort
gpyou registry · images login · add · list · remove · delete
gpyou credits · billing add · balance · usage · auto-topup · payments · recover
gpyou identities list · trust · revoke · sessions · revoke-session
gpyou agent Ask about your account and jobs. Anything that spends needs your y.

11Credit and billing

ItemPriceDetail
GPU compute Live market rate Per second, at the rate you were quoted
Endpoints Same GPU rate Only while awake. Released after 15 idle min
Storage and images $0.018 / GB·month 1 TiB per account
Transfer Quoted per GB Capped per job with --max-transfer
Credit $10 to $1,000 Per top-up. Optional auto top-up

Beta limits Public beta

  • Three providers live. More are being added.
  • No SLA. Commands and flags may still change.
  • Endpoints are for development: one GPU, no autoscaling.
  • A running job is never moved to another provider.
  • Fine-tune runtime estimates are not published yet.
  • Runpod and Vast.ai machines can sit outside the EU.