Open source is part of my day-to-day work: maintaining my own tools, trying them in practice, and contributing improvements upstream. Early experiments and visualizations live in Labs.
Dotfiles
Actively maintained
My everyday development environment
My largest ongoing personal open-source project is the environment I work in. These dotfiles bring together Neovim, tmux, zsh, terminal tools, and coding-agent configuration across macOS and Linux.
I keep improving the small things that shape a working day: finding information, moving between sessions, carrying configuration between machines, and giving agents consistent instructions. A Makefile installs the configuration and converges the tools toward the setup I use.
This is an opinionated personal environment. Read the installation steps and scripts before applying it to your own machine.
A Lua client for sending Zellij actions over Unix sockets, with the full generated protobuf contract. I extracted it from my dotfiles so other Neovim integrations can reuse the transport while keeping their own session discovery and navigation policy.
Requests are asynchronous and do not start a process for each action. Cancellation and timeouts preserve uncertain outcomes; the client never automatically replays a mutation. Compatibility is pinned to the Zellij runtime revision documented by the package.
How do you give a coding agent useful design boundaries—and check whether its UI stays within them?
Viewrule combines written design rules with executable browser checks for layout, density, context, and accessibility. It captures both page overviews and native-scale detail so large screens do not conceal small defects. Agents receive findings tied to the rules; human feedback helps refine the constraints.
It includes a CLI and a Claude Code plugin. This website uses it to check its rendered pages. Passing those checks means the configured constraints passed; it does not establish that a design is good or automate every accessibility judgment.
Wirelit generates an API reference that documents the typed RPC contract and its HTTP/JSON representation together. Protobuf descriptors supply the service signatures, linked message types, field details, and comments; curated examples show the actual wire format.
The output is ordinary MDX for Astro Starlight. Generated reference pages sit alongside authored application guides, sharing navigation, search, and styling. Wirelit’s own documentation demonstrates this with a complex sample schema and executable curl, TypeScript, and Go examples.
All four RPC shapes have reference pages; runnable examples currently cover unary and server-streaming methods.
Selected changes to tools I use, alongside earlier foundational work. Dates indicate when changes landed upstream, not ongoing maintainership or release availability.
Paseo
Merged
Contributed transcript streaming, shared reads, and cached import metadata so listing Claude sessions no longer loads whole histories into memory. The merged follow-up carried my commits forward and preserved support for large records.
Added type details to completions and richer field and table hovers in this BigQuery language server. Fixed completion panics on unfinished queries and false diagnostics for timestamp parameters in snapshot queries.
Added terminal-size thresholds that choose equal-sized Neovim splits on larger terminals and give the focused window more space on smaller ones. The maintainer applied the change directly with my authorship preserved; the pull request was closed rather than merged.
Expanded the OpenAPI specifications ogen could turn into Go clients and servers. Merged contributions included type-based schema discrimination, sum types in parameters, and recognition of JSON media types with a +json suffix.
Preserved Anthropic thinking content as text when translating messages to the OpenAI-compatible API, fixing malformed requests that returned HTTP 400 errors.
I helped get fog-aws started: a Ruby library for working with Amazon Web Services, usable on its own or through Fog. The project lists me as an author alongside Wesley Beary. My involvement was in its early development; I have contributed little in recent years.