How I use
computers.
This has been a line in my blog-ideas note since 2021: “Overall How I Use Computers”. I kept not writing it, because the setup never sat still. It still doesn't. But it has settled into a shape I can describe end to end: a pile of machines that all behave the same, some unusual ways of typing, and a lot of agents doing the work.
I The pile of machines
I have 29 machine configurations in one Nix flake. That covers desktops, handhelds, a tablet, a laptop, a few servers, nine WSL boxes I use for work, a Mac, and five Android devices: phones, a dual-screen, a tablet and an e-ink one. Each machine is declared with a type, like System.NixOS.X86 or System.NixOnDroid, and gets the modules for its platform. If I want a tool everywhere, I add it once and run cltv switch.
The phone runs nix-on-droid, so it has the same shell, prompt, terminal, colours and packages as the desktop and the Mac. It's all Nord. Screenshots from different devices look like the same computer, and my hands know where things are on each of them.
The spoils go to those most able to wield the materials provided by the environment toward the task of automating the mundane.“Work is Factorio”, December 2025
This turned out to matter more for agents than for me. When an agent builds a tool on one machine, it's already packaged for all of them.
II Hands
I type on a lot of different things. On the phone I use Omni, a fork of Unexpected Keyboard that Claude Code wrote for me. It floats over apps, resizes, and loads layouts that Nix generates, and omni-cli can type into it from another machine. I also scroll with a cheap Colmi smart ring, steer agents with an 8BitDo Micro gamepad, and use mini Bluetooth keyboards when I need real keys.
The one I use most is a Pebble Index ring. I press it and say the thing. A few seconds later my earbuds say “filed”, and the note is either a task on the right board or a message to the agent already working on it.
III Coding on the phone
There are around twenty-five Android apps in the setup. They include a floating window manager (Flotilla), a terminal into nix-on-droid (NOD Term), X11 and Wayland hosts, a PulseAudio server so any machine can play through my earbuds, Tailscale on the watch, and the clients for Cacophony and Culture.
Every app is a Nix app. nix run .#apk builds it, and a git tag signs it and ships it to Play internal testing. So an agent can go from an idea to an app on my phone without anyone opening Android Studio.


IV Coworkers
Cacophony sits in the middle. Each project gets a task board, a message bus and a lifecycle manager. A daemon runs on every machine: local apps talk to their own daemon, and the daemons talk to each other over mutual TLS. I write down what I want, as a bead, a voice note or a markdown file. An agent claims it, builds it in its own clone on its own branch, and lands it as a pull request.

Composable components with clear separation. Unix philosophy for everything. Remote agnosticism for everything.the design note, 16 March 2026
The pieces around it each solve one problem. Beads is the shared task list, so no two agents take the same work. Caravan is a merge queue with an agent in it, because fifty pull requests a day will conflict with each other. pi-daemon keeps thousands of sessions asleep in one process until a message wakes one. Paratenic lets anything attach to a running agent over the open Agent Host Protocol.
That last one changed how I think about agents. In March, each agent was a process in a terminal and messages arrived as typed keystrokes. Now an agent is a session I can pick up from the terminal, a browser, my phone or my watch.

V Eyes closed
A lot of this works without a screen. aish is a shell that talks: I run commands or ask questions, and it summarises the output out loud. Agents narrate what they're doing into my earbuds through a speech daemon, which plays through the phone. The first version of this, io-mcp in February, let me drive Claude Code with the scroll ring and earphones on a walk.
Agent IO in its demo studio, recorded while driving it with the keyboard.
All of that speech goes to one place. The phone runs a Pulse audio server with a sink called cacophony; every other machine points PULSE_SERVER at it, so an agent on a desktop in another room speaks into my earbuds, and the phone's microphone feeds dictation back to whichever machine asked. It's declared in the same Nix config as everything else.
VI Seeing
Panopticon is a macOS overlay: press ⌥Space and the desktop shrinks into a CRT next to an agent that can see it, rewind it and click on it. tendril gives any agent the same ability from the command line.
The Cacophony TUI draws with images as well as characters: glass chips, layered light and, in the ultra-v2 preset, moving reflections, all through the kitty graphics protocol. Every image is cached and deduplicated and only re-sent when it changes, so the animated preset still renders a frame in under 3 ms. The same screen can wear any of the material presets, which are small files over one shared library.
The real TUI, ultra-v2 with animation on, against a synthetic fixture: 1,913 kitty image uploads in 20 seconds.




VII Play
Drums is a browser rhythm partner. It listens to my electronic kit, follows the tempo, and plays bass, chords and a pulse along with me. You can try it on a normal keyboard at a.skh.am/tools/drums. llmbience makes background music locally, and midi2hid lets me play Steam games with MIDI instruments.
Drums, recorded from the live site while playing the keyboard pads.
VIII Ideas, then things
Most of this started as notes in org-roam years before I had the time to build it. Agents gave me the time.
i use computers all day. what is painful for me? then make a 10x better version of thatmy project-ideas note, 2021
| note | what exists now |
|---|---|
| Voice-Operated Computing 2021 | aish, the speech daemon, the Pebble ring triage |
| Programming On-The-Go 2021 | Omni, Culture on the phone and watch, Agent IO |
| Terminal emulator and text editor, “ask” and “ham” 2023 | aish, kittui |
| Typed Nix 2025 | collective-lib and typed machine declarations |
| Subvocal AI 2025 | spoken summaries instead of diffs, whisper-input research |
| “I use computers all day. What is painful? Make a 10× better version.” 2021 | this whole page |
IX Numbers
Commits per month across my personal repositories. Opus 4.5 came out in late November 2025, and Cacophony started on 16 March 2026. From June, agents landed their work as pull requests, so the pull-request count is the better measure after that point: 5,187 of them in 2026.
Where to start: the atlas covers every piece and why it exists. The films are nine months since Opus 4.5 and everything, on one tape.