A home lab built from everyday PCs and cast-off gear

Home AI without breaking the bank

None of these machines were purpose built for AI. My gaming PC and a couple of other desktops I've bought over the years, some spare graphics cards, and cast-off gear from yard sales and free bins: an old office PC and eleven Android tablets. Together they run models up to 125 billion parameters, write and test code, and run HAI, my household's assistant, all at home.

Why I built it this way

I'm anti-cloud, and yes, anti Sam Altman. I think people are losing touch with what AI actually takes to run, in power and in the data centers being built for it. If you want to use AI, I think it should run on hardware you own, in your own home.

I'm not a purist about it. I bring in frontier models as hired help for specialist work, and Claude and Codex helped me build this lab. But the AI my household uses every day runs on machines in my house.

The goal has always been simple: take any piece of hardware that comes home, add it to the system, and have the system use it to get more capable. I also want other people to be able to do the same with what they've got. Not everybody has a pile of GPUs.

Owning the machines keeps the cost in front of me: the power draw, the fan noise, the warm room. That's why the results below carry their energy wherever I have it, marked as what the graphics card used or what the whole box drew at the wall.

The next step: one assistant, any device, every box

Most home AI setups I see are one box running one model behind an agent. Linus is already talking about adding more cards, and Labs runs several rigs. I think the next step is joining them up: one assistant in front, every computer in the house behind it, and each piece of work placed wherever it fits. Models are parts the system uses, picked per request.

The assistant is HAI, short for Home AI. Its front door is a web page. Open it on a phone, a laptop or the PC itself and it's the same HAI and the same conversation. The front end and the back end are separate on purpose, so it doesn't matter which device you're holding or which box does the work.

Each person gets their own HAI. Everyone signs in as themselves, and HAI keeps a separate memory and document library for each person, so it learns about you without mixing you up with anyone else. Specialist modes, like a nursing tutor, sit on top without changing whose assistant it is.

Behind the page, HAI is run by a small command crew in two layers. On top is Starfleet Command, which decides what each request needs and where it goes:

KirkThe orchestrator. Takes each request or job, grounds it in the library and, with Spock, breaks it into steps.
SpockThe scheduler. Places each step, weighing speed, energy and quality together.
McCoyA small advisor model. Today he reads every request for Kirk: how hard it is, what kind of work, chat or job. Advising Spock and Tolkien on placement is the part I'm still building. He proposes; fixed checks decide.

One layer down is Tolkien, who does the same job for rigby's factory: the old office PC and the tablet cluster. When Starfleet decides a job is Tolkien-class, it goes to Tolkien, and he decides which card or which tablets do the work. The only time a job goes back up is when the factory doesn't have the hardware it needs; then Tolkien hands it back to be placed somewhere else. Mothership, BigHonker and Softserve each work through their own order queue.

Phone Laptop PC same chat, any device HAI web page the front end request answer streams back live STARFLEET COMMAND Kirk orchestrator grounds, splits McCoy advisor model Spock scheduler priced menu triage building steps places hands back only if no hardware Mothership 7900 XTX · queue BigHonker RTX 3070 · queue Softserve 3070 Ti · queue Tolkien rigby's factory assigns rigby GTX 1060 Tablet pool 11 + GT 730 job done, guard fired Discord admin alerts decides where work goes advises does the work exception or still being built
A request from any device goes through HAI's web page to Kirk, who takes it with McCoy's triage. Spock places each step on a machine's queue, or sends Tolkien-class work to Tolkien, who assigns it inside rigby's factory. The answer streams back to the page as it's written. Blue outlines mark the parts that decide where work goes; dashed lines are the exceptions.

Spock decides from a priced menu: the tested combinations of model, machine and settings, each measured for quality, time and energy per solved task, with the gaps marked. Placement also weighs cold loads, how soon you'll see output, what's already busy and the hour's electricity price. Long jobs like training, renders and benchmarks go in as orders that each machine works through unattended. When a new box comes home, it gets measured and joins the menu.

