Use Task Runners for Common Coding Tasks

Developers juggling multiple repositories know the pain of remembering each project's specific commands: is it npm run ci or pnpm install? ./gradlew build or mvn compile? Ham Vocke's updated guide from 2019 (refreshed after a reader request) solves this by introducing lightweight task runners — simple wrappers that let you run common tasks with consistent, short commands like run build or make test.
Option 1: A Bash Script
Create a file named run (or similar) at the root of your repo, make it executable (chmod +x run), and add functions for each task. Here's a Node.js example from the article:
#!/usr/bin/env bash
set -e
function install { npm run ci }
function build { npm run build }
function test {
npm run test:unit
npx run playwright
}
function format { npm run prettier --write }
if [[ $# -lt 1 ]]; then usage; exit 1; fi
TARGET=$1
case $TARGET in
"install") install ;;
"build") build ;;
"test") test ;;
"format") format ;;
*) echo "Unknown command"; usage; exit 1 ;;
esac
This script hides clunky arguments (like --write for prettier) and lets you chain multiple steps (e.g., unit tests plus Playwright). For more complex logic, you can extract functions into a bin/ directory.
Option 2: Make
Make is a 1970s build tool that's nearly universal. Using a Makefile with phony targets gives you the same convenience without extra scripting:
.PHONY: install build test format
install:
npm run ci
build:
npm run build
test:
npm run test:unit
npx run playwright
format:
npm run prettier --write
Just run make test or make format. Remember: make requires actual tabs for indentation.
Why Use a Task Runner?
Standardizing these commands means you can rely on muscle memory across projects, regardless of the underlying stack. It's a small overhead that pays off daily if you switch contexts often. As Vocke notes, these tools range from bash and make to modern options like mise and just, but the principle stays the same: one command to build, one to test, one to format.
📖 Read the full source: HN LLM Tools
👀 See Also

Pricing AI Agents: Lessons from Selling OpenClaw to Small Businesses
After months selling OpenClaw agents to law firms and real estate, a builder shares practical pricing strategies: per-seat fails, AI-employee framing wins, and pass-through LLM costs prevent margin erosion.

Cut Token Costs by 95% with OpenClaw's Seven Optimization Techniques
A comprehensive guide detailing seven techniques to reduce AI agent token consumption by 95%+, including tree-structured boot files, AI auto-compression, local model offloading, and cron-based CPU tasks.

OpenClaw setup checklist: six critical steps for new users
A Reddit post outlines six essential configuration steps for OpenClaw users: change default model from Opus to Sonnet to reduce costs, lock gateway host to 127.0.0.1 for security, create SOUL.md for agent personality, avoid installing skills initially, don't create multiple agents, and use /new command to manage conversation context.

End-to-End LLM Stack Trace: From Keystroke to Streamed Token
A software engineer has created a comprehensive document tracing every layer of the stack when sending a prompt to an LLM, covering client-side token counting, network protocols, API gateways, safety classifiers, tokenization, KV cache, sampling pipeline, and streaming mechanics.