mybash April 2026
A feature-rich interactive shell in Python with a built-in file browser, image/video viewer, and process manager.
I wanted a shell that didn't make me leave the terminal to browse files, look at an image, watch a video, or check on a runaway process — so I built one. mybash is a full interactive shell written in Python, with real bash-compatible parsing (pipelines, redirections, command substitution, globbing, here-docs, background jobs) underneath a set of built-in TUI applications that all run inline, in any terminal.
The TUI apps aren't gimmicks — they're the actual point:
fb— a ranger-style 3-pane file browser with vim-style keybindings, bookmarks, and copy/cut/pasteiv— an image viewer that renders through Kitty's image protocol, Sixel,chafa, or falls back to ASCII art depending on what your terminal supportsvp— a video player that suspends the TUI and hands off tompv/ffplay, with a real playlist, loop, and shufflepm— an htop-style process manager (sort by CPU/MEM/PID, kill or renice from the UI)gv— a git log/diff/status viewer with commit search and stage/unstage from the status viewed— a text editor with syntax highlighting, multi-tab support, and find/replace
On top of that: 51 built-in shell commands, tab completion that's aware of git
subcommands and common CLI flags, a smart prompt that turns red on failure and
shows elapsed time for slow commands, persistent aliases and history, and an
actual plugin system — drop a Python file subclassing CommandPlugin into
~/.mybash/plugins/ and it's live on next launch. Five built-in themes
(Dracula-inspired default, Nord, Monokai, Solarized, Gruvbox), each just a TOML
file, so adding your own is copy-paste-and-edit rather than writing code.
It's uv-packaged (uv pip install -e ".[dev]"), has an actual test suite
(pytest), and ships a standalone launcher script so it can be bound to a
.desktop file and opened like any other application rather than requiring you
to already be in a terminal.