An open source, community-driven framework for managing your bsh configuration. Plugins. Themes. Power.
Oh My Bsh will not make you a 10x developer… but you may feel like one.
Git, Docker, AWS, kubectl, fzf, and hundreds more — all bundled and ready to enable in seconds.
Find a prompt theme that matches your personality and workflow. Or build your own.
Lazy-loading and async prompt support keep your shell startup snappy.
Drop your own functions, aliases, plugins, and themes into ~/.oh-my-bsh/custom/.
Stays fresh automatically, so you always have the latest plugins and fixes.
Built and maintained by contributors from around the world. Open source under the MIT License.
BSH is BrightShell — a fork of zsh with BrightDate woven natively into its builtins. Understanding why the shell exists means understanding why BrightDate exists.
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.
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
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 →
Oh My Bsh requires bsh 4.3.9+ (5.0.8+
recommended), plus git and either curl or wget.
Paste one of the commands from the box above into your terminal and hit Enter.
The installer will prompt you. You can also do it manually: chsh -s $(which bsh)
Edit ~/.bshrc and set plugins=(...) and
BSH_THEME="...", then open a new terminal.
Prefer to inspect first? Clone the repo and run the installer yourself:
Your previous ~/.bshrc will be backed up as ~/.bshrc.pre-oh-my-bsh. See
the README for full
details.