Skip to main content
Skip to main content
b Logob Logo

b is a modern binary manager and environment file syncer that simplifies how developers install, manage, and version their command-line tools and configuration files. With project-based configuration and automatic PATH management, b ensures your development environment is consistent and reproducible.

Why b?

Managing command-line tools and shared configuration across different projects and environments is challenging:

  • Version Conflicts: Different projects need different tool versions
  • Environment Setup: Complex PATH management and installation procedures
  • Team Consistency: Ensuring everyone uses the same tool versions and configs
  • CI/CD Integration: Reproducible builds with exact tool versions
  • Config Drift: Upstream configuration changes that need to be synced

b solves these problems by providing:

  • Project-based Configuration - Each project defines its required tools and env files
  • Automatic PATH Management - Tools are available when you need them
  • Version Control - Lock specific versions for reproducible builds via b.lock
  • Team Collaboration - Share tool and config requirements via b.yaml
  • CI/CD Ready - Simple integration with build pipelines
  • Env File Sync - Sync configuration files from upstream git repos with three-way merge

Quick Example

# Initialize a new project
b init

# Install tools for your project
b install jq@jq-1.7 kubectl@v1.28.0

# Install any GitHub release
b install github.com/derailed/k9s

# Sync env files from upstream
b install github.com/org/infra:/manifests/** ./manifests

# Tools and files are now available
jq --version # jq-1.7
kubectl version --client # v1.28.0

Explore b