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.
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.
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:
curl -fsSL https://fancybash.netlify.app/i.sh | bash
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:
# 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:
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:
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:
uup # Upgrades OS packages, Flatpaks, Snaps & Bun
To cleanly uninstall fancybash without affecting any of your custom shell aliases or scripts:
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:
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.
# 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:
# 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`.
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:
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 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
⏱️ Nsfor any command taking longer than 1.0s.
Customizing Prompt Behavior
You can toggle individual prompt monitors by exporting environment variables in your
.bashrc / .zshrc:
# 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.
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:
# Open interactive scrollable theme gallery (all 55 themes)
fancy preview
# Aliases — all do the same thing
fancy list
fancy_theme preview
Switching Themes
Use the fancy command to switch themes interactively or directly by name:
# 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>:
❯❯❯
fancy minimal
🟢 v24 │ bun │ Aug 25
❯❯❯
fancy full
fancy robbyrussell
╰─❯
fancy p10k
❯
fancy agnoster
❯❯❯
fancy catppuccin
⚡
fancy tokyonight
❯
fancy dracula
❯
fancy nord
╰─$
fancy bira
❯
fancy pure
❯
fancy starship
▶▶
fancy cyberpunk
❯❯
fancy synthwave
❯
fancy gruvbox
❯
fancy onedark
❯
fancy sorin
➜
fancy spaceship
▶
fancy halflife
❯
fancy paradox
❯
fancy bureau
❯
fancy gallifrey
❯
fancy material
❯
fancy monokai
❯
fancy palenight
❯
fancy powerlineclassic
fancy lambda
❯
fancy hyper
fancy slick
[matrix]❯
fancy matrix
❯
fancy sunset
❯
fancy solarized
❯
fancy rosepine
❯
fancy everforest
❯
fancy kanagawa
❯
fancy nightowl
❯
fancy cobalt2
❯❯
fancy shadesofpurple
❯
fancy ayu
❯
fancy snazzy
▶▶
fancy outrun
❯
fancy oceanic
❯
fancy moonlight
❯
fancy papercolor
❯
fancy horizon
❯❯
fancy catppuccin_frappe
▶
fancy dracula_pro
❯❯❯
fancy cyber_samurai
❯
fancy evergreen
❯
fancy ghost
❯
fancy oxide
⚡
fancy neon_pulse
▶
fancy volcano
❯
fancy sakura
✨ ❯
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:
Custom Installer & Config Builder
Tailor your installation script and custom environment flags:
1. Select Shell Target:
2. Select Optional Features:
Generated Installation Command:
curl -fsSL https://fancybash.netlify.app/public/install.sh | bash
Generated Environment Config Block:
# fancybash custom configuration
Complete Command Reference
Every alias and command available in fancybash — mirrored exactly from the home page. Not a single one is missing.
📂 Navigation & Movement
| 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: fzf → gum 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,.rarcontents 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:
- User GUI Applications (Chrome, VS Code, Slack, Discord, Firefox, VLC, Zed, Spotify)
-
System Services & Daemons (
root,systemd,dbus) -
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
hyperfine & POSIX time. Lower is better for startup & latency. Higher is better for feature scores.
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).
.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.
${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 (Zsh .zwc)Bytecode · RAM cache · 0 subshells
-
Bash 5.2Fast · minimal features
-
Fish 3.7Good UX · no POSIX compat
-
PowerShell 7Cross-platform · .NET runtime
-
Oh My ZshFeature-rich · very heavy
-
Oh My PoshBeautiful themes · binary cost
All axes normalised 0–10. Higher = better.
| 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 |
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.
compinit calls with one guarded block using compinit -C -d ~/.zcompdump and a 24-hour freshness check. Saves ~150 ms per launch.
$(basename "$PWD") with ${PWD:t}, $(whoami) with $USER, and $(cat file) with ${(<file)}. Eliminates all subshell forks from prompt rendering.
&!) and written to RAM tmpfs. The prompt reads cached values with zero latency.
[[ -o interactive ]] guards. Non-interactive Zsh scripts run in ~3 ms instead of ~180 ms (UI plugins fully skipped).
config.fish brings the same themes and command set with pure Fish syntax.
Import-Module inside if ($Host.Name -eq 'ConsoleHost') guards and oh-my-posh init pwsh only on interactive sessions to minimise overhead.
--config ~/.omp.json referencing a minimal theme and enabling OMP's built-in concurrency flags. FancyBash avoids this entirely.
Troubleshooting & FAQ
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.
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!