Automation & AI
I like making repetitive work disappear.
Scripts, integrations and AI-directed builds; 7 machines at home run from one repository. I run AI agents and harnesses daily and use generative AI for anything I can.
What I handle
- Declarative infrastructure, one repository describing every host
- Shell scripting and scheduled jobs
- Monitoring and alerting kept short enough that people read it
- Wiring systems together where no supported integration exists
- Reading and writing structured data: logs, exports, reports, registers
- Linux hosts, services and the small jobs that keep them predictable
- Directing AI tooling: writing the brief, checking the output, deciding what not to hand over
- AI agents and harnesses: opencode, Claude Code, Codex, Gemini CLI — used daily, disclosed on every build
- Generative AI for research, writing, code and data tasks wherever it helps
- Tokens
- 3.92B in · 12.79M out
Through my agent harnesses to date. Includes cached context. Updated 29 September 2026.
The fleet at home
| Host | Role | Hardware |
|---|---|---|
| amalthea, metis, thebe, adrastea | Home kiosks | Toshiba TCxWave POS terminals, repurposed |
| europa | ZFS NAS, netboot, binary cache, remote management | HPE MicroServer Gen10, Opteron X3216, 8 GB ECC |
| callisto | Build and serve: PostgreSQL, MQTT, fleet builder | HP EliteDesk 800 G4, i5-8500T, 64 GB |
| pallene | Cloud builder | Kamatera VPS |
| Proxmox node | Virtualisation host: Home Assistant OS, n8n, smokeping | ThinkCentre M93p Tiny |
| t460s | Daily workstation | ThinkPad T460s, CachyOS |
What runs on a schedule
| Workflow | What it does | Cadence |
|---|---|---|
| Shift-change watchdog | Diffs the rostering calendar, alerts on changes inside 7 days | Hourly |
| Roster pipeline | Publishes the next shift to Home Assistant | Every 15 minutes |
| Infrastructure watchdog | SSH health checks across the fleet | Every 15 minutes |
| Cheap-power alert | Checks live energy pricing | Every 15 minutes |
| Morning digest | Prices, weather and infrastructure in one message | Daily 07:00 |
| Nightly export | Exports all workflows and encrypted credentials, keeps 14 | Daily 02:30 |
| Proxmox backup | Backs up the virtual machines, keeps the last 3 | Mon and Thu 03:30 |
Case studies
From a 1998 source dump to a clean-room Rust IRIX
The 6.5.7m kernel rebuilt from its source dump, the binary-only drivers relinked, and a Ghidra fork taught to read MIPSpro binaries.
jupiterOS
One declarative computer for a seven-machine home fleet.
The household automation estate
Eleven n8n workflows that run my life admin.
Fourteen hours on one build
A microarchitecture mismatch and an NFS fix.
LG webOS TVs inside Home Assistant
model-router
One OpenAI-compatible endpoint pooling LLM upstreams, tested with five chaos drills.
ha-linux-agent
A Rust daemon with ten backends that puts Linux hosts inside Home Assistant.
Lab notes
Fourteen hours on one NixOS build: a microarchitecture mismatch, eleven failed closures and an NFS attribute-cache fix, documented in a 505-line handoff.
Hiring for automation or AI integration? Tell me about the role.
I'll reply with something specific.
0
Open a window and its geometry shows up here.
No events yet.
The desk blanks itself after a quiet spell, then runs one of thirteen effects named after the IRIX screen savers. Move the pointer or press a key to wake it; lock it and only Unlock brings it back.
Settings load with the desktop.
The environment
About this desktop
jupiter.au is set up as a working desktop: the Toolchest, the objects, the status strip and the windows stay with you on every page. Drag a title bar to move a window, pull any edge or corner to resize it, drag it to the side of the desk to snap it into place, and right-click a title bar for that window's menu. Right-click the desk itself for the root menu.
Toolchest
The panel in the corner carries the classic seven menus — Desktop, Find, People, Applications, Shared Resources, System and Help — above the command field. Collapse it to the chip with the arrow in its title strip, or press Ctrl+K to bring it back.
Desks
Four desks, as 4Dwm kept them. Each surface belongs to the desk it was opened on — switch with the status strip, the Toolchest, or Ctrl+Alt+1…4. The Desks Overview window maps all four at once.
The catalogue
The Icon Catalogue lists every application the desk knows — click to select, double-click to open, right-click for the icon's own menu. The objects on the right edge can be dragged into a new order, and the one that will take the drop turns royal blue.
Customise
Desktop → Customise… holds the background (signal wash, flat or dim), the bevels (flat 2026 or the classic two-line), and the way to the Screen Saver. Choices stick to this machine.
Screen saver
Thirteen effects named after the IRIX screen savers, with a timeout, a Random mode and an optional lock. Open the Screen Saver window to change them.
Desks
Four desks, as 4Dwm kept them. Each surface belongs to the desk it was opened on — switch with the status strip, the Toolchest, or Ctrl+Alt+1…4.
Winterm
Type help for the commands — ls, open,theme, date.
Loading the desks…
12 icons shown; sorted by Name
No audio hardware on this host.
Background
Bevels
Screen saver
The timeout, the effect and the lock live in the Screen Saver window.
