explaingit

ohmybash/oh-my-bash

7,497ShellAudience · developerComplexity · 1/5LicenseSetup · easy

TLDR

A community-built framework that enhances the Bash terminal with one-line installation, 100+ themes, and plugins for Git and other tools, making the command line easier and more customizable.

Mindmap

mindmap
  root((Oh My Bash))
    What it does
      Manages Bash shell config
      Adds plugins and themes
    Installation
      Single curl or wget command
      Auto-backups existing config
    Plugins
      Git shortcuts
      SSH conditional loading
      Developer workflow helpers
    Themes
      100+ included themes
      Random theme mode
      Screenshots on wiki
    Customization
      User plugin directory
      Auto-update mechanism
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Install Oh My Bash to get a nicer-looking terminal prompt with Git branch and status info shown automatically.

USE CASE 2

Enable the Git plugin to get short command aliases like 'gst' for git status and 'gco' for git checkout.

USE CASE 3

Switch your terminal theme with one line change to any of 100+ included styles without reinstalling anything.

USE CASE 4

Add your own custom Bash functions in the user plugin directory so they survive Oh My Bash updates.

Tech stack

ShellBash

Getting it running

Difficulty · easy Time to first run · 5min

Paste a single curl or wget command into any Bash terminal on macOS or Linux, no other dependencies needed.

Open source under a permissive license, use freely in any project including commercial ones.

In plain English

Oh My Bash is a community-maintained framework that manages the configuration of the Bash shell, which is the default command-line interface on most Linux systems and older versions of macOS. The goal is to make the terminal easier and more pleasant to use by collecting useful add-ons in one organized system with a simple installation process. It works on macOS and Linux. Installing Oh My Bash takes a single command: you paste a curl or wget line into your terminal, and the installer sets up everything automatically. It rewrites your shell configuration file so that Oh My Bash loads each time you open a terminal. Your original configuration file is backed up before any changes are made, so you can recover it if needed. Once installed, you can enable plugins by listing their names in your configuration file. Plugins add shortcuts, helper commands, and extra behavior for specific tools. For example, there are plugins for Git, Ruby, and other common developer workflows. The framework also supports conditional loading, so you can turn certain plugins on only in specific situations, such as only when you are connected via SSH. Themes control how your terminal prompt looks. Oh My Bash ships with over a hundred themes, and screenshots for most of them are available on the project wiki. You change the active theme by editing one line in your configuration file. There is also a random theme mode that picks a different look each time you open a terminal window, with options to limit the pool to your preferred choices or exclude ones you dislike. Custom plugins and themes can be placed in a special user-owned directory that Oh My Bash will load alongside the built-in ones. This keeps personal additions separate from the project files, which means updating Oh My Bash later will not overwrite them. The project includes an auto-update mechanism that checks for new versions and applies them on a schedule.

Copy-paste prompts

Prompt 1
Walk me through installing Oh My Bash on Ubuntu and switching to a theme that shows Git branch status in the prompt.
Prompt 2
List the top 5 most useful Oh My Bash plugins for a developer who uses Git, Node.js, and SSH frequently.
Prompt 3
How do I write a custom Oh My Bash plugin that adds shortcuts for my most-used git commands?
Prompt 4
Show me how to configure Oh My Bash to pick a random theme each time I open a terminal, limited to my three favourites.
Prompt 5
How do I disable Oh My Bash auto-update or change how often it checks for new versions?
Open on GitHub → Explain another repo

← ohmybash on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.