lazymake: Interactive TUI for Makefiles

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

Install

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

Usage

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

Target descriptions

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.

Why

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.