fancybash Official Documentation

Everything you need to master, install, customize, and extend fancybash — the production-ready shell setup built for modern developers across Linux, macOS, and Windows.

✓ Version 2.0 Stable ⚡ Zero Dependencies 🛡️ Safe Boundary Installer Shells: Bash • Zsh • Fish • PowerShell License: MIT

🚀 Overview & Philosophy

fancybash is a lightweight, opinionated terminal enhancement environment engineered specifically for full-stack, DevOps, and open-source developers. Unlike heavy framework monoliths (such as Oh My Zsh or bulky plugin managers), fancybash operates with zero external script dependencies, instant terminal cold startup (< 15ms), and a safe single-file modular architecture.

💡 Core Architecture Guarantee

fancybash never modifies your core system bin files or destroys existing shell configurations. All additions are injected cleanly between boundary comments (`# >>> fancy-bashrc >>>` and `# <<< fancy-bashrc <<<`).

System Requirements

fancybash works natively across virtually any modern Unix or Windows system:

Platform / OS Supported Shells Minimum Required Tools Recommended Enhancements
Linux (Ubuntu, Debian, Arch, Fedora, Alpine) Bash 4.4+, Zsh 5.8+, Fish 3.0+ curl, git, bash fonts-noto-color-emoji, fzf, gum
macOS (Sequoia, Sonoma, Ventura) Zsh (Default), Bash (Homebrew), Fish curl, git Fira Code Nerd Font, iTerm2 / Ghostty
Windows 10/11 (Native & WSL2) PowerShell 7+, Windows PowerShell 5.1, WSL2 Bash curl / irm Windows Terminal, Cascadia Code PL

Universal 1-Line Installer

The smartest way to set up fancybash. It automatically detects your operating system and current default shell, injecting the appropriate configuration cleanly:

Bash / Zsh (Universal)
curl -fsSL https://fancybash.netlify.app/i.sh | bash
PowerShell (Windows Universal)
irm https://fancybash.netlify.app/public/i.ps1 | iex

Shell-Specific Installers

If you prefer targeting a specific shell directly, run the respective execution script:

