v0.7.1

Bab

Clean commands for any project. Modern task runner. Zero dependencies. Any platform.

Quick install:

$curl -fsSL https://bab.sh/install | sh
~/project
$
Features

Everything 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.

Interactive TUI with fuzzy search
Platform-specific commands
Environment variables
Variables with template syntax
Shell completion (bash, zsh, fish)
Dry-run mode
Log messages in task runs
Graceful shutdown
Nested task groups
Task descriptions
Colored CLI output
Silent mode
Output Suppress
Working directory control
Why bab?

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
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

Configuration

Simple yet powerful

Define your tasks in a clean YAML file. No complex syntax, no build system knowledge required.

babfile.yml
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    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    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: production

Variables

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.

Run your tasks:

$babdev# Start dev server
$babbuild# Build the application
$babsetup# Install dependencies
$babdeploy# Deploy to production
$bab# Interactive mode
IDE Support

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

Coming soon
  • 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

v0.1.7
  • Syntax highlighting
  • JSON Schema validation
  • Task navigation (Ctrl+Click)
  • Run configurations
  • Hierarchical task browser

Both extensions provide:

Syntax Highlighting
Auto-completion
Error Detection
Task Execution
Go to Definition
Installation

Get started in seconds

Choose your preferred installation method. Works on all major platforms.

Quick install script (macOS/Linux)
$ curl -fsSL https://bab.sh/install | sh

Also available via:

Chocolatey
choco install bab
Scoop
scoop bucket add bab-sh https://github.com/bab-sh/scoop-bucket && scoop install bab
Snap
snap install bab-sh
AUR
paru -S bab-bin

Or download binaries directly from GitHub:

Download Latest Release
Open Source

Built by the community, for the community

bab is free, open source, and MIT licensed. Join our growing community of developers.

MIT
Licensed
100%
Free & Open
Go
Powered

Want to contribute?

We welcome contributions of all kinds!

Community

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

Lukas

Developer

Want to share your experience with bab?

Share your story
FAQ

Frequently asked questions

Everything you need to know about bab.

Still have questions?