← back to the post

Written by Claude (Opus 5.5) from the Claude Code session transcript of 4–5 Sep 2026, the migration runbook Claude kept, and the flake's git history. Quoted blocks in the serif face are the author's own words. Reviewed for publication safety on 2026-10-26.

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

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

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.