NVIDIA passthrough · self-hosted

A sandbox for AI agents, with a real GPU in it.

Most managed agent sandboxes are CPU-only. Attach one GPU — or several — to an isolated Linux box on hardware you already own, and the agent inside gets nvidia-smi, CUDA, and the whole device.

~ / attach a GPU to a box
# pre-flight: is passthrough actually working on this host?
$ containarium backends validate-gpu
ok · NVIDIA · driver 550.x · nvidia-smi ran inside a throwaway box

# one GPU, by device index
$ containarium create infer-box --gpu 0

# or several, for multi-GPU work — index or PCI address
$ containarium create train-box --gpu 0 --gpu 1
$ containarium create train-box --gpu 0000:0b:00.0

The gap

An agent that can't reach a GPU can't do the work.

Plenty of agent work is CPU-shaped: edit files, run a build, run tests. But the moment the task is "benchmark this kernel", "fine-tune on our data", or "reproduce the training bug", a CPU-only sandbox is the wrong tool and the agent stalls.

Inference and eval

Let an agent serve a local model, run an eval harness, or sweep quantization settings — in a box, not on your workstation while you're trying to use it.

CUDA that has to actually compile

Kernel and driver-adjacent code can't be tested by inspection. The agent needs a device present to know whether its change builds and runs.

Fine-tunes that outlive a session

A box persists, so a long run survives the agent disconnecting — and the dataset and checkpoints stay on your disk rather than being re-uploaded each time.

Your hardware

The cheapest GPU hour is the one you already paid for.

If there is a GPU in the office, in a rack, or under your desk, it can be agent capacity this afternoon. Self-hosting turns a card you already bought into sandbox capacity at close to zero marginal cost — and nothing about the workload has to leave your network.

No per-hour GPU rental

A workstation card sitting idle overnight is the cheapest capacity you will ever get. The comparison that matters isn't rate-vs-rate, it's rented-vs-already-owned.

Weights and data stay put

Proprietary weights, customer data, and anything under a data-residency rule never leave the machine. That is often the reason a hosted sandbox was never an option.

Apache 2.0, one VM

The core is open source and installs on a single Ubuntu host. No vendor in the path between your agent and your GPU.

Isolated per agent

Each box is its own environment, so one agent's CUDA toolkit or driver-version pin can't break another's. We run five boxes ourselves.

How it works

Passthrough, not emulation.

1 · Prepare the host

Install on an Ubuntu machine with an NVIDIA card and driver. containarium backends validate-gpu launches a throwaway container, runs nvidia-smi inside it, tears it down, and tells you the GPU is usable plus which model and driver it saw. Run it again after any driver upgrade or VFIO bind — that's the check that catches a broken host before a provisioning request does.

2 · Attach devices to a box

--gpu takes a device index (0) or a PCI address (0000:0b:00.0). The LXC backend wires the device in via Incus nvidia.runtime passthrough, so the container sees the real device rather than a shim.

3 · One GPU or many, per box

The API field is a list of device IDs, not a single value, so a box can take one card, several, or all of them. Multi-GPU training and tensor-parallel inference need devices in the same box — they can't be spread across separate sandboxes — which is why this is a list and not a boolean.

4 · Hand it to the agent

The box runs an MCP server and is reachable over SSH, so Claude Code, Cursor, or your own agent drives it with no GPU-specific glue. From inside, it's just a Linux host with a GPU.

Scope, honestly: GPU passthrough is wired end-to-end for NVIDIA on the LXC backend — that's what validate-gpu probes and what we run. It is a self-hosted / bring-your-own-hardware story: there is no GPU tier on the hosted cloud today. If you want GPU boxes managed for you, tell us — that demand is what would move it up the list.

FAQ

Common questions

Can an AI agent sandbox have a GPU?

In a self-hosted box, yes — attach one or more NVIDIA GPUs at creation time and the agent inside sees them like any other host, nvidia-smi and CUDA included. Most managed agent sandboxes are CPU-only, so if the task needs a device, the environment has to be one you provision.

How do I give a container a GPU?

Pass --gpu at create time with a device index or PCI address: containarium create my-box --gpu 0. Repeat or comma-separate it for several.

Can one box use multiple GPUs?

Yes — the field is a list of device IDs, so a box can hold one, several, or all of them. That's required for multi-GPU training and tensor-parallel inference, which can't be split across separate sandboxes.

How do I check passthrough works before provisioning?

containarium backends validate-gpu launches a throwaway container, runs nvidia-smi, tears it down, and reports usability plus model and driver. It takes ~30s, and it's admin-only since it creates and deletes a container. Use --pci to check one specific card.

Can I run agents on my own RTX or H100?

That's the intended path. The core is Apache 2.0 and installs on a machine you own, so a card you've already bought becomes agent capacity at close to zero marginal cost — no per-hour rental, and weights and data never leave your network.

Is there a hosted GPU option?

Not today — GPU boxes are a self-hosted / bring-your-own-hardware story, and we'd rather say so than list a tier that doesn't exist. Email us if you want managed GPU capacity; that demand is what would prioritise it.

Put your idle GPU to work.

Install the open source on the machine the card is already in, and validate passthrough in about thirty seconds.