Tonight I connected my old Commodore PC20, a dusty 8088 machine running MS-DOS 5.0 to Claude via a null modem RS232 cable. No internet on the Commodore side, just a serial port and a QuickBASIC program I and my friend Claude wrote to shuttle bytes back and forth.


The setup is simple in principle: a Python bridge on Windows talks to the Claude API, wraps commands in a little protocol, and pumps everything over COM1 at 9600 baud. The Commodore polls the serial buffer in a tight loop and responds. Claude can list directories, read and write files on the old hard drive. It feels absurd and somehow entirely right.
Luckily I had QuickBasic on it. Claude wrote a small file reciver code in just 10 lines BASIC and then a python script that sent the payload of the AGENT.BAS code. That code paired with a python script for a bridge (still over RS232) made the whole thing work.
What surprised me most wasn’t perhaps so much that it worked, it was how much fiddeling it took to actually get there. Getting the facts right via Claude in that era isn’t a walk in the park. For instance, COPY CON reads from the keyboard, not the serial port (obvious in hindsight). Swedish national charset maps the pipe character to ö. QuickBASIC compiled EXEs can’t RESUME to a label next to a DO loop. Each of these are tiny stupid pebbles in the shoe you don’t see coming. That said, still impressed that claude managed to spit out 200 lines of basic code in one go that actually almost worked immediately (only two tiny issues with the code).
But there’s something satisfying about running a 2025 language model on a machine from 1985, mediated by a protocol designed to connect dumb terminals to mainframes. The Commodore of course doesn’t know it’s talking to an AI. It just sees bytes arriving on COM1.
Next up: getting the machine to update itself so that it can transfer new versions of its own agent software via the same serial link it uses to think.