A highly optimized, modular Zsh configuration focused on productivity, performance, and ease of use. Features modern tools integration, intelligent plugin management, and comprehensive error recovery.
- Lazy-loading for heavy tools (atuin, carapace)
- Compiled configs with zcompile for faster startup
- Smart completion system with daily cache refresh
- Startup benchmarking tools to monitor performance
- eza - Modern
lsreplacement with icons and git integration - bat - Syntax-highlighted file viewer (
viewcommand) - ripgrep - Lightning-fast search (
grepreplacement) - fd - User-friendly
findalternative - fzf - Fuzzy finder with enhanced previews and keybindings
- starship - Fast, customizable prompt
- zoxide - Smart directory jumping
- atuin - Enhanced shell history
- Zinit plugin manager for fast, automatic updates
- Essential plugins: autosuggestions, syntax highlighting, vi-mode
- One-command updates:
zinit update
- Enhanced navigation - Smart directory jumping, bookmarks
- Git integration - Comprehensive aliases and interactive log
- Search functions - Content search with preview, history search
- Process management - Interactive process finder/killer
- Note taking - Quick note system with daily files
- Archive management - Smart extract/compress functions
- Config health checks - Validate syntax and dependencies
- Automatic backups - Timestamped config backups before changes
- Emergency recovery - Minimal config fallback if things break
- Safe reload - Test config before applying
- Pre-commit hooks - Automated code quality checks before commits
- Shell script linting - ShellCheck integration for script validation
- Markdown formatting - Automatic documentation formatting
- Security scanning - Detect secrets and security issues
- Syntax validation - Zsh syntax checking for all configuration files
- Interactive help -
zsh-helpcommand with categories - Function discovery -
list-functionsshows available tools - Random tips -
tipscommand for learning new features
# Clone the repository
git clone https://github.com/remoterabbit/zsh.git ~/repos/personal/zsh
# Run the setup script
cd ~/repos/personal/zsh
./setup.sh
# Restart your terminal or reload
source ~/.zshenvThe setup script will:
- Install Zsh and modern tools (eza, bat, ripgrep, etc.)
- Install Zinit plugin manager
- Download and configure plugins
- Create proper symlinks to your config
- Compile configs for optimal performance
# Check configuration health
config-health
# Get help on available features
zsh-help
# Test performance
zsh-benchmark
# Try some features
j # Interactive directory jumper
search # Search file contents with preview
h # Interactive history searchzsh/
βββ .zshrc # Main configuration file
βββ .zshenv # Environment variables
βββ keybindings.zsh # Custom key bindings
βββ recovery.zsh # Error recovery system
βββ setup.sh # Automated setup script
βββ cleanup.sh # Configuration cleanup and optimization
βββ alias/ # Modular alias files
β βββ core # Basic aliases and modern tool integration
β βββ git # Git aliases and functions
β βββ navigation # Directory navigation helpers
β βββ productivity # Productivity functions
β βββ fzf-enhancements # Enhanced FZF functions
β βββ benchmark # Performance testing
β βββ help # Built-in help system
βββ README.md # This file
βββ CONFIGURATION.md # Detailed configuration documentation
goto-work,goto-personal,goto-open- Jump to repo directories with listingrepos,work,config- Zoxide shortcuts for common pathsj- Interactive directory jumper using fzftake <dir>- Create directory and cd into it..,...,....- Quick parent directory navigation
search <pattern>- Search file contents with syntax-highlighted previewf- Interactive file finder with actions (edit, copy, delete)h [pattern]- Interactive history search or pattern searchenv-search- Browse environment variables with fzf
g*- Comprehensive git aliases (gs, ga, gc, gl, gd, etc.)glog- Interactive git log with commit previewgcheck- Quick repository status overview
pgrep <pattern>- Search processes with highlightingpkill- Interactive process killer (fzf-powered)pkill-pattern <pattern>- Kill processes by pattern with confirmationbackup <file>- Create timestamped backuparchive <src> <dest>- Smart archive creation (tar.gz, zip)extract <archive>- Smart archive extractionsysinfo- System information summaryweather [city]- Get weather information
config-health- Check configuration healthbackup_config- Create configuration backuprestore_config- Restore from backupsafe_reload- Safely reload configurationemergency_recovery- Reset to minimal working config
zsh-benchmark- Comprehensive startup time analysiszsh-time- Quick startup time checkzsh-profile- Profile current session
zsh-help [category]- Comprehensive help systemlist-functions- Show available custom functionstips- Random productivity tipshelp <function>- Quick function help
Ctrl+F- Quick file finderCtrl+J- Quick directory jumperCtrl+G- Start content search
Ctrl+R- Interactive history searchCtrl+Y- Accept autosuggestionCtrl+E- Edit command in editorAlt+R- Reload configuration
jj,jk- Exit insert modeH,L- Beginning/end of line in command modeK,J- History search in command mode
Ctrl+/- Toggle preview in fzfCtrl+U/D- Preview page up/downCtrl+F/B- Page navigation
Create new files in alias/ directory:
# alias/custom
alias myalias="my command"
my_function() {
echo "Custom function"
}Add your personal customizations to the alias/ files or create new ones:
# alias/custom
export MY_VAR="value"
alias mycommand="echo hello"Edit .zshrc and add zinit lines:
zinit light "user/plugin-name"Add to .zshenv for login shell variables or .zshrc for interactive shell variables.
# Check configuration health
config-health
# Validate configuration syntax
validate_config
# Create backup before changes
backup_config
# Emergency reset if config is broken
emergency_recovery# Benchmark startup time
zsh-benchmark
# Profile what's slowing down startup
ZSH_BENCHMARK=1 zsh
# Clean up old backups
cleanup_backups# Update all plugins
zinit update
# Reinstall specific plugin
zinit delete user/plugin-name
zinit load user/plugin-name
# List installed plugins
zinit listTypical startup times:
- Cold start: ~100-150ms
- Warm start: ~50-80ms
- With benchmarking: ~200ms (includes profiling overhead)
Performance optimizations:
- Lazy-loading of heavy tools (atuin, carapace)
- Compiled configuration files
- Smart completion caching
- Async plugin loading with Zinit
- README.md - Getting started and overview
- CONFIGURATION.md - Detailed configuration documentation
- Built-in help - Run
zsh-helpfor interactive help system
./cleanup.sh # Clean backups, optimize performance
config-health # Check configuration health
zsh-benchmark # Monitor performance
zinit update # Update pluginspre-commit run --all-files # Run all quality checks
pre-commit install # Install git hooks
shellcheck *.sh # Lint shell scripts
zsh -n .zshrc # Validate zsh syntaxemergency_recovery # Reset to minimal working config
restore_config # Restore from backup
validate_config # Check syntax- Fork the repository
- Create a feature branch
- Test your changes with
config-healthandzsh-benchmark - Run
./cleanup.shto optimize - Submit a pull request
Unlicense - This is free and unencumbered software released into the public domain.
Built with these excellent tools:
- Zinit - Plugin manager
- Starship - Prompt
- eza - Modern ls
- bat - Better cat
- ripgrep - Fast search
- fd - Better find
- fzf - Fuzzy finder
- zoxide - Smart cd
- atuin - Shell history
Enjoy your supercharged Zsh experience! π
For questions or issues, run zsh-help or check the configuration health.