All skills

CLI & Deployment

modern-terminal-setup

Set up a modern, productive macOS/Linux terminal with curated CLI tools, fzf-powered keybindings, git history browsers, and a beautiful prompt. Use when the user asks to set up a terminal, install CLI tools, configure bash/zsh with modern replacements (bat, eza, ripgrep, fzf, zoxide, starship, lazygit, delta), or wants fzf-based keybindings for shell history and git. Also triggers on: "set up my terminal", "modern CLI tools", "better terminal", "fzf setup", "terminal productivity", "dev environment setup".

View raw .md →skills.sh →89 lines

Modern Terminal Setup

Transform a stock macOS/Linux terminal into a fast, beautiful, productive dev environment.

Prerequisites

  • macOS with Homebrew, or Linux with a package manager
  • Bash 4+ or Zsh (macOS ships bash 3.x — install newer via brew install bash)
  • A Nerd Font installed in your terminal emulator (for icons in eza/starship)

Tool Stack

ToolReplacesWhy
batcatSyntax highlighting, line numbers, git integration
ezalsIcons, git status, tree view
ripgrepgrep15x faster, respects .gitignore
fdfind7x faster, intuitive syntax
fzfCtrl+RFuzzy finder for everything
zoxidecdLearns frequent dirs, z foo jumps there
starshipPS1Fast Rust prompt with git/lang context
lazygitgit CLITUI for staging, committing, rebasing
deltadiffSide-by-side diffs with syntax highlighting
treels -RDirectory tree visualization

Quick Start

Run the install script then the shell configurator:

bash scripts/install.sh        # Install all tools (idempotent)
bash scripts/configure-shell.sh  # Append config to ~/.bashrc or ~/.zshrc
exec bash                        # Reload shell

Keybindings Reference

Shell & Files

KeyAction
Ctrl+RFuzzy shell history (replaces reverse-i-search)
Ctrl+TFuzzy file picker
Alt+CFuzzy cd into directory
Alt+FFile picker with bat preview

Git History Browsers

KeyAction
Ctrl+GCommit log with diff preview
Ctrl+Alt+HFile history — pick file, browse commits
Ctrl+Alt+DUncommitted changes browser
Ctrl+Alt+BBranch switcher with log preview

In-browser: Ctrl+D/U scroll, Ctrl+Y copy hash, Enter select.

Aliases

cat → bat | ls → eza --icons | ll → eza -la --git | lt → eza --tree
lg → lazygit | gac → git add+commit | gsw → git switch | gp → git push

Customization

  • FZF theme: Set FZF_DEFAULT_OPTS — see references/customization.md
  • Starship prompt: Edit ~/.config/starship.toml
  • Git delta: Add [core] pager = delta to ~/.gitconfig

Troubleshooting

  • Icons missing: Install a Nerd Font and set it in terminal settings
  • Ctrl+R shows old reverse-i-search: Source fzf keybindings AFTER history config
  • bash globstar error: You're on bash 3.x, run brew install bash