Skip to main content

Modularized bash configuration for development environment

Project description

Bach

Summary: A modular bash configuration toolkit for developers, offering organized modules for common tasks, logging, and development tools with easy installation.

⚠️ WARNING: Do NOT move this directory after installation. The configuration sources files using absolute paths that will break if relocated.

Description

Bach provides a lightweight, modular way to manage your bash environment with organized modules for common tasks, logging, development tools, and more.

Installation

Python (Recommended)

pip install bach-cli
# or with pipx (preferred for CLI tools)
pipx install bach-cli

bach install

This will add the bach initialization to your ~/.bashrc.

From source

  1. Clone the repository:
git clone <repo-url>
cd bach
  1. Install the configuration:
make install

This will add the bach initialization to your ~/.bashrc.

Updating

When a new version is released, run:

bach update

This upgrades the package (via pip or pipx) and reinstalls the shell scripts in one step.

Or manually:

pip install --upgrade bach-cli
# or with pipx
pipx upgrade bach-cli

bach install

Usage

After installation, restart your shell or run source ~/.bashrc to load the configuration.

Available commands:

  • bach install — Install bach configuration (with shell completion)
  • bach uninstall — Remove bach configuration
  • bach update — Upgrade package and reinstall configuration
  • bach reload — Show how to reload configuration in current shell
  • bach clean — Alias for uninstall

Shell completion (bash) is automatically enabled during bach install. It requires bash 4.4+ — if you're on macOS with the default bash 3.2, install a newer bash via brew install bash to use completions.

Available modules:

  • common.sh: Common utilities
  • logging.sh: Logging functions
  • docker.sh: Docker helpers
  • files.sh: File operations
  • git.sh: Git utilities
  • homebrew.sh: Homebrew management
  • terminal.sh: Terminal setup
  • lastly.sh: Final configurations

To reload modules in the current shell: reload_bash or source ~/.bashrc

Linting

To check shellscripts, install shellcheck and run shellcheck --severity=error <input_file>.

For VSCode users, install the Bash IDE extension (mads-hartmann.bash-ide-vscode) and add the following to your settings.json:

"bashIde.shellcheckArguments": "--severity=warning"

Uninstallation

Python

bach uninstall

From source

make clean

Or manually: bash setup.sh uninstall

Structure

  • bach_cli/: Python package (CLI entry point)
  • src/bach/: Module files (shell scripts)
  • setup.sh: Installation script (legacy)
  • bach_lite.sh: Lightweight utility script
  • Makefile: Build/install targets (legacy)
  • pyproject.toml: Poetry / Python packaging configuration

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bach_cli-2026.6.3.5.tar.gz (31.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bach_cli-2026.6.3.5-py3-none-any.whl (37.1 kB view details)

Uploaded Python 3

File details

Details for the file bach_cli-2026.6.3.5.tar.gz.

File metadata

  • Download URL: bach_cli-2026.6.3.5.tar.gz
  • Upload date:
  • Size: 31.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.13.9 Darwin/25.4.0

File hashes

Hashes for bach_cli-2026.6.3.5.tar.gz
Algorithm Hash digest
SHA256 b82a4c2390fbc1e0a6c19dcd67e33b79342a1d4709ef18e755a59236c94c5883
MD5 c2b3d859bb763ea09470ad942a6a027c
BLAKE2b-256 816e3a6f4d0eddc8b34b5deb835ca8387cc0cba32908bcb11f6c5e922c26f2d2

See more details on using hashes here.

File details

Details for the file bach_cli-2026.6.3.5-py3-none-any.whl.

File metadata

  • Download URL: bach_cli-2026.6.3.5-py3-none-any.whl
  • Upload date:
  • Size: 37.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.13.9 Darwin/25.4.0

File hashes

Hashes for bach_cli-2026.6.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 aa7db6a01aedd249a4fc70f03e3520cc7b6b9d9032057d5a35a1f8e17f4eafdf
MD5 0cf33b3d51c1da7dc193408ce46cc716
BLAKE2b-256 b4916bf05167981b1941b40dc8558132d87dd22c77f3f9bebf21ac89024e68a5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page