Offload is a small daemon for people who own a GPU box and pay for Claude. You give it one line about a change you want. The model on your own GPU does the typing. Claude only plans, reviews, and steps in when the local model stalls. You get a pushed branch, a report, and a message when it needs a decision.
The brass sliver is Claude: 36 seconds, 2 calls, one to plan and one to review. The job's report
Before you install anything
Most machines cannot run this, and it is better to know now. This uses the same rules as the preflight script, which reads your actual hardware and installs nothing.
One harness, two brains
Both workers are Claude Code in print mode, inside the same locked-down container. The local one talks to a small proxy in front of your model server, so there is no second agent to install. Brass marks the only places the paid model is used.
On a limit it reads the reset time, waits, and resumes the same session. In our test the resumed review cost a tenth of a fresh one.
It paces Claude use evenly across your week and keeps a share for your own sessions. Ahead of pace, the paid steps wait and the local ones continue.
It asks before spending money, publishing, or deleting. Everything else it decides, and writes down in the job's report.
Every job leaves a page: what changed, what it cost, who decided what, and whether the paid model had to rescue a step.
Measured on real jobs, evidence in the repository
| Job | Your GPU | Claude | Claude's share of the time |
|---|---|---|---|
Fix a bug in a small repo, the built-in offload demo | 58 s · 3 sessions | 20 s · 2 calls | |
| Write a 33-test suite, 446 lines, 5 files | 740 s · 7 sessions | 36 s · 2 calls | |
| Move 13 hardcoded settings into a config layer, with tests | 868 s · 5 sessions | 68 s · 2 calls | |
| Turn a 600-line script into a package with a CLI | 4,294 s · 6 sessions | 104 s · 2 calls |
The last three jobs were Offload working on its own source code. On a five-task calibration set the local model and Claude Sonnet both scored 5 of 5; the same small tasks done entirely by Claude re-read 130,000 to 190,000 cached tokens each. Hardware: one RTX 5090, Qwen3.8-27B. Your numbers will differ; the runners are in the repo so you can measure your own. Calibration results · Hardware page
Who should not install this
Models editing code while you sleep
The full safety model, including what it does not protect against.
Two commands, and the first installs nothing
Read-only. It reports your GPU and memory, Docker, the NVIDIA container runtime, disk space, and the Claude CLI, and says plainly what is missing.
$ curl -fsSL https://raw.githubusercontent.com/boxwright/offload/main/install/preflight.sh | bash
It tells you the size before every download (the model is 17 to 20 GB), offers speculative decoding with a recommendation based on your GPU memory, and never sees your Claude login: you create your own token with claude setup-token.
$ curl -fsSL https://raw.githubusercontent.com/boxwright/offload/main/install/install.sh | bash $ offload doctor # checks Docker, the sandbox, the model, the token $ offload demo # a two-minute job on a sample repo, so you can watch it work
Help wanted
Everything measured here comes from one machine: an RTX 5090 with 32 GB, two models. Every other line on the hardware page is an estimate, and says so. If you own a Linux box with an NVIDIA card of 24 GB or more, the read-only check above takes a minute, and its output in a hardware report turns an estimate into a measurement. Nobody has measured any 24 GB card, or the 20 GB download on a machine that did not have the file. A pull request that adds a row to docs/hardware.md is the best kind: card, driver, model and quant, context, VRAM after load, tokens per second, date, and what did not work.
Built in the open, mistakes included
Four things that went wrong while building it, each with a number behind it.
One word in my prompt cost me 415,000 tokens.The daemon looked for the word STUCK. The local agent echoes its instructions, which said "say STUCK".
My laptop fell asleep. The job didn't.A 73-minute refactor finished, was reviewed and pushed. I found out two days later.
My AI sandbox had a door I forgot to lock.Every model was sandboxed. The tests, which are code the model wrote, ran on the host.
It kept calling for backup. I had told it to stare at the code first.One sentence to the planner: 38 cents and a rescue became 13 cents and none.