🔋 batteries included

Oh My Bsh

An open source, community-driven framework for managing your bsh configuration. Plugins. Themes. Power.

$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/Digital-Defiance/ohmybsh/master/tools/install.sh)"
$ sh -c "$(wget -O- https://raw.githubusercontent.com/Digital-Defiance/ohmybsh/master/tools/install.sh)"
$ sh -c "$(fetch -o - https://raw.githubusercontent.com/Digital-Defiance/ohmybsh/master/tools/install.sh)"
works on macOS · Linux · WSL2

Unleash your terminal like never before.

Oh My Bsh will not make you a 10x developer… but you may feel like one.

🔌

300+ Plugins

Git, Docker, AWS, kubectl, fzf, and hundreds more — all bundled and ready to enable in seconds.

🎨

150+ Themes

Find a prompt theme that matches your personality and workflow. Or build your own.

Fast & Lightweight

Lazy-loading and async prompt support keep your shell startup snappy.

🛠️

Easy Customisation

Drop your own functions, aliases, plugins, and themes into ~/.oh-my-bsh/custom/.

🔄

Auto-Updates

Stays fresh automatically, so you always have the latest plugins and fixes.

🌍

Community Driven

Built and maintained by contributors from around the world. Open source under the MIT License.

Why BSH? Why BrightDate?

BSH is BrightShell — a fork of zsh with BrightDate woven natively into its builtins. Understanding why the shell exists means understanding why BrightDate exists.

🕰️ Why BrightDate?

BrightDate is a universal, timezone-free time scalar anchored at J2000.0 — the same astronomical epoch used by every modern observatory and space agency. One number. Trivially sortable, diffable, and storable.

Problem BrightDate solution
Timezone confusion Single universal value, no zones
Leap-second ambiguity TAI substrate — monotonic, no stutters
Complex date arithmetic Simple subtraction: b − a = elapsed days
2038 problem Float64 covers 287,000+ years at sub-µs resolution
Interplanetary coordination Works naturally across the solar system

Format: DDDDD.ddddd — integer days since J2000.0 + fractional day. Available as an npm package and a Rust crate.

🐚 Why BSH?

BSH integrates BrightDate throughout the shell itself via a statically-linked Rust library (brightdate-rust). The result: every time-related shell surface speaks the same universal language.

bdateCurrent date in BrightDate format (replaces date)
btimeCurrent time in BrightDate format (replaces time)
buptimeSystem uptime in millidays (replaces uptime)
bcalCalendar in BrightDate notation (replaces cal)
bwatchWatch a command; elapsed time in millidays
$BRIGHTEPOCHLive read-only param — current BrightDate, updates on every access
%P promptPrompt escape expands to current BrightDate (6 d.p.)
history -tCommand timestamps shown as BrightDate values
stat / ls -lFile timestamps (b= a= m=) shown as BrightDate
prompt example
[9622.841738] %

Oh My Bsh is the configuration framework on top of BSH — it gives you 300+ plugins, 150+ themes, and the community ecosystem, while BSH itself provides the BrightDate-native shell underneath. Learn more about BSH →

Install in one command.

Oh My Bsh requires bsh 4.3.9+ (5.0.8+ recommended), plus git and either curl or wget.

1

Run the installer

Paste one of the commands from the box above into your terminal and hit Enter.

2

Set bsh as your default shell (optional)

The installer will prompt you. You can also do it manually: chsh -s $(which bsh)

3

Pick your plugins & theme

Edit ~/.bshrc and set plugins=(...) and BSH_THEME="...", then open a new terminal.

Manual installation.

Prefer to inspect first? Clone the repo and run the installer yourself:

# 1. clone
$ git clone https://github.com/Digital-Defiance/ohmybsh.git ~/.oh-my-bsh
# 2. copy template config
$ cp ~/.oh-my-bsh/templates/bshrc.bsh-template ~/.bshrc
# 3. set default shell
$ chsh -s $(which bsh)

Your previous ~/.bshrc will be backed up as ~/.bshrc.pre-oh-my-bsh. See the README for full details.