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.4.tar.gz (30.9 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.4-py3-none-any.whl (37.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: bach_cli-2026.6.3.4.tar.gz
  • Upload date:
  • Size: 30.9 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.4.tar.gz
Algorithm Hash digest
SHA256 76117a0cef7021e220045d95f35fdaa2510aec8d376621ac422383cfd6a68cd7
MD5 e56762d752ea305f79df5caadf9a02ad
BLAKE2b-256 75591cf846b0b40eafa6793b5807e2dd96ab608b2abcad6ec844a942d69dde24

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bach_cli-2026.6.3.4-py3-none-any.whl
  • Upload date:
  • Size: 37.2 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 54acc187f1b4673fa7787dec40494a8a81d99b5f0fef4deaf4a92f6b69cba15b
MD5 6a11ecd4f1890e2bae7740ffa48bf502
BLAKE2b-256 eaca5f0422154977b3ffd0e403b35708aed6a3223b64ff19e25e25df4eee2e9f

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