Skip to content
ORoffrig
Windows · RunPod · MIT

Big models on rented GPUs, never on yours.

offrig rents RunPod GPUs for models too big for your machine, keeps them reachable only through an SSH tunnel, and checks every time that nothing lands on your own GPU. Agents get an MCP side-car that prices each session before it spends, and a watchdog that ends the pod at its deadline.

Status

> offrig status balance $40.00, spending $0.00/hr, runway unlimited > offrig gpus --count 1 GPU (x1) VRAM $/hr stock NVIDIA RTX PRO 6000 Blackwell Server ... 96GB 2.09 Low NVIDIA A100-SXM4-80GB 80GB 1.59 High (example figures)

Launch

> offrig up medium - creating offrig-medium on 1x RTX PRO 6000 - ssh is up - qwen3-coder:30b-a3b-q8_0: pulled - gpt-oss:120b: pulled - all profile models are on the pod # then the seven guard checks run, and the # tunnel is held on 127.0.0.1:11435

For agents

# An agent plans, then launches only by plan id offrig_plan profile=job max_hours=3.5 no_fallback=true max_price_hr=2.2 -> worst case $7.32, committed against the cap offrig_launch plan_id=<id> offrig_shutdown plan_id=<id>

The guarantee, and how it holds

Seven checks verify it on every launch, from facts offrig can observe.

Reachable only through the tunnel

The model server binds to the pod's own loopback and the pod exposes only port 22. offrig's tunnel listens on 127.0.0.1:11435 and refuses 11434, your local Ollama's port, so a dead tunnel fails instead of falling through to your own GPU.

Weights never land here

Models are pulled on the pod, by the pod, or read from a staged network volume. A guard check fails if any pod model also exists in your local Ollama.

Zed never switches providers

The pod's models are their own provider in Zed. If the pod is down, choosing one of them errors; Zed does not quietly try a local model.

An agent spends only what you allow

offrig-mcp is an MCP server that lets an agent rent GPUs inside a budget cap you set. The agent can plan and launch, but it can never raise the cap, and every launch is priced at its worst case first.

Priced before it spends

A plan commits its worst case (live price × max hours) against the cap before anything is rented, and a launch takes only a plan id. Plans can pin the GPU family, a top hourly price, a host CUDA floor, or an exact CUDA version list.

A watchdog on every pod

A separate process ends the pod at the plan's deadline even if the agent, the session and the side-car are gone. A setup that fails before the engine is serving terminates the pod. A recipe that hangs after startup, or that cannot answer one completion, is reported and left running until you shut it down or the deadline ends it.

Lanes keep projects apart

Each project gets its own SSH alias, tunnel port, side-car port and pod-name tag. One lane holds one live pod, and a side-car only ever touches pods named for its own lane.

Job pods for real work

A job pod runs your training or rendering instead of a model server: copy files in, start a detached command, follow its log, copy results back, shut down.

Handoff queues that run unattended

Queue role-headed handoffs with acceptance checks. A detached runner keeps every model slot busy, revises only against failed checks, and shuts the pod down when the queue is empty.

Memory that outlives the pod

Each project keeps a database of briefs, decisions and outcomes, so a session survives compaction or a restart without re-explaining anything.

Tiers

Default profiles. Prices are read live from RunPod's secure cloud; these are typical.

ProfileGPUsRunsTypical cost
small1 × RTX 2000 Ada / A4000 classqwen3:4b on Ollamaabout $0.25/hr
medium1 × RTX PRO 6000 (96 GB)qwen3-coder:30b and gpt-oss:120b on Ollama$2.09/hr
frontier4 × RTX PRO 6000 (384 GB)Qwen3-Coder-480B AWQ on SGLang$8.36/hr
job1 × RTX PRO 6000 (96 GB) on a CUDA 13 hostyour own work, no model server$2.09/hr
jam1 × A40 (48 GB) firstsinging renders for ai-jam-sessions$0.49/hr

Quick start

Install

# Windows, with OpenSSH (built in) and a RunPod account
# 1. Download offrig--windows-x64.zip from Releases
#    and check it against SHA256SUMS
# 2. Set RUNPOD_API_KEY in your user environment
# 3. Add your SSH public key in RunPod's settings

offrig status

Give agents the side-car

# Register it with Claude Code at user scope
claude mcp add --scope user offrig -- \offrig-mcp.exe

# Set the project's cap (human only)
cd 
offrig budget 15