What lets it run overnight without me is the machinery around those orders. Every machine runs a watchdog on its own card: Mothership's rescues a stalled training run or render, and the 8 GB boxes watch for a lost GPU, frozen telemetry, heat and fans. A patrol on each machine catches AI work running on a card that nothing placed, and either reports it or stops it. The watchdogs restart themselves if they die, and every box pushes its own status to a dashboard, so I can see what each machine is doing from my phone.

Behind the scenes, admin alerts go to Discord: a job finishing, a guard firing, a box that needs a look.

The front end: one window, live on every device

HAI's web page is the part people actually touch, and I care about it as much as everything behind it.

What came home, and what it does now

SPOCK'S TIERS, BIGGEST MODELS TO SMALLEST Lead Mothership Qwen3.8 Flash-Next 125B agentic coding lead Qwen 3.8 27B quick everyday lead Qwen3-Coder 30B Qwen3-VL 8B FLUX.2 images 32B fine-tuning 8 GB BigHonker · Softserve Qwen3.6 35B-A3B split, card + RAM Qwen3 8B · Qwen3.5 9B Qwen3-VL 8B MiniCPM-V 4.6 Nemotron Nano 4B McCoy, 4B advisor kept loaded on Softserve rigby GTX 1060 + CPU Qwen3.6 35B-A3B 1060 + system RAM Qwen2.5 7B Qwen2.5 1.5B embeddings Tablets 11 tablets + GT 730 Qwen3.5 0.8B · 2B Qwen2.5-Coder 0.5B · 1.5B small independent workers Tolkien runs both
How Spock sees the machines: four tiers, each holding the models the priced menu has measured there as of November 3, 2026. Spock picks the tier and the row for each request; inside the last two, Tolkien decides.

Card = energy the graphics card reported. Whole box = at the wall: metered by the box's UPS, or modelled from a line calibrated against that meter. Each figure says which.

Mothershipmy gaming PC
Ryzen 7 5800X · Radeon RX 7900 XTX 24 GB · 64 GB DDR4

The beefiest box in the lab, so it's home to the best-quality models: Qwen 3.8 27B and a 125-billion-parameter mixture-of-experts model (Qwen3.8 Flash-Next, 6B active) both run fastest and best here. The 125B fits on one 24 GB card with the rest held in system RAM, and it's the lead for agentic coding.

writing speed
about 80 tokens/s for the 125B and about 69 tokens/s for Qwen 3.8 27B, median decode across full agentic coding runs
agentic coding
12 of 15 solved, against 9 for Qwen 3.8 27B. It solved everything the 27B did, plus three more. The 27B still leads the quick everyday work.
energy per solved task
125B: 0.37 MJ card (metered) · about 0.58 MJ whole box (UPS, two tasks modelled). 27B: about 0.70 MJ card · about 0.94 MJ whole box (partly modelled).

The 15 tasks are Python exercises from the Aider Polyglot benchmark, run through my own agent harness, so this isn't a standard leaderboard score. The 27B's result combines two runs on the same harness. The 125B ran on the Strata engine (0.1.39, ROCm/HIP) with its Q2_0 files, 64 GB of RAM and a 131,072-token window, so a random Q2 file in another engine won't reproduce it. That's one run of the 125B, so the gap is real but preliminary.

Both models drew about 515 W at the wall. The bigger model used less energy because it finished sooner.

Also: a 32B FLUX.2 image model fine-tuned (QLoRA) on this one card, native ROCm on Windows. The recipe is public.

One catch with heavy AI work on this card: it can silently stop computing while every Windows health check reads normal. The evidence points to two heavy jobs colliding in AMD's on-GPU scheduler (MES). Killing the poisoned job brings the card back in seconds with no reboot, and HAI now spaces out GPU work to avoid the collision. I've filed it upstream on the ROCm tracker; it isn't a closed case. The full investigation.