Target Shell Configuration Target File One-Line Terminal Command
Bash ~/.bashrc bash <(curl -fsSL https://fancybash.netlify.app/public/install.sh)
Zsh ~/.zshrc zsh <(curl -fsSL https://fancybash.netlify.app/public/install.zsh)
Fish ~/.config/fish/config.fish fish <(curl -fsSL https://fancybash.netlify.app/public/install.fish)
PowerShell $PROFILE irm https://fancybash.netlify.app/public/install.ps1 | iex

Manual Clone & Source

For air-gapped environments or manual dotfile management, clone the repository directly:

Shell Script
# 1. Clone fancybash repository
git clone https://github.com/rihadjahanopu/fancybash.git
cd fancybash

# 2. Append configuration for Bash
cat config.sh >> ~/.bashrc
source ~/.bashrc

# Or for Zsh
cat config.zsh >> ~/.zshrc
source ~/.zshrc

# Or for Fish
cat config.fish >> ~/.config/fish/config.fish
source ~/.config/fish/config.fish

Verification & First Steps

Once installed, reload your active shell or type:

Bash
source ~/.bashrc  # Or restart your terminal window

You should immediately see the glowing rainbow prompt with directory-aware emojis (e.g. 🌐 for web projects, 🟢 for Node.js, 🐍 for Python)!

Updating & Uninstalling

To upgrade fancybash to the latest version and automatically reload your shell, run:

Fancybash Auto-Upgrade
fancy upgrade  # Upgrades fancybash & auto-reloads shell process

# Aliases:
fancy update
fancy_upgrade

To perform a full system update (OS packages, Flatpaks, Snaps, Bun & Node), run the mega updater:

Terminal
uup  # Upgrades OS packages, Flatpaks, Snaps & Bun

To cleanly uninstall fancybash without affecting any of your custom shell aliases or scripts:

Universal Uninstaller
curl -fsSL https://fancybash.netlify.app/u.sh | bash

🖥️ Zed IDE Settings Installer

Install a fully-configured settings.json for the Zed editor — works for both Flatpak and native Linux installations in one shot:

Zed Settings One-Line Installer
curl -fsSL https://fancybash.netlify.app/public/zed/install-settings.sh | bash

What it does: Creates a timestamped backup of your existing settings, writes tuned settings.json (BlackFox theme, Cascadia Code 22px font, Tab size 2, Prettier, Git inline blame, autosave) to both ~/.config/zed/ and Flatpak dev.zed.Zed config paths.

🐚 Shell Integration Guides

Zsh Setup & Zero-Framework Plugin Integration

fancybash (`config.zsh`) provides supercharged Zsh integration with automatic autosuggestions and syntax highlighting, without requiring heavy frameworks like Oh-My-Zsh.

Zsh Plugin Setup Script
# 1. Create native Zsh plugin directory
mkdir -p ~/.zsh

# 2. Clone syntax highlighting and autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.zsh/zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-autosuggestions.git ~/.zsh/zsh-autosuggestions

# 3. Reload Zsh
source ~/.zshrc

Fish Shell Integration

For Fish shell users, `config.fish` maps all fancybash function aliases to native Fish functions with complete tab auto-completion:

Fish Shell
# Install fancyfish
fish <(curl -fsSL https://fancybash.netlify.app/public/install.fish)
source ~/.config/fish/config.fish

PowerShell Setup ($PROFILE)

PowerShell 7+ and Windows PowerShell 5.1 are fully supported via `i.ps1`.

⚠️ Windows Script Execution Policy

If PowerShell blocks remote script execution, enable execution policy first in an Administrator terminal: Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

Font & Emoji Setup

To render color emojis and programming ligatures in Linux terminals, install Noto Color Emoji and Fira Code:

Ubuntu / Debian Font Install
sudo apt update && sudo apt install -y fonts-noto-color-emoji fonts-firacode fonts-cascadia-code
fc-cache -fv

Priority configuration for /etc/fonts/local.conf:

XML Config (/etc/fonts/local.conf)
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <alias>
    <family>monospace</family>
    <prefer>
      <family>Fira Code</family>
      <family>Noto Color Emoji</family>
    </prefer>
  </alias>
</fontconfig>

📟 Smart Prompt System

fancybash features a two-line contextual prompt that adapts to your active workspace, system hardware status, and git repositories in real-time.

Folder Emojis & Status Indicators

The prompt automatically detects project indicator files inside your working directory:

Detected File / Environment Prompt Emoji Description
package.json / node_modules 🟢 Node.js Web / Backend Project
bun.lockb / bunfig.toml 🥐 Bun JavaScript / TypeScript Runtime
requirements.txt / Pipfile / pyproject.toml 🐍 Python Application Environment
index.html / vite.config.js 🌐 Frontend Web Application
Dockerfile / docker-compose.yml 🐳 Docker Containerized Project
Cargo.toml 🦀 Rust Cargo Package
go.mod 🐹 Go Module Workspace
Read-only directory 🔒 Directory lacks write permissions

CPU Temp & System Monitoring

Real-time system health metrics rendered directly in the prompt bar:

  • CPU Temperature: Color coded — 🟢 Green (< 65°C), 🟡 Yellow (65–80°C), 🔴 Red (> 80°C).
  • Git Dirty Branch: Shows branchname ❗ when uncommitted changes exist.
  • Command Execution Timer: Shows ⏱️ Ns for any command taking longer than 1.0s.

Customizing Prompt Behavior

You can toggle individual prompt monitors by exporting environment variables in your .bashrc / .zshrc:

Bash Config
# Custom fancybash environment variables
export FANCY_SHOW_CPU_TEMP=true     # Show CPU temp
export FANCY_SHOW_GIT_DIRTY=true    # Show git dirty status
export FANCY_SHOW_EXEC_TIMER=true   # Show command duration

🎨 Prompt Themes Gallery

fancybash ships with 55 world-class prompt themes inspired by the best designs from Oh My Zsh, Oh My Posh, Starship, Spaceship, and modern terminal aesthetics. Every theme works across Bash, Zsh, and Fish shells with full color and emoji support.

💡 Tip: All themes support Git branch tracking, exit code indicators, and live system metrics. Use fancy preview to browse them all interactively in a scrollable gallery right inside your terminal!

The fancy preview Command

Run fancy preview to open an interactive, scrollable theme gallery showing all 55 themes with live prompt rendering:

Terminal
# Open interactive scrollable theme gallery (all 55 themes)
fancy preview

# Aliases — all do the same thing
fancy list
fancy_theme preview
fancy preview — Theme Gallery
fancy preview
🎨 FANCYBASH PROMPT THEME GALLERY (55 Themes)
──────────────────────────────────────────────────────────
📌 [1/55] agnoster
💻 user@pc myproject [🌿 main ❗] ❯
──────────────────────────────────────────────────────────
📌 [2/55] bira
╭─user@pc ~/myproject [🌿 main ❗]
╰─$
... scroll with ↑↓ or PageUp/PageDown to see all 55 themes ...
Press q to exit gallery

Switching Themes

Use the fancy command to switch themes interactively or directly by name:

Terminal
# Open interactive gum/fzf theme picker (arrow keys to select)
fancy

# Switch to a specific theme directly by name
fancy catppuccin
fancy tokyonight
fancy dracula
fancy cyberpunk
fancy starship
fancy matrix

# Theme persists across sessions — saved to ~/.fancybash_theme

All 55 Themes Showcase

Every theme is available on Bash, Zsh, and Fish. Activate with fancy <name>:

01 minimal
🌈 myproject
❯❯❯
Fancybash default · Random emoji · 1-line
fancy minimal
02 full
🚀 myproject 📂 20M [🌿 main] 🌡️35°C
🟢 v24 │ bun │ Aug 25
❯❯❯
Full 3-line · All system metrics · Git + Node
fancy full
03 robbyrussell
myproject [🌿 main ❗]
Oh My Zsh classic default · 1-line clean
fancy robbyrussell
04 p10k
╭─ 🐧 user@pc in ~/myproject [🌿 main]
╰─
Powerlevel10k inspired · 2-line rich prompt
fancy p10k
05 agnoster
💻 user@pc myproject main
Oh My Zsh Powerline segment style
fancy agnoster
06 catppuccin
🐱 catppuccin 📂 myproject [🌿 main]
❯❯❯
Oh My Posh · Soft pastel Mocha palette
fancy catppuccin
07 tokyonight
🌌 ~/myproject [🌿 main] v24
Oh My Posh · Cyber neon Tokyo Night
fancy tokyonight
08 dracula
🧛 user in ~/myproject [🌿 main]
Oh My Posh · Vibrant dark pink/purple
fancy dracula
09 nord
❄️ ~/myproject [🌿 main]
Oh My Posh · Arctic frost calm palette
fancy nord
10 bira
╭─user@pc ~/myproject [🌿 main]
╰─$
Oh My Zsh classic two-line style
fancy bira
11 pure
~/myproject [🌿 main]
Sindre Sorhus Pure · Ultra quiet minimal
fancy pure
12 starship
🚀 user in ~/myproject [🌿 main]
Starship cross-shell inspired · Rocket style
fancy starship
13 cyberpunk
⚡ CYBER ~/myproject [🌿 main]
▶▶
Futuristic neon yellow & electric cyan
fancy cyberpunk
14 synthwave
🌅 ~/myproject [🌿 main]
❯❯
80s retro magenta & electric purple vibes
fancy synthwave
15 gruvbox
🌴 user in ~/myproject [🌿 main]
Retro warm gold & forest green palette
fancy gruvbox
16 onedark
🌐 user ~/myproject [🌿 main]
Atom & VS Code One Dark · Classic blue
fancy onedark
17 sorin
user@pc ~/myproject [🌿 main]
Oh My Zsh Sorin · Modern clean arrow
fancy sorin
18 spaceship
🚀 user in ~/myproject [🌿 main]
Spaceship ZSH inspired · Iconic rocket
fancy spaceship
19 halflife
λ ~/myproject [🌿 main]
Half-Life scientist lambda · Warm orange
fancy halflife
20 paradox
⚡ ~/myproject [🌿 main]
Oh My Posh Paradox · Chevron powerline
fancy paradox
21 bureau
[user@pc] ~/myproject [🌿 main]
Oh My Zsh Bureau · Multi-line with brackets
fancy bureau
22 gallifrey
~/myproject [🌿 main]
Sci-Fi TARDIS gold & deep cyan palette
fancy gallifrey
23 material
💎 user ~/myproject [🌿 main]
Google Material Design · Emerald & cyan
fancy material
24 monokai
🔥 user in ~/myproject [🌿 main]
Sublime/VS Code Monokai Pro neon
fancy monokai
25 palenight
🍇 ~/myproject [🌿 main]
Material Palenight · Purple lavender & pink
fancy palenight
26 powerlineclassic
user@pc ~/myproject [🌿 main]
Classic Powerline statusline style
fancy powerlineclassic
27 lambda
λ ~/myproject [🌿 main]
Oh My Zsh Lambda · Functional aesthetic
fancy lambda
28 hyper
~/myproject [🌿 main]
Hyper Terminal lightning pink & cyan
fancy hyper
29 slick
myproject [🌿 main]
Single-line ultra-slick dot indicator
fancy slick
30 matrix
📟 user@pc:~/myproject [🌿 main]
[matrix]❯
Hacker glowing green Matrix terminal
fancy matrix
31 sunset
🌇 ~/myproject [🌿 main]
Coral pink & warm sunset orange palette
fancy sunset
32 solarized
☀️ user in ~/myproject [🌿 main]
Solarized Dark warm cyan & yellow retro prompt
fancy solarized
33 rosepine
🌹 ~/myproject [🌿 main]
Rosé Pine muted rose & lavender aesthetic
fancy rosepine
34 everforest
🌲 user ~/myproject [🌿 main]
Everforest deep forest green & warm amber
fancy everforest
35 kanagawa
🌊 user in ~/myproject [🌿 main]
Kanagawa Wave Japanese ink blue & dragon gold
fancy kanagawa
36 nightowl
🦉 user ~/myproject [🌿 main]
Night Owl midnight navy & vivid turquoise
fancy nightowl
37 cobalt2
⚡ user in ~/myproject [🌿 main]
Cobalt2 electric blue & bright yellow prompt
fancy cobalt2
38 shadesofpurple
🍇 ~/myproject [🌿 main]
❯❯
Shades of Purple royal purple & glowing yellow
fancy shadesofpurple
39 ayu
🎨 user ~/myproject [🌿 main]
Ayu Dark clean orange & bright teal contrast
fancy ayu
40 snazzy
✨ ~/myproject [🌿 main]
Hyper Snazzy vivid magenta & electric cyan
fancy snazzy
41 outrun
🌆 user in ~/myproject [🌿 main]
▶▶
Outrun 84 80s neon sunset pink & cyan
fancy outrun
42 oceanic
🌊 ~/myproject [🌿 main]
Oceanic Next deep sea cyan & coral red
fancy oceanic
43 moonlight
🌙 user ~/myproject [🌿 main]
Moonlight deep indigo & sky blue accent
fancy moonlight
44 papercolor
📜 user@pc ~/myproject [🌿 main]
PaperColor high contrast monochrome accent
fancy papercolor
45 horizon
🌄 ~/myproject [🌿 main]
Horizon Dark warm coral & peach sunset
fancy horizon
46 catppuccin_frappe
☕ user in ~/myproject [🌿 main]
❯❯
Catppuccin Frappé cool muted pastel lavender
fancy catppuccin_frappe
47 dracula_pro
🗡️ user ~/myproject [🌿 main]
Dracula Pro neon violet & emerald blade
fancy dracula_pro
48 cyber_samurai
🥷 user ~/myproject [🌿 main]
❯❯❯
Cyber Samurai crimson red & neon cyan edge
fancy cyber_samurai
49 evergreen
🍃 ~/myproject [🌿 main]
Evergreen fresh mint & leaf green prompt
fancy evergreen
50 ghost
👻 user in ~/myproject [🌿 main]
Ghost Shell translucent grey & phantom white
fancy ghost
51 oxide
⚙️ ~/myproject [🌿 main]
Oxide Rust burnt orange & copper tone
fancy oxide
52 neon_pulse
🔮 user ~/myproject [🌿 main]
Neon Pulse vivid lime & electric pink prompt
fancy neon_pulse
53 volcano
🌋 ~/myproject [🌿 main]
Volcano Magma fiery red & obsidian obsidian
fancy volcano
54 sakura
🌸 user in ~/myproject [🌿 main]
Sakura Cherry blossom pink & pastel green
fancy sakura
55 galaxy
🌌 user ~/myproject [🌿 main]
✨ ❯
Galaxy Nebula deep space indigo & purple
fancy galaxy

Interactive Command Explorer

Search over 60 built-in developer aliases and commands instantly by name, category, or command expansion:

🛠️ Terminal Simulator

Click any quick command chip below to test how fancybash executes interactive utilities live:

fancybash terminal simulator v2.0 tty1
🚀 fancybash ❯ System initialized. Click any chip below to simulate a command!

⚙️ Custom Installer & Config Builder

Tailor your installation script and custom environment flags:

1. Select Shell Target:

2. Select Optional Features:

Generated Installation Command:

Tailored Installer Command
curl -fsSL https://fancybash.netlify.app/public/install.sh | bash

Generated Environment Config Block:

Custom Config Flags
# fancybash custom configuration

Every alias and command available in fancybash — mirrored exactly from the home page. Not a single one is missing.

Command Action
.. Go up one directory
... Go up two directories
.... Go up three directories
dev Jump to ~/Development
fr Jump to Frontend folder
ba Jump to Backend folder
fu Jump to Fullstack folder
fig Jump to Figma folder
ar Jump to Archive folder
de Jump to Dev folder
des Jump to Desktop
doc Jump to Documents
dow Jump to Downloads
bv Jump to Brave Downloads (~/Downloads/Brave)
ch Jump to Chrome Downloads (~/Downloads/Chrome)
gp Jump to Google Photos Downloads
pic Jump to Pictures
vid Jump to Videos
mus Jump to Music
rd Jump to root directory (/)

📦 NPM & Bun Commands

Alias Expands To
ni npm install
nid npm install -D
nr npm run
nrd npm run dev
nrb npm run build
nrs npm run start
bi bun install
br bun run
brd bun run dev
bhot bun --hot
w bun --watch
brb bun run build
brs bun run start
html bun run index.html

🌿 Git Version Control

Command Description
gi Initialize new git repository
gs Git status (short format)
ga Stage all files (git add .)
gcm "msg" Commit with message
gps Push to remote
gpl Pull from remote
gl Pretty git log with graph
gco <branch> Checkout branch
gcb <name> Create & checkout new branch
gd View diff
gst / gsta / gpop Stash / Apply stash / Pop stash
gwip Quick WIP commit + auto push to current branch
gc [URL] Git Clone project
gbranch Interactive Git branch manager — sorted by most-recently-committed. Flags: -l local · -r remote · -a all · -h help
🌿 gbranch — Interactive Git Branch Manager Deep-Dive

Usage: gbranch [-l] [-r] [-a] [-h] — Replaces standard git branch with an interactive fuzzy branch manager. Branches are sorted by most recently committed.

Flags:

Flag Description
-l, --local Show local branches only
-r, --remote Show remote branches only
-a, --all Show all local and remote branches (default)
-h, --help Print usage reference and keybindings

Interactive FZF Keybindings:

Keybinding Action / Operation
Enter Checkout selected branch (git checkout)
Ctrl-D Delete local branch (git branch -D) with confirmation prompt
Ctrl-R Rebase current branch onto selected (git rebase)
Ctrl-O Merge selected branch into current (git merge)

Features: Live commit graph preview on the right (hash, author, date, subject). Smart remote checkout auto-strips origin/ prefix. Fallback chain: fzfgum filter → numbered menu.

🔧 Project Initialization

Command Description
ii Interactive project init — choose Bun or NPM
next Scaffold Next.js app via Bun or NPM
vite Scaffold Vite project with optional Tailwind CSS v4
ui Install & init Shadcn/UI with component selection
css Auto-install Tailwind CSS + clsx + tailwind-merge
run Interactive JS/TS file runner via Bun
pg <file> Smart Universal Package Converter (.deb, .rpm, .tgz)
makecpp Advance C/C++ boilerplate generator (auto cd, makefile, git, vscode)
make run Compile and run the generated C/C++ project
make clean Remove compiled binary file

⚙️ System & Maintenance

Command Description
uup Mega Updater — OS + Snap + Flatpak + Bun + Node.js via fzf
uu Universal Uninstaller — fuzzy search across all package managers
uc Universal system clean (cache, orphans, logs)
update Update system packages
clean Clean apt cache & remove orphaned packages
setuppc Bootstrap a new PC with all essential developer tools
rt Install Node.js (via nvm), Bun, and Deno
ut Setup optimized CLI tooling for the PC
rel Reload .bashrc configuration
myip Show your public IP address
iploc Show IP + city/region/org info via ipinfo.io
ports List all open ports
kp <port> Kill the process running on a given port
serve Start a local Python HTTP server in current directory

🐳 Docker Container Suite

Command Description
dman 🐳 Docker Desktop & DevOps Terminal Edition (interactive TUI dashboard)
dstats Live realtime Docker resource usage dashboard
dps List running containers (clean table format)
dpsa List all containers (clean table format)
sdps / sdpsa sudo versions of dps / dpsa
sdi sudo docker images
sdvl / sdnl sudo volume / network list
sdsize / sdtop sudo disk usage / live stats
di List all images
dvl List all volumes
dnl List all networks
dsize Monitor Docker disk space
dtop Monitor container stats
dstop Stop a container
drestart <name> Restart a container
dkill Force kill a container
drm Remove container
drmi Remove image
dstopall Stop all containers
drmall Remove all containers
dsh <name> Enter container terminal
dlogs <name> Live tail container logs
dbuild Build Docker image
dbuild-nocache Build image without cache
dhist <image> View image layer history
dports <name> Check open port bindings of a container
dcup Docker Compose up -d
dcdn Docker Compose down
dclogs Follow compose service logs
dcupb Rebuild images and start services (up -d --build)
dtest-ubuntu / dtest-node / dtest-alpine Quick test sandbox containers
dfind <name> Search containers and images by name
droot <name> Enter container as root user
dip <name> Show container local IP address
dwatch <name> Watch live file changes inside container
dnetstat <name> Inspect active network connections inside container
dtop-proc <name> Show process tree inside container
dbackup <vol> <file> Backup Docker volume to .tar archive
dkill-force Force kill all running containers with confirmation
dclean Deep clean system (prune all unused resources with gum UI)
dstart Start the Docker service (systemctl start docker)
doff Stop the Docker service (systemctl stop docker)
dstatus Check if Docker is running or stopped
denable Enable Docker auto-start on boot
ddisable Disable Docker auto-start on boot

🐘 PostgreSQL

Alias Description
pgstart Start the PostgreSQL service
pgstop Stop the PostgreSQL service
pgrestart Restart the PostgreSQL service
pgstatus Check PostgreSQL service status
pgenable Enable PostgreSQL auto-start on boot
pgdisable Disable PostgreSQL auto-start on boot
pglogs Follow the PostgreSQL log file live
pgl Login as postgres user via psql
pgdb <name> Connect to a specific database (pgdb mydb)
pgls List all databases (\l)
pgtables List all tables in current DB (\dt)
pgdump <db> Dump / backup a database
pgrestore <db> Restore a database from file
pgusers List all users / roles (\du)
pgsize Show size of each database
pgver Show PostgreSQL version
pgconn Show active connections count
pgcreate <db> Create a new database
pgdrop <db> Drop / delete a database

💎 Prisma ORM

Alias Full Command Description
🟢 Node / NPX Prisma — np*
np npx prisma Base Prisma CLI command
npi npx prisma init Initialize Prisma in project
npg npx prisma generate Generate Prisma Client
nps npx prisma studio Open Prisma Studio GUI
npmd npx prisma migrate dev Run dev migrations
npmdn <name> npx prisma migrate dev --name Run named migration
npmr npx prisma migrate reset Reset DB & re-run migrations
npmdp npx prisma migrate deploy Apply pending migrations in production
npms npx prisma migrate status Check migration status
npdp npx prisma db push Push schema state directly to DB
npdl npx prisma db pull Pull schema from DB (Introspect)
npds npx prisma db seed Seed database using seed script
npf npx prisma format Format schema.prisma file
npv npx prisma version Show Prisma CLI & engine version
🥐 Bun Prisma — bp*
bp bunx prisma Base Prisma CLI via Bun runner
bpi bunx prisma init Initialize Prisma via Bun
bpg bunx prisma generate Generate Prisma Client via Bun
bps bunx prisma studio Open Prisma Studio GUI via Bun
bpmd bunx prisma migrate dev Run dev migrations via Bun
bpmdn <name> bunx prisma migrate dev --name Run named migration via Bun
bpmr bunx prisma migrate reset Reset database via Bun
bpmdp bunx prisma migrate deploy Apply migrations in prod via Bun
bpms bunx prisma migrate status Check migration status via Bun
bpdp bunx prisma db push Push schema directly to DB via Bun
bpdl bunx prisma db pull Pull schema from DB via Bun
bpds bunx prisma db seed Seed database via Bun
bpf bunx prisma format Format schema.prisma file via Bun
bpv bunx prisma version Check Prisma version via Bun

🔨 Utility Tools

Command Description Example
cf [dir] Dev Walk & Quick CD — live syntax preview (bat), image thumbnails (chafa), zoxide jump (CTRL-Z), video (CTRL-V), PDF (CTRL-P), code editor (CTRL-O), explorer (CTRL-E) cf .
mkd <name> Create directory and cd into it mkd my-app
t <file> Create a file with feedback t index.js
rmd <name> Force remove directory recursively rmd old-build
rmf <file> Remove file with confirmation rmf test.txt
rn [dir] Clean and bulk rename files in directory rn .
bak <file> Create a .bak backup copy bak .env
trash <file> Move file to system trash (safe delete) trash temp.log
ex <archive> Extract any archive format ex project.tar.gz
ff <name> Find file by name (skips node_modules) ff tsconfig
gen <len> Generate cryptographically secure secret key gen 32
h <word> Search command history h docker
to Open current directory in VS Code
v Play video in terminal
c / cls Clear the terminal screen
gbranch Interactive Git branch manager — sorted by most-recently-committed. Flags: -l local · -r remote · -a all gbranch -l
fkill [query|port] Advanced interactive process killer — sorted by CPU. Pre-filter by name or kill by port number fkill node / fkill 3000
fcd Fuzzy quick directory jump (fzf / gum)
cf — Dev Walk & Quick CD Keybindings & Live Preview

Usage: cf [directory] (Defaults to .) — Interactive fuzzy navigator and multimedia launcher with live preview.

FZF Interactive Keybindings:

Keybinding Operation / Action
ENTER Navigate into directory OR open file in default app/editor
CTRL-Z Switch candidate list to System Frecent Directories (zoxide)
CTRL-V Play selected video file with v() player
CTRL-P Open selected PDF document in Browser
CTRL-O Open file or directory in Code Editor (code / cursor / nvim)
CTRL-E Open directory in GUI File Manager (Nautilus / Dolphin / Explorer)
CTRL-Y Copy path to Clipboard (wl-copy / xclip / pbcopy)
CTRL-H Navigate to Parent Directory (..) inside FZF

Live Preview Features:

  • 📁 Directories: Interactive folder tree (eza / tree / ls), Git active branch & recent 3 commits.
  • 📄 Code & Text: Colorized syntax-highlighted preview via bat / batcat.
  • 🖼️ Images: High-resolution terminal thumbnail preview powered by chafa.
  • 📦 Archives: Previews .zip, .tar.gz, .7z, .rar contents without extracting.
  • 🎵 Audio & Video: Audio metadata preview (mediainfo) and video quick actions.
fkill — Advanced Interactive Process Killer Deep-Dive

Usage: fkill [query] [port_number] — Processes are sorted by CPU usage (highest first) so resource-hungry processes are instantly visible.

Arguments & Usage:

Argument Description
(none) Open all processes sorted by CPU descending
fkill node Pre-filter process list to show only node processes
fkill 3000 Directly find and kill process running on port 3000 (via ss / lsof)

FZF Interactive Keybindings:

Keybinding Action / Operation
Tab Multi-select multiple processes at once
Enter Soft kill selected process(es) (SIGTERM — graceful shutdown)
Ctrl-X Force kill selected process(es) (SIGKILL -9 — immediate)
Ctrl-R Reload live process list without closing FZF

Process Type Badges:

  • [APP] User GUI Applications (Chrome, VS Code, Slack, Discord, Firefox, VLC, Zed, Spotify)
  • [SYS] System Services & Daemons (root, systemd, dbus)
  • [USR] User CLI, Scripts & Shell processes (node, python, npm, bash)

📋 Todo & Notes Manager

Command Description Example
📋 Todo Manager — ~/.todo_list.txt
todo Open interactive gum menu, or show numbered task list
todo add "task" Add a new task directly as argument todo add "Buy milk"
todo add Add task via interactive prompt (gum / read)
todo list Show all pending tasks with line numbers
todo done Mark done — fzf picker → gum chooser → ask for number todo done 2
todo clear Clear all tasks from the list
todo --help Show full usage reference
📝 Notes Manager — ~/.my_notes/
notes Browse all notes with fzf + live preview
notes add Add a note — pick category, enter title, write content
notes search Full-text search inside all notes (fzf + grep -F) notes search "docker"
notes find Alias for notes search
notes --help Show full usage reference

🎬 FFmedia Suite — 24-in-1 FFmpeg Powerhouse

Command Description Options & Notes
ffmedia Interactive 24-in-1 FFmpeg multimedia menu (gum / fzf / prompt) Aliases: ffstudio, fftool
ffmedia compress Compress video preserving quality (50%–80% size reduction) CRF 23 / 28 / 32
ffmedia trim Fast & Lossless video trim without re-encoding Instant cut
ffmedia concat Merge multiple video clips seamlessly into one file Wildcard match
ffmedia resolution Convert resolution (1080p/720p) or crop/blur to 9:16 Reels Shorts & Reels
ffmedia speed Slow Motion (0.25x–0.5x) or Time-lapse (2x–8x) Video & Audio synced
ffmedia rotate Rotate (90°/180°) or Flip horizontally/vertically Mirroring & Transpose
ffmedia watermark Apply image logo or custom text banner watermark 5 positions
ffmedia grid Side-by-Side (2 videos) or 2×2 grid (4 videos) comparison Reaction & Compare
ffmedia audio-extract Extract audio to MP3, AAC, WAV, FLAC, M4A Lossless / High quality
ffmedia mute Strip audio stream completely from video Instant stream mute
ffmedia audio-replace Replace or mix background audio with existing video sound Background score
ffmedia loudness Loudness Normalization (–14 LUFS YouTube / –23 LUFS EBU) EBU R128 standard
ffmedia visualizer Generate Waveform or Frequency Spectrum video from audio Neon wave / Spectrum
ffmedia audio-speed Change audio playback speed while preserving voice pitch atempo filter
ffmedia snapshot Extract Ultra HD image frame (JPG/PNG) at exact timestamp High-res frame
ffmedia bulk-frames Bulk extract video frames as image sequence fps interval
ffmedia gif Render pro-quality ultra-sharp GIF using 2-pass palette Lanczos palettegen
ffmedia contact-sheet Generate 3×3 (9 snapshots) or 4×4 mosaic thumbnail grid image Video preview grid
ffmedia screen-record Record desktop screen + system audio straight from terminal x11grab / avfoundation
ffmedia subtitle-burn Hardcode .srt or .ass subtitle file into video stream Permanent burn-in
ffmedia subtitle-extract Extract embedded subtitle tracks from MKV/MP4 files Subrip .srt export
ffmedia privacy-clean Wipe EXIF, GPS location, camera settings, and editing history Metadata removal
ffmedia convert Convert video/audio format between MP4, MKV, WEBM, MOV, AVI Universal format swap
ffmedia batch Run bulk compression/conversion/metadata wiping on a folder Batch automation

🔐 Hardened Multi-Vault Security Suite

Command Description Security Features & Notes
vault Open interactive GUM/FZF multi-vault manager menu Aliases: secvault, fvault, fancy_vault
vault lock [path] Encrypt directory with AES-256 PBKDF2 (500,000 iter) & shred original Multi-pass secure shredding
vault unlock [name] Decrypt vault directly into RAM (/dev/shm) & symlink to $HOME RAM execution guard
vault list List all encrypted vaults stored in ~/.secret_vaults File sizes & active status
vault delete [name] Permanently shred encrypted vault file after password verification Aliases: vault remove, vault rm
vault config Configure Telegram Bot Token & Chat ID for instant alert notifications Telegram Bot API
vault --help Show complete multi-vault usage reference Panic password & auto-relock details

🏗️ Architecture & Safety Specs

fancybash is engineered with safety as its primary design principle. Every modification made to shell configs is protected by boundary markers and automatic backup snapshots.

Performance Benchmark

⚡ Shell Performance Deep-Dive · v2.0.0
Real empirical measurements across 7 shell environments — Bash, Zsh, Fish, PowerShell, Oh My Zsh, Oh My Posh, and FancyBash — captured on live hardware using hyperfine & POSIX time. Lower is better for startup & latency. Higher is better for feature scores.
Intel i5-1145G7 @ 2.60GHz 7.5 GB RAM · Linux Deepin 25 Kernel 6.18.38-amd64-desktop Bash 5.2.21 · Zsh 5.9 · Fish 3.7.1 PS 7.4.6 · OMZ 5.9 · OMP 24.8 hyperfine 1.18 · 10 warmup runs
FancyBash
25ms
Config Source · .zwc bytecode
🐚
Bash 5.2
30ms
Config Source · plain text
🐟
Fish 3.7
68ms
Cold interactive startup
🔷
Zsh Raw
102ms
Interactive startup · optimised
🔵
PowerShell 7
380ms
PS7 cold start · Windows compat
🎨
Oh My Posh
210ms
Zsh + OMP binary per prompt
🔴
Oh My Zsh
890ms
Default plugins cold start

Cold interactive shell startup measured via hyperfine --warmup 3 'zsh -i -c exit' and equivalent per shell. FancyBash Zsh uses pre-compiled .zwc bytecode + single-pass compinit -C dump cache. Bars are scaled relative to the worst performer (Oh My Zsh · 890 ms).

FancyBash (.zwc) ⚡ FAST
25 ms
$ Bash 5.2
30 ms
🐟 Fish 3.7
68 ms
% Zsh (Optimised)
102 ms
% Zsh (Unoptimised)
~457 ms
🎨 Oh My Posh
210 ms
🔵 PowerShell 7
380 ms
😱 Oh My Zsh
890 ms
📊 hyperfine --warmup 3 raw output (summarised)
Benchmark 1: zsh -i -c exit # FancyBash .zwc Time (mean ± σ): 25.3 ms ± 1.2 ms [User: 14.8 ms, System: 8.7 ms] Range (min … max): 23.9 ms … 27.1 ms 10 runs Benchmark 2: bash --login -i -c exit Time (mean ± σ): 30.1 ms ± 0.9 ms [User: 18.2 ms, System: 10.4 ms] Range (min … max): 29.0 ms … 31.8 ms 10 runs Benchmark 3: fish -c exit Time (mean ± σ): 68.4 ms ± 2.1 ms [User: 42.1 ms, System: 24.8 ms] Range (min … max): 65.2 ms … 72.9 ms 10 runs Benchmark 4: pwsh -NonInteractive -Command exit Time (mean ± σ): 380.2 ms ± 12.4 ms [User: 290.7 ms, System: 85.4 ms] Range (min … max): 362.1 ms … 401.5 ms 10 runs Benchmark 5: zsh -i -c exit # Oh My Zsh default Time (mean ± σ): 890.0 ms ± 38.7 ms [User: 610.3 ms, System: 278.4 ms] Range (min … max): 843.2 ms … 954.1 ms 10 runs Summary: FancyBash (.zwc) is 35.2× faster than Oh My Zsh · 12.6× faster than PowerShell 7
🔬 All startup times measured with 10 warm-up runs + 10 timed runs (hyperfine defaults). Zsh FancyBash cold start (first ever launch, no bytecode) measured at ~169 ms; subsequent launches with pre-compiled .zwc drop to 25 ms. PowerShell measured on Linux (pwsh 7.4.6); Windows figures are typically 200–250 ms faster due to native assembly caching.

Per-keypress prompt render latency (precmd / PROMPT_COMMAND hook). Measured via zsh -c 'time (source ~/.zshrc; print -P $PROMPT)' and equivalent. FancyBash uses async background workers + RAM tmpfs caching to keep prompt rendering under 1 ms.

FancyBash precmd 🏆 <1ms
<1 ms
$ Bash PROMPT_COMMAND
36 ms
🐟 Fish prompt
30 ms
% Zsh (native async)
21 ms
🔵 PS7 $PROFILE prompt
80 ms
🎨 Oh My Posh (binary)
150 ms
😱 Oh My Zsh prompt
97 ms
Tool Version Cache (per prompt call)
npm -v live call
115 ms
node -v live call
4 ms
bun -v live call
3 ms
FancyBash RAM cache (all tools) 🏆 INSTANT
<1 ms
FancyBash replaces all external binary calls in the prompt with RAM tmpfs cache reads (background worker populates once per session) and native Zsh parameter expansions (${PWD:t}, ${USER}). This saves ~122 ms per prompt render vs. naive shell configs calling npm -v, basename, whoami, etc. on every keypress.

RSS memory footprint after interactive shell is fully loaded. Measured via /usr/bin/time -v zsh -i -c exit 2>&1 | grep 'Maximum resident'. FancyBash has 0 mandatory plugin dependencies.

FancyBash 🏆 LIGHTEST
3.9 MB
$ Bash 5.2
4.2 MB
🐟 Fish 3.7
8.7 MB
% Zsh (Optimised)
5.4 MB
🔵 PowerShell 7
78 MB
🎨 Oh My Posh (+Zsh)
17.5 MB
😱 Oh My Zsh (default plugins)
~100 MB
External binary subshell forks per prompt render
FancyBash
0 forks
$ Bash (typical)
3 forks
😱 Oh My Zsh
8+ forks
🎨 Oh My Posh
1 binary/prompt
💾 PowerShell's high RSS (~78 MB) is expected — it loads the .NET runtime. Oh My Zsh with git, nvm, docker, python, npm plugins active can exceed 100 MB RSS due to plugin autoloads. FancyBash uses zero mandatory plugins; optional plugin integrations (zsh-autosuggestions, zsh-syntax-highlighting) add ~1.2 MB combined.
Legend — Performance Axes
  • FancyBash (Zsh .zwc)
    Bytecode · RAM cache · 0 subshells
  • Bash 5.2
    Fast · minimal features
  • Fish 3.7
    Good UX · no POSIX compat
  • PowerShell 7
    Cross-platform · .NET runtime
  • Oh My Zsh
    Feature-rich · very heavy
  • Oh My Posh
    Beautiful themes · binary cost
Axes: Startup Speed · Prompt Speed · Memory Efficiency · Feature Count · Theme Richness · POSIX Compat
All axes normalised 0–10. Higher = better.
Complete Metrics Matrix
Metric
FancyBash
🐚Bash 5.2
🔷Zsh Raw
🐟Fish 3.7
🔵PS7
🔴Oh My Zsh
🎨Oh My Posh
Cold Startup 25 ms ⚡ 30 ms 102 ms 68 ms 380 ms 890 ms 210 ms
Prompt Latency <1 ms ⚡ 36 ms 21 ms 30 ms 80 ms 97 ms 150 ms
Config Source 25 ms (.zwc) 30 ms 169 ms N/A N/A 340 ms N/A
Memory (RSS) 3.9 MB 4.2 MB 5.4 MB 8.7 MB 78 MB ~100 MB 17.5 MB
Subshell Forks/Prompt 0 ⚡ 3 2–4 0–1 1–2 8+ 1 binary
compinit Calls 1 (cached) N/A 3 (redundant) N/A N/A 2–3 N/A
Themes / Prompts 55 built-in Manual Manual Manual Manual 150+ 100+
Git Branch (async) 0 ms ⚡ ~150 ms ~150 ms async ~80 ms ~200 ms async
Cross-Platform Linux/Mac/Win Linux/Mac Linux/Mac Linux/Mac/Win All OSes Linux/Mac All OSes
POSIX Compatible ✅ Yes ✅ Yes ✅ Yes ❌ No ❌ No ✅ Yes Wrapper
bytecode cache ✅ .zwc Manual
Install (1-line) ✅ All shells ❌ Manual ❌ Manual ❌ Manual ❌ Manual ✅ curl ✅ winget/brew
Key Optimisation Techniques
⚙️
Zsh Bytecode Compilation
Run zcompile ~/.zshrc to produce a .zwc binary. Zsh loads it directly without re-parsing text, reducing sourcing from ~169 ms → 25 ms. FancyBash auto-recompiles via the fb-recompile command.
🔒
Single-Pass compinit Caching
Replace 3× redundant compinit calls with one guarded block using compinit -C -d ~/.zcompdump and a 24-hour freshness check. Saves ~150 ms per launch.
🚀
Native Parameter Expansions
Replace $(basename "$PWD") with ${PWD:t}, $(whoami) with $USER, and $(cat file) with ${(<file)}. Eliminates all subshell forks from prompt rendering.
Async Background Workers
Git branch, node version, and system health metrics are computed in disowned subshells (&!) and written to RAM tmpfs. The prompt reads cached values with zero latency.
🛡️
Non-Interactive Guarding
All UI/prompt code is wrapped in [[ -o interactive ]] guards. Non-interactive Zsh scripts run in ~3 ms instead of ~180 ms (UI plugins fully skipped).
🐟
Fish: Separate Config
Fish has no POSIX compat overhead — its startup is naturally fast (68 ms). FancyBash's config.fish brings the same themes and command set with pure Fish syntax.
🔵
PowerShell: Module Autoload
PS7's 380 ms startup is the .NET runtime. Use Import-Module inside if ($Host.Name -eq 'ConsoleHost') guards and oh-my-posh init pwsh only on interactive sessions to minimise overhead.
🎨
Oh My Posh: Theme Pre-cache
Oh My Posh spawns a Go binary every prompt render (~150 ms). Mitigate with --config ~/.omp.json referencing a minimal theme and enabling OMP's built-in concurrency flags. FancyBash avoids this entirely.
📋 All data measured on Intel Core i5-1145G7 @ 2.60GHz, 7.5 GB RAM, Linux Deepin 25 (Kernel 6.18.38). Hyperfine v1.18, 10 warmup + 10 timed runs. Oh My Zsh version 5.9 with default plugin set. Oh My Posh 24.8 on Zsh 5.9. PowerShell 7.4.6 (pwsh) on Linux. All shells tested on the same machine session, cold filesystem caches cleared between runs. Figures reproduced from BENCHMARK.md.

Troubleshooting & FAQ

❓ Emojis or icons display as broken rectangles?

This indicates your terminal emulator does not have an emoji fallback font installed. On Linux, run: sudo apt install fonts-noto-color-emoji && fc-cache -fv and restart your terminal.

❓ How do I revert to my original pre-fancybash shell config?

The installer automatically creates a timestamped backup before touching your files. Check your home directory for files like ~/.bashrc.backup_YYYYMMDD_HHMMSS and copy it back over ~/.bashrc.

Contributing & License

fancybash is free and open-source software licensed under the MIT License. Contributions, bug reports, and feature pull requests are warmly welcomed on the official GitHub repository!

🔍 ESC to close