Bab
Clean commands for any project. Modern task runner. Zero dependencies. Any platform.
Quick install:
curl -fsSL https://bab.sh/install | shEverything you need to run tasks
A modern approach to task automation that just works. Simple to learn, powerful to use.
Zero Dependencies
Pure Go binary. Just download and run. No runtime or package manager required.
Cross-Platform
Works seamlessly on Windows, macOS, and Linux. One config, any OS.
Simple YAML
Clean, readable configuration. No complex syntax to learn.
Task Dependencies
Automatic prerequisite execution. Never run tasks in the wrong order.
Interactive Prompts
Collect user input during task execution. Support for text, select, confirm, password, and more.
Conditional Execution
Skip tasks or commands based on conditions. Use prompt results for dynamic workflows.
How bab compares
See how bab stacks up against other task runners and build tools.
| Feature | bab | GNU Make | npm scripts | Just | Task |
|---|---|---|---|---|---|
Single binary | |||||
Cross-platform | |||||
Simple YAML syntax | |||||
Built-in interactive TUI | |||||
Built-in fuzzy search | |||||
Smart error hints | |||||
Task dependencies | |||||
Task aliases | |||||
Environment variables | |||||
OS-specific commands | |||||
Modular config files | |||||
Dry-run mode | |||||
Shell completions | |||||
Full IDE integration | |||||
Interactive prompts | |||||
Working directory |
Missing something? Let us know on GitHub Discussions
Simple yet powerful
Define your tasks in a clean YAML file. No complex syntax, no build system knowledge required.
vars: app_name: myapp version: "1.0.0"
env: APP_NAME: ${{ app_name }}
tasks: dev: desc: Start development server deps: [setup] run: - prompt: port type: number message: Enter dev server port default: 3000 - cmd: npm run dev -- --port ${{ port }}
build: desc: Build the application alias: b deps: [setup] vars: target: release run: - log: ${{ app_name }} v${{ version }} - cmd: go build -o app dir: ./dist - log: Done! level: info
setup: desc: Install dependencies aliases: [s, init] env: CI: "true" run: - cmd: ./install.sh platforms: [darwin, linux] - cmd: install.bat platforms: [windows]
deploy: desc: Deploy to production run: - prompt: confirm_deploy type: confirm message: Deploy to production? - task: build when: ${{ confirm_deploy }} == 'true' - cmd: ./deploy.sh when: ${{ confirm_deploy }} == 'true' env: TARGET: productionVariables
Define vars at global or task level. Reference them anywhere with ${{ var_name }} syntax.
Task Composition
Reference other tasks with task: to compose complex workflows from simple building blocks.
Task Dependencies
Define deps and bab automatically runs prerequisites first. No more manual ordering.
Environment Variables
Set env vars at global, task, or command level. More specific levels override broader ones.
Platform-Specific Commands
Different commands for different operating systems. Write once, run anywhere.
Log Messages
Add informational log messages with levels: debug, info, warn, error.
Interactive Prompts
Collect user input during task runs. Supports confirm, input, select, multiselect, password, and number.
Working Directory
Set execution directory at global, task, or command level. Relative paths resolve from the Babfile location.
Conditional Execution
Skip tasks or commands based on conditions. Works with prompt results for dynamic workflows.
Task Aliases
Create short names for tasks. Run bab b instead of bab build.
Run your tasks:
Works where you work
First-class IDE support with syntax highlighting, code completion, and task execution built right into your editor.
VS Code
Visual Studio Code Extension
- Code completion for tasks and deps
- Go to definition (Ctrl+Click)
- Find all references
- Run tasks from Code Lens
- Task tree view in Explorer
IntelliJ IDEA
JetBrains IDE Plugin
- Syntax highlighting
- JSON Schema validation
- Task navigation (Ctrl+Click)
- Run configurations
- Hierarchical task browser
Both extensions provide:
Get started in seconds
Choose your preferred installation method. Works on all major platforms.
$ curl -fsSL https://bab.sh/install | shAlso available via:
choco install babscoop bucket add bab-sh https://github.com/bab-sh/scoop-bucket && scoop install babsnap install bab-shparu -S bab-binOr download binaries directly from GitHub:
Download Latest ReleaseBuilt by the community, for the community
bab is free, open source, and MIT licensed. Join our growing community of developers.
Want to contribute?
We welcome contributions of all kinds!
Loved by developers
See what developers are saying about bab.
since 06.12.2025
"I’ve been using bab.sh for two weeks now, and I really appreciate how easy it was to set up and get started. Everything feels straightforward to understand and use, which made the transition smooth."
Lukas
Developer
Want to share your experience with bab?
Share your storyFrequently asked questions
Everything you need to know about bab.
Still have questions?