side projects

~/HOME/SIDE-PROJECTS/OPENCLAW

openclaw projects

One self-hosted OpenClaw agent — split across nine specialized workspaces — shipped everything below. Public websites, a house that reports its own status, school logistics with approval gates, meal logging from photos, pool chemistry math, and the infrastructure that keeps all of it honest. Compiled from the agent's own memory archives.

projects
29
workspaces
9
categories
6
chat interface
1

01 / websites & public builds

1 project

Helicon Works

01

A consulting site, built end to end

  • Systematic domain hunt with live availability checks — every Foundation-canon name was squatted; helicon.works cost $4.18
  • DNS set through the Namecheap API; GitHub Pages cert stall root-caused to a DNS propagation window
  • Full SEO plumbing: JSON-LD graph, a programmatically generated og-image the agent vision-verified, sitemap, robots
  • Daily PostHog stats cron plus a weekly Search Console learner that proposes title/description improvements — report-only until it has real data

02 / household & home automation

5 projects

Home Assistant Command Center

02

The whole house, one WhatsApp message

  • “house status” polls every entity and flags what matters: unlocked doors, lights left on, car unlocked, thermostat anomalies, pool, presence
  • Lights, locks, garage, thermostat, scenes, and the Flo water valve — with hard-won entity-mapping rules encoded in agent memory
  • Alerts flow the other way too: HA posts events over Tailscale to the agent, which routes them to the family group
  • Standing rule after one wrong garage-door entity: verify state after every command

Wallboard Dashboards

03

Lovelace boards edited by API, verified by read-back

  • Network health, water status, doors, temperatures, Tesla, stocks — all in one consistent wallboard design system
  • Custom leak-summary sensor pushed from the Shelly Cloud API because native HA only saw two of four detectors
  • Kids' carpool and next-day school schedule cards fed by their own pipeline
  • A “Token Overlord” card: Claude / OpenAI / Gemini API health scraped from status pages

TRMNL E-Ink Dashboard

04

An 800×480 e-ink panel the agent designs and feeds

  • A daytime-windowed cron pushes weather, markets, and today's + tomorrow's calendar — markets from CNBC because Yahoo and Stooq block datacenter IPs
  • Restyled from color to pure black/white for the monochrome panel — then read the live config back and asserted the old color literals were gone

Tesla Helpers

05

Where's the car — in words, not coordinates

  • Live reverse-geocoded address (“Bordeaux Drive, Sunnyvale”) as an HA helper, built after stock sensors proved unreliable
  • Send a destination to the car's nav from chat
  • One config-include collision made every automation vanish — root-caused and turned into a standing rule

Rachio Sprinkler Watchdog

06

Built after catching Home Assistant in a false negative

  • The Rachio API's own last-watered data is the source of truth, not switch-transition guesses
  • Daily summary sensor (“💦 all scheduled sprinklers ran by 9:00 AM”) plus a 9 PM did-not-run WhatsApp alert

03 / family & school

4 projects

School Email Pipeline

07

School email in, approved calendar events out

  • Sunday cron parses the week's school email into schema-validated events and sends a numbered digest to the family group
  • “approve 3,4” resumes a paused pipeline that creates the events, invites the right co-parent, and sets 7-day signup reminders
  • Daily next-day schedule + carpool messages from five public ICS feeds and a shared sheet — live lookups only, because assignments change

Costco List

08

“addc arugula, eggs”

  • Conversational list management in the family group; one canonical script owns the state
  • Post-write readback is contractual — a rule added after “costco done” once reported success without clearing the file
  • Saturday cron sends the list and renders a PDF to the reMarkable for the store

Food Agents (His & Hers)

09

Send a photo of dinner, get calories and macros

  • Isolated vision-capable agent per person, with per-day JSON logs, photo archives, and “fix breakfast”-style corrections
  • The nightly summary's cold-start hangs became a reliability case study — the fix was lowering the timeout so the retry lands 90 seconds late instead of six minutes

Pool Chemistry Agent

10

Taylor drop-test readings in, exact doses out

  • Canonical pool spec in memory — 15,518 gallons combined — anchors both dosing and dilution math
  • Tracked stabilizer creep to 93 ppm, computed the partial-drain math, and verified the resulting 56 ppm with an independent lab test
  • After dosing, sets the variable-speed pump to 140 GPM to mix, then back down — encoded as a skill

04 / content & finance pipelines

5 projects

Twitter Agentic-Commerce System

11

A full niche-content machine for the agentic-payments beat

  • Eleven pipeline stages: discovery → sensing → scoring → clustering → drafts in a tuned voice → approval digest → posting → weekly review
  • One WhatsApp digest a day with numbered commands: “approve post 2 as thread,” “skip all replies,” “publish all”
  • Reply automation was built, then deliberately deleted — drafted replies weren't worth the review overhead. Post-only by design.

