Skip to main content


What problems does this solve?

  • Setting up a project either locally or in CI/CD is annoying when you have to install every little tool the project uses—especially if you want to pin versions (and you do).
  • Tiny cross-platform binaries that can easily be committed into repositories—great for dotfiles repos.
  • Making cross-platform wrapper shims with raw bash is not trivial—at the very least requires significant boilerplate.
  • CI/CD does too much fetching of things off the internet without locally caching assets for future CI/CD runs.

Why are there so few GitHub stars?

It's a new project! If it seems useful, don't use stars as a proxy for how likely the project will be maintained. Rest assured that I'm fully committed to this project for the long-haul. It's really a simple project so the commitment isn't hard for me to make.

In fact almost all the work with chim has been writing docs—not code. A good dev might be able to write a barebones version of chim over a single day.

Can I make my own fetcher?

Currently the best way to do this is a local chim that has a pre_execute hook that injects a platform binary into $CHIM_BIN_PATH. See hooks for more info.

How do I pronounce "chim"?


Like "chin" with an "m".

Who wrote this and why?

My name is Jeff and I've spent most of my career at this point working on build & release tooling.

I wrote this because I wish I had it 10 years ago. I've always felt like it's way harder than it should be to just get tools onto machines. I've had a lot of terrible ideas on how to solve this in the past but after mulling this over in my head over years I came up with the idea for chim.