Projects

Open-source projects and tools I've built or contributed to.

Tokenz

Claude Code and Codex usage in the macOS menu bar

A menu bar app that puts Claude Code and Codex plan usage side by side, a 5-hour percentage and a weekly underline for each, and counts the tokens both tools' logs on the Mac record for today, the last 7 days and the last 30. It reads only files already on the Mac, makes no network requests, and shows a missing reading as missing, never as zero.

SwiftSwiftUImacOSHomebrew cask
MIT · Oct 2026 · v0.1.0 · [source] · [the post]

GOVERN

A second brain that shows its work

Six principles for trusting an AI-run knowledge base, and the starter kit that puts them in place: one script that lays out the folders and installs eleven commands for Claude Code, an onboarding interview that writes the rulebook around your own gates, a runner that says plainly when an unattended pass did not run, and an eval suite that checks the kit against its own claims.

BashClaude CodeMarkdownlaunchd
MIT · Sep 2026 · [source] · [the framework]

sipario

A conference talk as one markdown file, rendered in the browser

A deck engine pulled out of a talk: you write one deck.md, and a server renders it on every request and reloads the page when you save, so there is no build step. It ships the format, the renderer and its checks, and a presenter window, but no templates and no design: those belong to the talk.

JavaScriptNode.jsMarkdown
MIT · Sep 2026 · v0.4.0 · [source] · [live] · [the post]

Quadra

A tiling window manager for macOS in the Hyprland mould

A keyboard-driven tiling window manager for macOS: dynamic tiling with three layouts, five workspaces per display, groups, a scratchpad, a bar on every display, and a text config that reloads live. It is built on the stock Accessibility API only, so it never asks you to disable System Integrity Protection, and every frame it moves is journalled first, so quitting puts every window back where it was found.

SwiftmacOSAccessibility APIHomebrew cask
MIT · Sep 2026 · v0.1.0 · [source]

Veglia

An uptime monitor that records its own downtime

A small Rails app that sits on a machine at home and asks the internet once a minute whether it is still there, probing the gateway, DNS and HTTP separately so a red light says which thing broke. It reads the kernel boot time on every check, so the minutes it was not running are reported beside the uptime figure instead of counting as healthy.

RubyRails 8SQLiteHotwireTailwind CSSlaunchd
MIT · Aug 2026 · v0.1.0 · [source]

passkeyed

Passwordless passkey authentication for Rails

A Ruby gem that adds passwordless, usernameless passkey (WebAuthn) sign-in to Rails apps, built on webauthn-ruby. There is no mountable engine hiding the flow: you get a model concern, a controller concern with four methods, and a Stimulus controller, and you write your own routes and views.

RubyRailsWebAuthnStimulus
MIT · Jul 2026 · v0.1.0 · [source] · [live]

Slink

Self-hosted link shortener with click analytics

A self-hosted link shortener with click analytics, built on Cloudflare Workers and D1. Public short-link redirects sit alongside a Cloudflare Access-protected React dashboard and a JSON API.

TypeScriptHonoCloudflare WorkersD1Drizzle ORMReact
MIT · Jun 2026 · v1.0.0 · [source] · [live]

PresenterNotes

Speech-driven presenter notes for macOS

A focused macOS app that shows your presenter notes one slide at a time and advances as you speak: voice recognition triggers the next slide when you reach a section's closing words. It adds a validating editor, a teleprompter mode, and printable handouts.

SwiftmacOSSpeech recognition
MIT · Apr 2026 · v1.0.0 · [source]

Learning Notes