Projects

Open source tools and libraries I built and maintain. The rest is on GitHub.

012026

Zeno Agent

A self-hosted, single-user personal agent that acts inside the apps you already work in: it opens a pull request after fixing a Sentry error, triages your inbox, or lists the issues blocking the sprint. Connectors are the heart of it, each one a small MCP server installed from the dashboard, with GitHub, Linear, Klaviyo, Sentry and Swarmia available today. It talks through Slack, runs scheduled crons, isolates profiles in their own containers, and gates every connector tool as allow, ask or off.

  • TypeScript
  • Node.js
  • Docker
022026

Specwright

A multi-host plugin for Claude Code and Codex that gives a repository one explicit, change-driven engineering workflow: propose, plan, implement, review, archive. Each step writes its artifact to a file and stops, so you can switch models between steps or hand a plan to an agent with no context at all. Two wrappers cover the cases where you do not want to climb the ladder, running it end to end or decomposing a large outcome into parallel changes.

  • Shell
  • Git
032025

Claude Code Monitor

A macOS menu bar app that shows Claude Code CLI usage without leaving the desktop. The icon changes color as the session limit approaches, the dropdown lists session and weekly usage with their reset times, and the app checks for its own updates. It runs menu bar only, supports Intel and Apple Silicon, auto-detects the CLI even under NVM, and installs its own dependencies.

  • Go
042024

commitfy

A command-line tool that writes the commit message for you in about a second. It reads the staged diff, asks an AI model for a conventional, well-scoped message, and lets you accept or edit it before committing. Published on npm.

  • TypeScript
  • Node.js
052025

simple-mcp

A small TypeScript library for building Model Context Protocol servers with minimal code. Tools are declared with a name, Zod-validated parameters and an execute function, either as plain objects or as classes, and the server starts over stdio in one call.

  • TypeScript
  • Node.js
062021

free-translate

A free and unlimited translator for Node.js, published on npm. It became my most-starred repository and kept a steady few hundred weekly downloads for two years without a paid API behind it.

  • TypeScript
  • Node.js
072020

jikan-nodejs

A typed Node.js wrapper for the Jikan REST API, the unofficial MyAnimeList API. Every endpoint is covered with TypeScript types, so anime and manga data comes back ready to use.

  • TypeScript
  • Node.js