Workshop · back to the section

Systems of my own

An e-reader's firmware, the lamp in my room, a music player, a subtitle translator and a time gate: systems I built with AI for my own life. This page is their map, and it shows in one place when each of them last changed.

Written by
Kristóf Karner — independent developer, Budapest
Updated
26 October 2026

Each of them started with a sentence I said about how I want to live. About the lamp's evening light, it was this:

“it should by no means start any whiter than what was on before” Kristóf Karner, 20 October 2026 — translated from Hungarian

In the lamp's controller this became a rule: in the evening the light only moves towards warmer, and it never starts whiter than what was on before. The other systems were born the same way. I built them with AI. I decided what they should do, and how I check them. I can tell you what they do, and how I know they work.

How they connect

The systems touch each other. My calendar turns into an e-reader book, the film player tells the lamp what's happening, and the same Claude translates film subtitles that explains a looked-up word on the e-reader.

Systems of my own and how they connect Notion and Claude connect to the e-reader through the cloud bridge; Claude also translates the film player's subtitles; the film player signals the lamp; the radio's audio engine moved into the music player; the time gate stands on its own. Claude is the shared component. Notion calendar and notes Claude the model, on call ig-gate time gate for the Mac cloud bridge Cloudflare Worker IINA films in two languages Light three bulbs, warm light Xteink e-reader, own firmware Listener offline music player Underground Radio curator, on hold 1 2 3 4 5 6 1 · my calendar becomes a book, and what I have read gets ticked off 2 · books, firmware and the reading log travel through a mailbox 3 · the meaning of a looked-up word, and the next day's recap 4 · if a film has no Hungarian subtitles, Claude translates them 5 · when a film starts, the lamp dims 6 · the player's audio engine moved over from the radio
  • Notion → cloud bridge → Xteink my calendar becomes a book, and what I have read gets ticked off; books, firmware and the reading log travel through a mailbox
  • cloud bridge → Claude the meaning of a looked-up word, and the next day's recap
  • Claude → IINA if a film has no Hungarian subtitles, Claude translates them
  • IINA → Light when a film starts, the lamp dims
  • Underground Radio → Listener the player's audio engine moved over from the radio
  • ig-gate stands on its own, and applies to the whole machine

the highlighted row is the shared component: Claude

The systems

Xteink

What it is
A small e-reader running my own branch of the open-source CrossPoint firmware, and a cloud bridge that connects it to Notion and Claude.
Made for my life
It builds my reading from my calendar, ticks off what I have read, and the next day sums up what I actually saw.
Updated
26 October 2026
Article
The firmware the AI tried to talk me out of

IINA and sound

What it is
Extensions to the open-source IINA film player and its mpv engine, and an equaliser of my own.
Made for my life
One key switches between Hungarian and English subtitles. If a film has no Hungarian subtitles, Claude translates them from the film's own.
Updated
26 October 2026

Light

What it is
Three bulbs in the ceiling lamp of my room. The Mac drives them.
Made for my life
It gives warm light only, stays off while it's bright outside, never starts whiter than what was on before in the evening, and never switches itself on at night.
Updated
26 October 2026

Listener

What it is
An offline music player for my own collection, with no recommendations.
Made for my life
DJ sets that run for hours carry on where they stopped. Where the program's name would be, there is a year: the week's average of when the tracks I listened to came out.
Updated
26 October 2026

ig-gate

What it is
A time gate for Instagram, YouTube and Facebook that applies to the whole machine.
Made for my life
Each opens only in its own window of time, and I don't enter Instagram through the feed but straight onto a profile.
Updated
26 October 2026

Underground Radio

What it is
The back end of an underground electronic internet radio in the making.
Made for my life
I listen to and tag every track myself. The machine builds the programme from that, by time of day, with no repeat for three days.
Status
On hold since 25 September 2026.

Connections and small tools

What it is
What holds the systems together, and a few smaller helpers on the machine.
Made for my life
The keyboard's play key goes to whichever player is open. A skill writes the accompaniment for a silent film onto the memory card, and the Listener plays it from there. A watcher remounts my cloud storage when it drops.
Updated
26 October 2026