BigHonkermy desktop
i5-9600K · RTX 3070 8 GB · 32 GB DDR4

An 8 GB card is supposed to limit you to what fits in 8 GB. This one runs a 35B mixture-of-experts model split between the card and system RAM, plus everyday chat and vision work. The 35B-A3B on the smaller boxes is one of my favorite results in the lab: a model that size, doing useful work on hardware a lot of people already own.

35B on an 8 GB card
about 6.8 GB of the 18 GB model on the card, the rest in system RAM, at a 65,536-token context
vision
Qwen3-VL 8B scored 1.0 on my 24-task image set (216 attempts): about 2 s per task once loaded, about 400 J whole box (modelled)
Softservethe house server
Ryzen 7 5700G · RTX 3070 Ti 8 GB · 48 GB DDR4

Runs the media server, Home Assistant and HAI's front door, hosts McCoy, and lends its GPU when it's free.

vision
the same 8B model at 1.0 in 1.35 s once loaded (144 attempts) · a compact model, MiniCPM-V, at 0.97 for about 230 J whole box (modelled)
rigbythe old office PC
HP office desktop · i7-3770 (2012) · 24 GB · GTX 1060 6 GB + GT 730 2 GB

A cast-off office desktop with a 2012 i7 and two old graphics cards. It runs Qwen3.6 35B-A3B as a real coding worker, and it's where Tolkien lives.

writing speed
about 18 tokens/s with the model's own draft head on its current setup, up from 16.7 to 16.9 in mid-October. The 1060 moved to a full x16 slot and the engine was rebuilt in between, so the gain isn't all the slot.
reading speed
about 300 tokens/s on the x16 slot, up from about 85
agentic coding, 10 tasks
6 of 10 on October 15, 5 of 10 on October 26 after the hardware and engine changes, with a different mix of tasks passing
power at the wall
about 154 W while working (76 W idle plus 78 W of work), separated out of the UPS it shares with Softserve by regression over four days of ten-second samples
energy per solved task
about 0.75 MJ whole box, 0.38 MJ above idle, on the October 26 run (modelled from that wattage and the run time)
The Fellowshipthe tablet cluster
11 Android tablets · 76 ARM cores · three hardware classes

Tablets on USB networking, running small models as independent workers for captioning, OCR and evaluation sweeps. One is a 32-bit tablet brought back with a custom build of llama.cpp. The GT 730 in rigby works as a twelfth worker in the same pool.

model tournament
13 small models across the three tablet classes: 688 planned cells, 512 ran, 436 passed. Each cell ran once with a fixed seed, so it ranks models; it doesn't measure run-to-run reliability. The data is public.

What didn't work

Negative results count. These saved me from building the wrong thing.

How local AI numbers lie, and how I check mine

If you've got one gaming PC

You don't need a lab like mine to use any of this. What carries over:

0 4 8 12 16 kJ rigby 154 W × 102 s rigby: 15.7 kJ per solved task, whole box (154 W for 102 s) 15.7 BigHonker ~186 W × 58 s BigHonker: 10.9 kJ per solved task, whole box (about 186 W for 58 s) 10.9 Mothership ~418 W × 9.4 s Mothership: 3.9 kJ per solved task, whole box (about 418 W for 9.4 s) 3.9
Whole-box energy per solved task, same Qwen3.6 35B-A3B model and settings, same work tasks. The old office PC draws the least power but takes about ten times as long as Mothership, so each answer costs about four times as much. Counting only the energy above idle: rigby 8.0 kJ, BigHonker 6.8, Mothership 3.0.

It runs my house, and it's fun

How it was built

I built it with Claude and Codex as hired help: they design, review and fix, and the local lab does the daily work. That's the same rule the lab runs by. Frontier models are contractors brought in for specialty work; the AI you use every day lives on your own hardware.

More detail