I built lazymake, a terminal UI for Makefiles. Think lazygit, but for make.
The problem is simple: you open a project, you know there’s a Makefile, but you don’t remember the exact target names. So you cat Makefile, scroll through it, find the target, type it out. Every time.
lazymake lets you fuzzy-search your Makefile targets and run them instantly.
lazymake Makefile
> build_
build Build the binary
> build-docker Build Docker image
clean Remove build artifacts
dev Run in dev mode
test Run all tests
↑↓ navigate • enter select • esc quit
Homebrew:
brew tap febriliankr/tap
brew install lazymake
Ubuntu/Debian:
echo "deb [trusted=yes] https://febriliankr.github.io/lazymake/deb stable main" | sudo tee /etc/apt/sources.list.d/lazymake.list
sudo apt update
sudo apt install lazymake
Go:
go install github.com/febriliankr/lazymake@latest
lazymake # pick a target from ./Makefile
lazymake -r # recursively find Makefiles in subdirectories
lazymake -f path # specify a Makefile
lazymake -n # dry-run: print the command instead of running it
lazymake picks up descriptions from comments in your Makefile. Both styles work:
## Build the binary
build:
go build -o app .
test: ## Run all tests
go test ./...
Comment above the target, or inline ## comment — both get picked up and displayed next to the target name in the TUI.
Most projects have a Makefile. Most Makefiles grow to 20+ targets. Remembering them all is a waste of brain. This tool makes it so you don’t have to.
Check it out on GitHub.