How they are made

It starts with a sentence and carries on in a conversation. The AI agent, mostly Claude Code, works on my machine, inside the project's folder. It rarely writes a new program: most of the time it builds into an existing open-source tool. For the e-reader that's the CrossPoint firmware, for films IINA and mpv, for the keyboard Hammerspoon, and for the lamp the bulbs' own local protocol.

Then I try it on the real device and say what's wrong — that's the larger part of the work. Whatever becomes a lasting rule goes into the project's notes, the CLAUDE.md and the agent's memory, so the next session starts with it. My configuration is text: notes, memory and skills.

I could show the code, but not the configuration: it holds my schedule, my taste and my limits. That's why every project folder lives in a local git repository with no remote, and a hook refuses every push.

How it stays current

Every evening a snapshot is taken of every project folder. Once a week a script goes through what changed: the commits, the projects' notes and the session summaries. There is no language model in it. It collects what changed, when and why, and leaves the content of the configuration alone.

If a change is worth writing about, an AI session drafts the update in both languages, on a separate branch. It goes live only after I have read it and said yes. That's why every system carries a date: if a system stops, or the updating gets stuck, the date gives it away.

Changelog

  • 26 October 2026 — The series started: this map, a piece about what my sentences turned into, and the first system article, about the e-reader.

Glossary

The words of the series, in one place. Many of these terms have no settled Hungarian form yet, so each comes with its Hungarian counterpart, and with where it shows up in my systems.

agent (ágens)
An AI program that uses tools and keeps working on a task until it reaches the goal. For me, Claude Code, working on my machine, inside the project folder.
session (munkamenet)
One conversation with the agent, for one task. When it fills up, the agent summarises it and carries on from there; that is compaction.
memory (memória)
The agent's own notes about a project, one fact per file. The next session starts with them.
skill
A folder with a description and scripts that the agent loads only when it needs it. One of mine writes the accompaniment for a silent film onto a memory card.
hook (horog)
A command that runs by itself before or after an event. In my project folders, a git hook refuses every push.
MCP
A standard connector through which the AI reaches other programs. Through it, Claude reaches my Notion, and through it the chat version of Claude worked with the Mac's files when the lamp was built.
fork (saját ág)
My own copy of an open-source project, developed my way. For me, the kk branch of the CrossPoint e-reader firmware.
upstream (felfelé eső projekt)
The original project the fork started from, where a fix that helps everyone can go back. For me, CrossPoint.
OTA update
An over-the-air update. My e-reader installs new firmware by itself when it goes to sleep, with a trial period, and falls back to the old one if the new one fails.
cloud bridge (felhős híd)
A small program in the cloud that sits between a device and the services, so the services' keys don't have to be on the device. Mine is a Cloudflare Worker between the e-reader, Notion and Claude.
lethal trifecta (halálos hármas)
Private data, outside content and an outbound connection in one system; with all three, a malicious text can leak the data. The term is Simon Willison's. My e-reader's bridge touches all three.
comprehension debt (megértési adósság)
What piles up when the person directing the AI doesn't understand what it built: every fix becomes another request. Against it, I keep notes and a decision log for every project.
local-only git (helyi git)
Version control that lives only on the machine, with no remote. Every one of my project folders is like this, because the configuration can't leave the house.

Questions on the topic

Do you need to know how to code to build a system of your own?

I built my systems with AI, and most of the work was deciding: what it should do, and how I know it does it right. What helped most was being able to say exactly what I wanted, and trying it on the real device.

How much work is a system like this?

Days, not minutes. Between 31 May and 21 October 2026, AI worked on my systems on 71 days, about 121 hours in Claude Code. About 45 of those hours went into the e-reader, across 14 days.

Why don't you publish the code?

Some of the code could be published, and some of it could go back to the original projects. The configuration can't: it holds my schedule, my taste and my limits. That's why every project lives in a local git repository with no remote.

What happens if the AI provider changes its terms?

Then the cost of maintenance changes, and the systems stay: the code is on my machine and runs without the AI. I work with simple files, few dependencies and notes written for the agent too, so the work can carry on with another tool.

← Back to the Workshop