Paper Digest

12

Ten papers a day, maximum, ranked to taste

  • Daily research-paper digest ranked against a hand-tuned interest taxonomy (agent harnesses, reliability, tool use, memory; skeptical of swarms)
  • Fetch, rank, and notify as separate stages, with an eval log for ranking quality

Gmail Spam Defense

13

“spam <sender>” and it's handled

  • One chat command archives everything from a sender or domain and creates the Gmail filter, replying with counts
  • A daily scan previews its kill list in WhatsApp ten minutes before executing — touch a “spam-stop” flag to veto, “spam-allow” for a persistent whitelist
  • Jobs staggered off the 8:00 mark after cron contention was diagnosed from run-phase telemetry

Fintech Guild Weekly Recap

14

The group chat, summarized weekly

  • A weekly cron summarizes a professional WhatsApp group's discussion from synced history and delivers the recap through my personal account

Ballotpedia 2026 Election Research

15

All 55 California propositions, structured

  • Scraped every 2026 CA proposition page plus county measures into clean JSON/CSV — 44 fully extracted, 11 CloudFront-challenged pages honestly preserved as index-only
  • Campaign-finance report with parsed donor data for 14 measures, the rest classified by why the data was absent

05 / media & music

5 projects

Plex → Sonos Playback Stack

16

Anything on the NAS, in any of eight rooms

  • Reverse-engineered the URI form Sonos uses to play Plex tracks natively
  • Speakers addressed by direct IP because discovery is flaky and IPs are not — all eight rooms mapped
  • SoundCloud-on-Sonos chased all the way to the SMAPI auth wall — documented as a platform limitation, not solved

Beatport Set Importer

17

A DJ set name in chat becomes a Beatport playlist

  • Aggregates tracklists across MixesDB, 1001Tracklists, and SoundCloud timestamped comments, deduping across sources
  • Prepare/approve flow reports matched, ambiguous, and unmatched tracks before touching the playlist
  • Idempotent: reuses same-name playlists and adds only missing tracks

SoundCloud Integration

18

OAuth with PKCE, no browser required

  • Authorization Code + PKCE implemented as a manual copy/paste flow; tokens vaulted with an “ensure” command that refreshes only near expiry

Todoist ⇔ reMarkable Task Loop

19

Paper in, digital out

  • Down: a daily cron renders today's tasks to PDF and uploads to the tablet, with a post-upload invariant check that killed duplicate-document hell
  • Up: a vision model reads handwritten checkmarks off the annotated pages and completes the matching Todoist tasks
  • Uncertain marks are skipped, never guessed

Synology NAS & Music Library

20

261 GB of legacy iTunes, staged for rescue

  • Full NAS admin over a Python SSH helper — no system ssh existed in the agent's container
  • Audited ~19k MP3s and 286 DRM files; staged plan: snapshot → quarantine → beets + MusicBrainz retag → Plex rescan

06 / infrastructure & meta

6 projects

Voice Call Plugin

21

The agent can pick up the phone

  • Outbound calls via Twilio with a realtime voice model doing the talking
  • Barge-in and voice-activity tuning was the hard part — the config landmines are documented so they never have to be re-learned

Kai — Second Instance for Work

22

Work Slack gets its own agent, fully isolated

  • A separate deployment with zero overlap with the personal instance
  • Pattern worth stealing: a dedicated Tailscale sidecar container gives the second instance its own tailnet node and clean root URL

Lobster Workflow Engine

23

Determinism for the automations that matter

  • Critical automations moved from free-form agent turns to pipelines: deterministic steps, schema-validated LLM calls, resumable approval gates
  • Built from source when no package existed; shimmed and patched, with every patch documented to survive upgrades

Ops Hardening & Health

24

The agent watches itself

  • Daily VPS snapshots; a post-upgrade integration check dry-runs every cron, secrets provider, channel, and model, then diffs against pre-upgrade
  • Root-caused silent WhatsApp message loss to zombie sockets, and a runaway-spend incident to heartbeat prompts retriggering LLM turns
  • Secret hygiene: credentials read at call time, never written to files — the tooling's token-scrubbing is worked around, never bypassed

Personal WhatsApp Tooling

25

Sends and history sync through my own account

  • A whatsmeow-based CLI separate from the agent's channel: persistent store, allowlisted alias map, JID-resolution helpers
  • Operational gotchas (version-aligned binaries, store locks) documented, not re-discovered

Skills Library

26

Dozens of capabilities, each learned once

  • Self-contained, documented skills accreted along the way: GitHub, Todoist, Discogs, Namecheap DNS, TRMNL, Twitter/X, UniFi, Google Flights, weather, browser automation
  • Including a “grill me” interviewing skill for stress-testing plans before building