{"id":42932541,"url":"https://github.com/bab-sh/bab","last_synced_at":"2026-04-01T23:31:50.003Z","repository":{"id":317895669,"uuid":"1069265250","full_name":"bab-sh/bab","owner":"bab-sh","description":"Bab is a modern, dependency free task runner that simplifies development workflows. It replaces Makefiles and npm scripts with a universal solution that’s easy to use for small scripts but powerful enough to orchestrate hundreds of tasks, keeping your projects organized and maintainable.","archived":false,"fork":false,"pushed_at":"2026-03-06T20:00:49.000Z","size":921,"stargazers_count":19,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-06T21:10:08.729Z","etag":null,"topics":["cli","developer-tools","project-tools","task-runner","workflow-tool"],"latest_commit_sha":null,"homepage":"https://bab.sh","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bab-sh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-03T16:51:38.000Z","updated_at":"2026-03-06T19:29:40.000Z","dependencies_parsed_at":"2025-10-03T19:24:15.199Z","dependency_job_id":"909f7c66-a420-43a2-a611-fc2c390b4d93","html_url":"https://github.com/bab-sh/bab","commit_stats":null,"previous_names":["bab-sh/bab"],"tags_count":56,"template":false,"template_full_name":null,"purl":"pkg:github/bab-sh/bab","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bab-sh%2Fbab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bab-sh%2Fbab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bab-sh%2Fbab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bab-sh%2Fbab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bab-sh","download_url":"https://codeload.github.com/bab-sh/bab/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bab-sh%2Fbab/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30204114,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T19:07:06.838Z","status":"ssl_error","status_checked_at":"2026-03-06T18:57:34.882Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","developer-tools","project-tools","task-runner","workflow-tool"],"created_at":"2026-01-30T19:08:45.608Z","updated_at":"2026-04-01T23:31:49.989Z","avatar_url":"https://github.com/bab-sh.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cimg src=\"https://raw.githubusercontent.com/bab-sh/bab/main/assets/svg/icon-rounded.svg\" alt=\"Bab Logo\" width=\"170\"/\u003e\n\n\u003ch1\u003eBab\u003c/h1\u003e\n\nClean commands for any project.\n\n[![Go Version](https://img.shields.io/github/go-mod/go-version/bab-sh/bab)](https://go.dev/)\n[![Release](https://img.shields.io/github/v/release/bab-sh/bab)](https://github.com/bab-sh/bab/releases)\n[![Status](https://img.shields.io/badge/Status-Alpha-red.svg)](https://github.com/bab-sh/bab)\n[![Discord](https://img.shields.io/discord/1320389080407609344?label=Discord\u0026color=%235865F2)](https://discord.bab.sh)\n\n[Website](https://bab.sh) • [Documentation](https://docs.bab.sh) • [Discord](https://discord.bab.sh)\n\n\u003c/div\u003e\n\n---\n\n**Bab** is a modern task runner that replaces the clunky syntax of Makefiles and the limitations of npm scripts with a universal, dependency-free solution that works across any language or project.\n\n## Quick Start\n```bash\n# macOS / Linux\ncurl -sSfL https://bab.sh/install.sh | sh\n\n# Windows (PowerShell)\niwr -useb https://bab.sh/install.ps1 | iex\n```\nFor more installation options, see the [Installation Documentation](https://docs.bab.sh/guide/installation).\n\nCreate a `Babfile.yml` in your project root:\n```yaml\n# Global variables — supports references and env access\nvars:\n  app_name: myapp\n  version: \"1.0.0\"\n  base_dir: ./src\n  build_dir: ${{ base_dir }}/build\n  home: ${{ env.HOME }}\n\n# Global environment variables — passed to all commands\nenv:\n  APP_NAME: ${{ app_name }}\n  NODE_ENV: production\n\n# Global defaults\nsilent: false\noutput: true\ndir: ./project\n\n# Import tasks from other Babfiles (namespaced)\nincludes:\n  utils:\n    babfile: ./tools/Babfile.yml\n\ntasks:\n  setup:\n    desc: Install dependencies\n    silent: true\n    output: false\n    run:\n      - cmd: npm install\n\n  lint:\n    desc: Run linter\n    dir: ./frontend\n    run:\n      - cmd: npm run lint\n\n  test:unit:\n    desc: Run unit tests\n    alias: t\n    deps: [setup]\n    env:\n      CI: \"true\"\n    run:\n      - cmd: npm test\n\n  test:all:\n    desc: Run all checks in parallel\n    run:\n      - parallel:\n          - task: lint\n          - task: test:unit\n        mode: interleaved\n\n  ci:\n    desc: Full CI pipeline\n    run:\n      - parallel:\n          - task: lint\n            label: lint\n          - task: test:unit\n            label: tests\n          - cmd: npm run build\n            label: build\n        mode: grouped\n        limit: 2\n        color: false\n\n  configure:\n    desc: Interactive project configuration\n    run:\n      # Confirm prompt\n      - prompt: proceed\n        type: confirm\n        message: \"Configure the project?\"\n        default: true\n\n      # Input prompt with validation\n      - prompt: project_name\n        type: input\n        message: \"Project name:\"\n        default: myapp\n        placeholder: \"my-project\"\n        validate: \"^[a-z][a-z0-9-]+$\"\n        when: ${{ proceed }}\n\n      # Select prompt\n      - prompt: environment\n        type: select\n        message: \"Select environment:\"\n        options: [dev, staging, prod]\n        default: dev\n        when: ${{ proceed }}\n\n      # Multiselect prompt with min/max\n      - prompt: features\n        type: multiselect\n        message: \"Select features:\"\n        options: [auth, api, ui, analytics]\n        defaults: [auth, api]\n        min: 1\n        max: 3\n        when: ${{ proceed }}\n\n      # Number prompt with range\n      - prompt: replicas\n        type: number\n        message: \"Number of replicas:\"\n        default: 3\n        min: 1\n        max: 10\n        when: ${{ proceed }}\n\n      # Password prompt with confirmation\n      - prompt: api_key\n        type: password\n        message: \"Enter API key:\"\n        confirm: true\n        when: ${{ proceed }}\n        platforms: [linux, darwin]\n\n      - log: \"Configured ${{ project_name }} for ${{ environment }}\"\n        level: info\n        when: ${{ proceed }}\n\n  build:\n    desc: Build ${{ app_name }} v${{ version }}\n    alias: b\n    aliases: [bld, compile]\n    deps: [lint, test:unit]\n    vars:\n      output_path: ${{ build_dir }}/${{ app_name }}\n    run:\n      - log: Building ${{ app_name }}...\n        level: debug\n      - cmd: npm run build\n        dir: ./frontend\n        env:\n          BUILD_OUTPUT: ${{ output_path }}\n        silent: true\n        output: true\n      - cmd: cp -r dist ${{ output_path }}\n        platforms: [linux, darwin]\n      - cmd: xcopy dist ${{ output_path }} /E\n        platforms: [windows]\n      - log: Build complete!\n        level: info\n\n  deploy:\n    desc: Deploy to ${{ env.DEPLOY_ENV }}\n    when: ${{ environment }} != 'dev'\n    deps: [build]\n    run:\n      - log: Deploying ${{ app_name }} to ${{ env.DEPLOY_ENV }}...\n        level: warn\n      - cmd: ./scripts/deploy.sh\n        env:\n          VERSION: ${{ version }}\n        when: ${{ environment }} == 'staging'\n      - cmd: ./scripts/deploy-prod.sh\n        env:\n          VERSION: ${{ version }}\n        when: ${{ environment }} == 'prod'\n      - task: utils:notify\n        when: ${{ environment }} == 'prod'\n      - log: \"Use $${{ var }} for literal syntax\"\n        level: debug\n```\n\nRun your tasks:\n```bash\nbab                  # Browse tasks interactively\nbab --list           # List all available tasks\nbab build            # Build the application\nbab b                # Same as above (using alias)\nbab bld              # Also works (multiple aliases)\nbab t                # Run tests (using alias)\nbab utils:setup      # Run included task\n```\n\n## Support\n\n- 💬 [Discord](https://discord.bab.sh) - Questions and discussions\n- 📚 [Documentation](https://docs.bab.sh) - Comprehensive guides\n- 🐛 [Issues](https://github.com/bab-sh/bab/issues) - Bug reports and feature requests\n\n## Acknowledgments\n\nBab stands on the shoulders of giants. Special thanks to:\n\n- [Task](https://taskfile.dev) - The modern task runner that inspired Bab's approach\n- [Charm](https://charm.sh) - For their beautiful terminal UI libraries that make Bab a joy to use\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\nBuilt with ❤️ by AIO\n\n\u003c/div\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbab-sh%2Fbab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbab-sh%2Fbab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbab-sh%2Fbab/lists"}