I write lots of tiny tools for removing friction from daily tasks, here’s a smattering:

Pre-commit Hooks- Blog Edition

A series of existing and original lints for publishing static blogs. Available on GitHub.

Use with your JamStack blog/documents in your .pre-commit-config.yaml:

  - repo: https://github.com/cadeef/pre-commit-hooks-blog
    rev: main
      - id: auto-commit-message
      - id: check-dummy
      - id: check-orphan-tags
      - id: fix-bear-export-quirks


Starting a new project is filled with lots of boilerplate. I use cookiecutter to eliminate toil. A couple cookiecutters that get regular use:

Cade Not Found

Cades from around the net. My @cade Twitter handle receives a fair number of mis-mentions trying to find a different Cade— a directory to point wayward netizens in the right direction.


I use Apple’s Reminders.app to get things done, but my primary work environment is a terminal. Cade-task wraps Reminders.app in convenient, terminal-based goodness. It also serves as a backend agnostic wrapper so that muscle memory isn’t interrupted by the next GTD hotness.


Coming Soon!

A CLI utility to export notes and files from Bear.

As a frequent user of Bear for all things note-related, I found the in-app export interface and existing third-party tooling lacking. Bear-exporter makes getting content out of Bear trivial.

Cade.pro is statically built by Hugo. Bear-exporter allows me to author content in Bear and export it with a single command:

bear-exporter notes —-export —-format hugo —-tag blog


Coming Soon!

Git Key Resolver, a utility to simplify using multiple SSH keys with GitHub (or other git hosts).

Convoluted solutions litter the internet that require constant tinkering with either your configuration per-repository, SSH configuration, or git remotes. GKR implements a set it and forget it, rule-based approach with configuration stored alongside your other git options; it’s a drop in solution that just works.

Add a rule and forget about it:

gkr add —-key ~/.ssh/totally-awesome-key —-project cadeef

Use git normally, your totally-awesome-key will be injected for all repositories in the “cadeef” project scope. Match on any part of the URL or use regex for complex scenarios.


Find me on GitHub, Pypi, or anywhere half-assed software is given away freely.