Setting up the new machine
From "I just got this … from Costco … do research and start" around midday to a booted, checked desktop at 8:11 the next morning. Most of the elapsed time was the author asleep or away.
Before the box was opened
- Hardware research. The retailer listings contradicted each other about the motherboard, SSD brand and network card. Claude built a table that marked each claim as exact, buyer-reported, from the spec sheet, or inferred. It flagged what would bite on Linux: the RTX 5080 only works with NVIDIA's open driver, the fan sensors need an extra driver, a Zen 5 CPU bug needs a BIOS update, and having two GPUs confuses the display server. It also checked the Wi-Fi first ("Not the MT7927 saga again"). The card turned out to be an MT7925, which the stock kernel supports.
- The machine as code, before installing anything. The new machine got its own config. Settings shared with the old machine moved into common modules, and the disk layout came in two variants (wipe Windows, or dual-boot). There was also a custom installer USB with SSH keys, NetworkManager and the NVIDIA driver already on it, a hardware-probe script, and a USB writer that refuses to touch non-removable disks.
The cable
The installer booted, but Wi-Fi was "unavailable". After about five rounds of the author typing diagnostics at the new machine's keyboard, the error named the cause:
couldn't initialize supplicant interface: failed to activate wpa_supplicant service
That was Claude's own installer bug: turning off one wireless option also removed the program NetworkManager needs to join Wi-Fi. Claude fixed the config straight away. Rather than make the author rewrite the USB stick, it then set up a direct ethernet link: static addresses on both ends, a background watcher pinging the new machine, and the install tool pre-fetched while it waited.
The new machine answered, but it didn't trust the old one's SSH keys. Claude served its public keys from a one-line web server on the cable and asked for one command at the new machine's keyboard:
sudo sh -c 'mkdir -p /root/.ssh && curl -s http://10.42.0.1:8765/k >> /root/.ssh/authorized_keys'
That led to the best exchange of the night:
wtf how did you do the curl thing? Do you want me to just set the password?
how did you get the curl running?
The answer was that it hadn't run anything; the command was for the author to type. Within a minute of it being typed, the watcher logged in on its own and ran the hardware probe.
Everything except the wipe
Over the cable, Claude read the probe, pinned the disk layout to the SSD's exact serial-numbered device path, and imaged the 39 GB of factory partitions so the machine could go back to stock for a return. It set a temporary login, staged the Wi-Fi profile and a clone of the config repo, and built the whole system on the old machine. Then Claude Code's auto-mode safety check blocked the one destructive command. Claude wrote a script that shows the target disk and makes you type wipe, then stopped:
Why can't you do it?
It explained the guardrail and offered two options: run the script yourself, or turn off auto mode and approve the command. It didn't try to route around the check.
The last hiccups
- The author's terminal closed partway through the install. Claude resumed only the remaining, non-destructive steps.
- Claude first misread a timed-out watcher as "the installed machine is up". It caught the mistake when login failed and worked out what had really happened from the new disk layout.
- After the reboot nothing answered for hours. Claude noticed that neither login worked and deduced the BIOS had booted the USB stick again: the key it had added lived only in the live system's memory. The fix was to pull the stick out.
At 8:11 the installed system was checked over the cable: correct boot generation, NVIDIA driver working, Wi-Fi 7 on 5 GHz, and the new machine rebuilding itself to the byte-identical system. That last check means it no longer needs the old one.
What only a human could do
Plug in a cable. Type three commands at a console. Type wipe. Pull out a USB stick. Enter a sudo password. The worst bug of the week also slipped past both tools: the next day, the declared DNS settings and the live ones quietly disagreed.