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

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.3.tar.gz (30.3 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.3-py3-none-any.whl (36.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: bach_cli-2026.6.3.3.tar.gz
  • Upload date:
  • Size: 30.3 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.3.tar.gz
Algorithm Hash digest
SHA256 2b279cce162b2fbbce36765e6ee1aac8c790a5fca6238613072195a3f14a6c5f
MD5 c9982d2079843b27e541a576055c5806
BLAKE2b-256 624f4aa204c894bb3253fa720f7e16a3d01b81eeb39cea5fe8206438c5cb58c1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bach_cli-2026.6.3.3-py3-none-any.whl
  • Upload date:
  • Size: 36.6 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 865d72211e01d2d38473f33cdf26b34bfe0dbd1fd65e5c18416d5f57736fe4f1
MD5 a2ff22028e8d1eae83771cfaebc64d39
BLAKE2b-256 0b8f7367afcf9985135cc59848e96979b3d5eb687b056c242d3832d9fa961bc7

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