
Personal AI infrastructure
Claude Code sessions on a cloud VM, driven from a phone or a browser, with long-term memory, notes, scheduled agents that run my homelab, and a voice line. The core is closed source for now; the clients are open.

Claude Code sessions on a cloud VM, driven from a phone or a browser, with long-term memory, notes, scheduled agents that run my homelab, and a voice line. The core is closed source for now; the clients are open.

A self-hosted mail client with an AI layer. A language model decides what is spam, rules handle the rest, and PostIMAP mirrors the mailboxes into PostgreSQL in both directions.

Every request, pod log, process start, network flow and login of my cluster lands in one Elastic cluster. Detection rules and a judged security-news feed wake AI agents that triage, tune and contain, and a second model watches the agents.

Three Hetzner servers on Talos Linux, managed by Flux, with replicated storage, apps for family and friends, and Borg backups. Every change goes through git.


Kubernetes backups to Borg. Snapshot a volume, clone it and ship it to a Borg repository, installed as a Helm chart.

A hands-on guide to a three-node Elastic Stack on Talos Linux with the ECK operator, walked through end to end on fresh VMs.

Text, images and files between an iPhone and a Linux laptop, in both directions, end-to-end encrypted, through your own relay.
A multi-level web search MCP server.
Connects Twilio phone calls to a realtime voice model over WebSocket.
Keeps selected 1Password items in step with SOPS/age vaults on disk.
Estimates the daily ingest volume of an Elasticsearch cluster, with the same formula as Kibana's Streams UI.
Scrapes documentation sites to Markdown for offline reading.
A GNOME Shell extension that pins windows always-on-top by rules.
A Chrome side panel that shows your tabs in your own order, independent of the tab bar.
My CV in LaTeX, and a one-page template anyone can reuse.
Automated Borg backups of Home Assistant OS to BorgBase, deployed with Ansible.

How I turned my old Gazelle city bike into a randonneur, in pictures.

A Nextcloud app that moves incoming shares into a folder of your choice. PHP backend, Vue frontend, built and published to the Nextcloud app store by CI.

A collection of smaller scripts for Linux desktops and servers that never got a repository of their own.

Python scripts that repair old MP3 albums where the end of one song is stuck to the start of the next.