Projects

Open-source, see my GitHub profile

๐ŸŒž Adaptive Lighting: Home Assistant custom component for auto-adjusting color temperature and brightness of lights based on daylight. ๐ŸŒ™

Many things in my house are automated using the Python Home Assistant framework. I’ve built some interseting automations and app, see my config files and AppDaemon apps 🏠 🤖

adaptive: tools for adaptive parallel sampling of mathematical functions to speed up simulations by orders of magnitude โš™๏ธ

๐Ÿ“š tuitorial: Create interactive code tutorials that run in the terminal, with syntax highlighting and step-by-step focus, configured in Python or YAML. ๐Ÿ–ฅ๏ธ

๐Ÿ’ป rsync-time-machine.py: Your cross-platform, flexible, and incremental backup solution using rsync, offering Time Machine-style backups with added versatility. ๐Ÿ’ฝ๐Ÿš€. ๐Ÿ”„

๐ŸŒฑ miflora: Python library for reading moisture, temperature, light, and conductivity from Xiaomi Mi Flora plant sensors over Bluetooth. Originally created under open-homeautomation; I now maintain it. ๐ŸŒก๏ธ

๐Ÿง  MindRoom: Self-hostable AI agents that live in Matrix chat rooms, with persistent memory and 100+ tool integrations. Matrix bridges bring the same agents to Slack, Telegram, WhatsApp, and more. ๐Ÿ’ฌ

๐Ÿšœ Compose Farm: Run Docker Compose stacks across multiple hosts over plain SSH, with no agents to install. Stacks stay plain folders you can keep in Git, and cf apply makes the hosts match your config. ๐Ÿณ

๐Ÿงฐ dotbins: Keep CLI tool binaries in your dotfiles, downloaded from GitHub releases for macOS, Linux, and Windows. No package manager or sudo needed. ๐Ÿ“ฆ

unidep: Unified Conda and Pip Dependency Management ๐Ÿ

๐ŸŽ™๏ธ agent-cli: Local-first AI tools for your desktop: voice transcription to the clipboard with a hotkey, autocorrect, text-to-speech, RAG and memory proxies, and agent-cli dev for running coding agents in parallel Git worktrees. ๐Ÿค–

๐Ÿ  dotfiles: My NixOS, nix-darwin, Homebrew, and zsh setup that I use on every machine, with modern CLI tools installed through dotbins. ๐Ÿš

aiokef: An asyncio Python library that provides an API to communicate KEF speakers ๐Ÿ”ˆ

thesis-cover: each unique copy is designed using quantum simulation data, neural networks, machine learning, and Python

๐Ÿ““ opennb: Open Jupyter notebooks from GitHub repositories or URLs directly in Jupyter. Combined with uvx, the notebook’s dependencies come along too. ๐Ÿš€

adaptive-scheduler: Run simulations adaptively on many cores (>10k) and easily manage starting and restarting using mpi4py.futures, ipyparallel, or dask-mpi 🎉

๐Ÿ”ข pfapack: Efficient numerical computation of the Pfaffian for dense and banded skew-symmetric matrices, packaging the algorithms from arXiv:1102.3440 by Michael Wimmer. ๐Ÿงฎ

instacron: Instagram for the lazy - automatically upload a photo to Instagram with autogenerated caption containing #hashtags, a quote, and camera information ๐Ÿ“ธ๐ŸŒ…

๐Ÿค zfs-tenant: Give a friend a quota-capped corner of your ZFS pool for their raw encrypted backups, without giving them a shell. Their keys never leave their house, so you can’t read what they store. ๐Ÿ’พ

yaml2bib: Convert a readable yaml file with DOIs only to a properly formatted BibTeX file. ๐Ÿ“ƒ

๐Ÿ” pixi-to-conda-lock: Convert a pixi.lock into a conda-lock.yml, so you can use the fast pixi solver and still ship a conda-lock file. ๐Ÿ

๐Ÿ•ธ๏ธ graphviz-anywidget: Interactive Graphviz widget for Jupyter with search, highlighting, and graph traversal, rendered by Graphviz compiled to WebAssembly. Built to visualize pipefunc pipelines. ๐Ÿ”

๐Ÿ–ฅ๏ธ slurm-usage: Save SLURM job efficiency metrics to Parquet before SLURM purges them after 30 days, and chart CPU, memory, and node usage per user and group. ๐Ÿ“ˆ

๐Ÿ”Ž CodeStructure: Extract Python code signatures without execution, providing a clear structure overview. ๐Ÿ“š

๐Ÿ“‹ clip-files: Copy all files of a given type in a project to your clipboard, with their paths and a token count, ready to paste into ChatGPT or Claude. ๐Ÿค–

hpc05: a thin wrapper around ipyparallel to easily start workers remotely on a HPC cluster ๐Ÿ–ฅ

ipynb_git_filters: remove ipynb’s output on each commit to keep a clean history. Not very smart but very useful ๐Ÿค–

๐Ÿท๏ธ calver-auto-release: GitHub Action that creates a release with a Calendar Versioning (CalVer) tag on every commit to main. ๐Ÿ“…

๐Ÿ”‘ zfs-unlock: Unlock encrypted OpenZFS datasets automatically after every reboot, while the passphrases stay on a separate device (a Raspberry Pi, say) and travel over a restricted SSH channel. ๐Ÿ”’

๐Ÿงฎ trueloc: Count the lines of code you wrote since any date, from your GitHub pull requests and direct commits. It adds up every commit in a PR, so squash merges don’t hide the work. ๐Ÿ“Š

โฌ‡๏ธ gh-download: Download files or folders from GitHub repositories, including private ones, using your existing gh CLI login. ๐Ÿ“

numthreads: Simple Python package to set the number of threads used by OpenBLAS, MKL, OMP, NumExpr, and Accelerate

๐Ÿ“ค fileup: Upload and share a file from the terminal with fu myfile.txt; the URL lands in your clipboard and the file can expire automatically. ๐Ÿ”—

๐Ÿ•ต๏ธ privata: Static checker that finds Python code that looks public but is only used privately, so helper() becomes _helper() and __all__ stays honest. ๐Ÿ

๐Ÿ”Œ matrix-mcp: Lets Claude Code, Codex, and other MCP clients read and write Matrix chats, including end-to-end encrypted rooms, so local coding agents can join MindRoom conversations. ๐Ÿ’ฌ

๐Ÿ—ƒ๏ธ github-backup-sync: Mirror every GitHub repository you have access to into local bare clones, with the gh CLI handling authentication. ๐Ÿ’ฝ

๐Ÿ’ฌ matty: Matrix chat CLI client where every action (reading threads, replying, reacting) is a single command, which makes it easy to script and easy for AI agents to use. ๐Ÿค–

โšก pytest-shm: pytest plugin that puts temporary files on the /dev/shm tmpfs, so test suites that fsync stop waiting on the disk. ๐Ÿงช

WenFire: WebApp visualizing your path to financial independence, built with personalizable assumptions and interactive visualizations. Ignite your journey to early retirement! ๐Ÿ’ธ