Projects

hermes-imessage-shortcuts

Hermes Agent platform plugin · Python · 2026

A platform plugin for Hermes Agent, the open source agent from Nous Research, that lets you text your agent over iMessage from a Mac you already own, with no Full Disk Access and no relay service in the middle. A Shortcuts automation posts each incoming text to a listener on the loopback address; the reply goes back through imsg from the same Messages account.

  • A sender allow list checked before the gateway sees a text, a shared secret compared in constant time, and a refusal to start in any profile but the texting one, so a cloud model in another profile can never answer by accident.
  • 72 tests, 15 of them inside the agent runtime itself. CI runs both forms on macOS, the second after installing Hermes Agent with its own install script.
  • An optional tool forwards a household command to a second service and reports only whether the answer was delivered, so the other person in the house never has their data pass through the model.

Save State

System design interview prep on iOS and web · Expo, TypeScript, AWS · 2026

A system design interview study app for iPhone and the web: spaced repetition cards, back of the envelope estimation drills, quizzes and a timed mock interview, all graded without any runtime AI. Progress lives on the device in SQLite and syncs as an append only event log to a serverless AWS backend that stays inside the free tier.

  • One Expo codebase for iOS and web, 31 phases since September 2026, each closed by a multi agent review with every finding fixed or left with its reason.
  • A practice IDE runs the learner's Python in a Lambda with no route out of its VPC, behind a token checking gateway with reserved concurrency, and records the attempt without a self report.
  • Content is markdown with frontmatter, checked by Zod schemas at build time and fed from an Obsidian study vault.
  • ./save-state-tour.mp4

    Save State, a 91 second tour

    1:31 · sound on

A household assistant by text, and the Mac that answers it

Two private repositories · Python, AWS, Home Assistant, Hermes Agent · 2026

A text assistant for one household, and the home automation behind it. The assistant runs on AWS and acts on the commands people text it: the shared shopping list, to-dos, the day's calendar, reminders. The home runs Home Assistant with no remote access, and on the Mac at home Hermes Agent, on a local model through Ollama, answers one person's texts and forwards household commands to the assistant.

  • The model only translates a message into a command (ADR 0004). What runs is code.
  • No process Hermes can launch gets Full Disk Access, and nothing in the home is reachable from outside it.
  • Every decision is written down: 73 decision records in the assistant and 37 in the home, and 169 test files in the assistant.
  • private: it holds the household's data and the home's automations

akin

A startup · Next.js, AWS, Terraform · 2026

A place for creatives to find collaborators around projects rather than follower counts, from a startup I co-founded. The landing site and its waitlist are live; a mobile app is in progress.

  • The waitlist collects an email and nothing else, counts before it writes and compensates on failure, and rate limits by a window carried in the counter key. Eight decision records say why.
  • A static export on AWS, built with Terraform rather than CDK and DynamoDB rather than RDS.

awty

A second brain for travel · TypeScript, AWS · 2026

A second brain for travel, for two people, started this month: a design system, a web app, a mobile app and a backend, each its own repository. The model work will run on Amazon Bedrock.

  • private: early days

Smaller tools

Two small tools · Python · 2026

Two tools built in a day each, with their tests. One turns a folder of notes into a Gemini Notebook audio overview from a single command. The other is a local, CodeSignal style practice server for interview problems, in Python with no build step: a vim editor, locked test files and a phase clock.

  • private: wired to my notes vault

This site

kups.me · Next.js, AWS CDK, Step Functions · 2025 to 2026

This site, and the AWS behind it: a Next.js static export on S3 and CloudFront from a CDK stack, and a Step Functions service that emails the resume on request through SES, with Zod validation and a DynamoDB rate limit in front of it.

  • The checks run against the built files and in a real browser: sections revealed on a phone, no sideways scroll, focus kept inside the resume dialog, and every request to another host aborted so no check can send an email.
  • A missing path answers with the 404 page and a 404 status, every PDF carries a noindex header, and the payload scan runs first in every CI job that installs.