↓Skip to main content

Projects

A selection of my open source projects, from command-line tools to everyday workflow helpers. These are also featured in the pinned repositories on my GitHub profile, where you can explore more of my work.

These projects are a mix of hand-coded work, aggregation of concepts I like from other projects, and AI-assisted coding. The icons in particular are ultimately AI-generated. I am NOT a designer, nor could I dream of becoming one, so I find this to be the most reasonable way to get an icon for projects that do not warrant commissioning one.

Please provide feedback or PRs if you have ideas!


💻 Go TUIs #

GitHub PR Monitor icon

GitHub PR Monitor #

A terminal interface for keeping an eye on GitHub pull requests and their associated CI builds. It lets you view by Jira (or other tracking) ticket IDs if configured and makes it easy to navigate to the Jira ticket, GitHub PR page, CI build page, or to copy the gh CLI command to see status or the curl command to retrieve CI status.

Language: Go · View on GitHub

GitHub PR Monitor demo showing pull requests and CI build progress

Kubernetes Resource Monitor icon

Kubernetes Resource Monitor #

I have been severly underwhelmed by other Kubernetes resource monitoring solutions. I feel like I have tried them all, and it is annoying to have to use a browser or GUI application all the time to simply see how things look in a cluster.

This is my solution to a terminal interface for monitoring Kubernetes resources.

Language: Go · View on GitHub

Kubernetes Resource Monitor demo showing resource usage and workload details

Kubernetes Context Manager icon

Kubernetes Context Manager #

A Kubernetes context manager inspired by kubectx. The key difference here is that it is based on supporting different “profiles” and a profile can have associated protections (like expiration) so that you don’t leave a global kube context set for any/all shells by accident.

For example, local is the default, then dev is for shared clusters which are in flux and not sacrosanct, then you can have perf clusters which can be used but you want to be careful, and prod which has a short timeout (where the kube config resets to local on expiration).

Language: Go · View on GitHub

Kubernetes Context Manager demo showing profiles, contexts, namespaces, and expiration

Shell Charm Progress icon

Shell Charm Progress #

I wanted a quick and easy way to use progress bars in my shell scripts. I didn’t find a suitable solution for that, so I built it.

This is a standalone, Charm-styled progress bar that can be controlled from a shell script.

Language: Go · View on GitHub

Shell Charm Progress demo showing simulated repository updates above a purple-to-pink progress bar


🤓 Shell Scripts #

I am a big fan of shell scripts, and every time I go to write one, I seem to learn new features and capabilities.

My dotfiles are still private. They are extensive to say the least, but not yet in a state where I can share them. However, I deeply love tinkering with dotfiles, so if you ever have ideas or want to chat, please don’t hesitate to reach out.

Shell Script Template icon

Shell Script Template (Bash) #

I maintain this template as my starting point for new shell scripts. I mainly use macOS, but aim for compatibility with both its bundled Bash 3.2 and modern Bash 5.x releases, while avoiding macOS-specific dependencies.

Language: Bash · View on GitHub

Shell Script Template progress bar example showing three simulated jobs with live output and completion counts


✨ Raycast Extensions #

Webpage to Markdown icon

Webpage to Markdown #

A Raycast tool that converts webpages to Markdown. All conversion happens locally, keeping the conversion private without relying on cloud conversion services. It can also capture assets for a fully offline export.

Language: TypeScript · View on GitHub