Developer tools · Open source · 2025
Hoi
A YAML-driven command runner for engineering teams.
4,000+ installs via cargo · written in Rust
1version: 12description: "Dev commands for the whole team."3 4commands:5 up:6 cmd: docker compose up -d7 description: "Start the dev stack."8 alias: u9 10 seed:11 cmd: |12 npm run db:migrate13 npm run db:seed14 description: "Migrate and reseed the database."15 16 release:17 cmd: cargo release patch --execute18 description: "Tag and push a patch release."19 alias: shipOverview
Hoi is a small command-line tool that turns team-specific workflows into memorable aliases. Drop a .hoi.yml in your repo and the commands your team actually runs (boot the containers, seed the database, roll a release) become one word each, with environment variables and multi-line chains handled for you.
Challenge
Every team ends up with the same problem: a growing pile of scripts, stale READMEs, and tribal knowledge about how to run locally. New hires learn it by pairing. Senior engineers learn it by guessing wrong once a month. Existing task runners either felt heavy (full build systems bolted onto a monorepo) or clumsy, a pile of shell functions nobody owns.
Approach
We wrote it in Rust, leaned into a single-file YAML contract, and kept the binary small and dependency-free at runtime. Recursive .hoi.yml lookup walks parent directories so monorepos and nested projects compose cleanly. A global file at $HOME/.hoi/.hoi.global.yml covers commands that cross projects. .env and .env.local are loaded with explicit precedence so secrets stay out of the yaml and out of git.
Outcome
Over 4,000 installs via cargo install hoi. Several releases shipped, no telemetry, no ads. Used daily by teams who would rather type `hoi up` than remember the exact docker-compose-and-npm incantation their project requires this week.
Stack
- Rust
- Cargo
- YAML
- Clap
- Serde