A community-driven framework for managing your bash configuration, with bundled plugins, themes, and a self-update command.
Bash-it/bash-it
A community framework of Bash aliases, functions, completions, themes and scripts, managed through a single install and enable/disable system.
Open-source alternative to:oh-my-zsh
- Stars
- 15,281
- Forks
- 2,311
- Open issues
- 7
- Last commit
- yesterday
What is it?
Bash-it is a community framework for Bash that collects aliases, custom functions, autocompletion scripts, prompt themes and helper scripts in one place. Instead of scattering these in ~/bin and a long .bashrc, you clone the repository, run the installer, and turn individual components on or off.
Most code targets Bash 3.2 and later, so it works on older systems. A small number of more complex plugins require Bash 5 features, and the framework blocks those modules on older shells so they don't produce errors. The core code itself stays compatible with the older versions.
The project includes a search command for finding and enabling components, a diagnostics command (bash-it doctor) that reports environment and configuration details for bug reports, and an optional Docker-based installation.
Key features
- 01Bundles autocompletion scripts, prompt themes, aliases and custom functions for Bash.
- 02Lets you enable or disable individual components without editing your .bashrc by hand.
- 03Compatible with Bash 3.2 and later, with guards for plugins that need Bash 5.
- 04Includes a search command to find components by name.
- 05Provides bash-it doctor to report environment and configuration for troubleshooting.
Use cases
- Organizing a personal collection of shell aliases and helper scripts.
- Adding git, docker or other tool completions to an existing Bash setup.
- Customizing the terminal prompt with a ready-made theme.
- Sharing a standard shell configuration across machines or teams.
Quick start
- 1
Clone the repo to ~/.bash_it
git clone --depth=1 https://github.com/Bash-it/bash-it.git ~/.bash_it - 2
Run the installer
~/.bash_it/install.sh
Things to know
- Most features target Bash; one or two complex plugins need Bash 5 features.
Topics
FAQ
- What is bash-it?
- A community framework of Bash aliases, functions, completions, themes and scripts, managed through a single install and enable/disable system. Bash-it is a community framework for Bash that collects aliases, custom functions, autocompletion scripts, prompt themes and helper scripts in one place. Instead of scattering these in ~/bin and a long .bashrc, you clone the repository, run the installer, and turn individual components on or off.
- Is bash-it free to use? What license does it have?
- bash-it is open source under the MIT license. Check the license terms before using it in commercial products.
- Is bash-it still maintained?
- Actively maintained. The last commit to bash-it was on Oct 21, 2026.
- What can I use bash-it for?
- Organizing a personal collection of shell aliases and helper scripts. Adding git, docker or other tool completions to an existing Bash setup. Customizing the terminal prompt with a ready-made theme. Sharing a standard shell configuration across machines or teams.
- How do I install bash-it?
- Clone the repo to ~/.bash_it: git clone --depth=1 https://github.com/Bash-it/bash-it.git ~/.bash_it Run the installer: ~/.bash_it/install.sh
- Where can I get bash-it?
- The source code and installation instructions are on GitHub: https://github.com/Bash-it/bash-it
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A community-driven framework for managing zsh configuration, bundling hundreds of plugins and themes plus an update tool.
A framework for the fish shell that installs and manages packages and themes to customize your prompt and shell behavior.
A opinionated, modern Linux distribution by DHH, built on Arch with a polished default desktop, theming and developer tooling preconfigured.
A smarter cd command that learns your most-used directories and lets you jump to them with a few keystrokes, across all major shells.
A single Rust CLI that installs project tools, sets environment variables, and runs tasks from one mise.toml file.