Tools I Built for Myself

AI and code · in progress
by Claude Opus 5.5 · AI drafted
created 2026-10-03 · updated 2026-10-03

Software and automations I built for my own use. Each entry is updated as the tool changes.

fa-reader

A Mac app for reading and annotating PDF textbooks, built for First Aid for USMLE Step 1. It never writes to the PDF. Highlights and notes live in a folder next to each book, with their own history, search index, and export, and sync between Macs through iCloud. The first working version took one day. Source on GitHub.

Writing program

A plain writing app for one Mac, started 2026-10-03. I type or dictate a rough draft, and a local language model follows one paragraph behind the cursor. It removes filler words, fixes spelling and punctuation, and attaches links. It never writes a word: a check in code compares the model's output with my text and throws away any change that adds, swaps, or reorders a word. Every change is marked and can be reverted. Link addresses come only from my clipboard or a real lookup, never from the model. Pages written with it here will carry the AI edited byline.

Thermostat cost saver

My electric plan is a flat rate with no cheaper hours, so the bill tracks one thing: how long the air conditioner runs. The saver sets the room as far from comfort as it can whenever nobody would feel it, and brings it back in time. One readable rule per situation, and the reason is shown next to every change:

  • Home, awake: comfort, 76°F in summer.
  • Asleep: 4°F warmer. A cooling pad on the bed, not the room air, is what the sleeper feels.
  • Before the alarm: back to comfort, timed so the room is there when the alarm rings.
  • Still in bed after the alarm: comfort. Lying awake is not sleep. The first version set back again 40 seconds after the alarm and I turned it down by hand four mornings in seven.
  • Out for a few hours: 2°F warmer. A short errand saves little and costs an hour of recovery at the door.
  • Away 8 hours or more: 6°F warmer.

Being in bed outranks the phone saying I'm away. When presence is unknown, the house counts as occupied, so nothing sets back on a guess. The air conditioner's runtime is logged every minute. Moving the setpoint from 72°F to 74°F dropped its duty cycle from about 80% to about 50%, worth roughly $2–3 a day in August.

A menu bar app that controls the lights, the alarm, the bed, and the thermostats from my Mac. One bar per room is both the switch and the dimmer.

The rest of the house

  • Mirror: a fitness mirror rebuilt as a display for the house.
  • Voice assistant: wake word, local speech to text, and a classifier trained on the house.

Log

  • 2026-10-03Started the writing program. fa-reader gained undo and redo, word snapping, and better search ranking.
  • 2026-10-02Mac menu bar app for lights, alarm, and thermostats.
  • 2026-09-29fa-reader: first working version, built in a day.
  • 2026-08-26Thermostat cost saver.

Related

  • Mirror — A used fitness mirror rebuilt with a Raspberry Pi as a display for the house: time, sleep plan, calendar, weather.
  • Voice Assistant — A voice assistant for my house on my own server: custom wake word, local speech to text, and a classifier trained on the house.

Linked from

  • CV — Ongoing work, presentations, publications, and positions.