Skip to content

CLI Tools ​

Modern replacements for classic commands

The dotfiles embrace a new generation of CLI tools that improve on Unix classics with better defaults, richer output, and modern features.

The Modern CLI Stack ​

ClassicModernWhy Upgrade
lslsdIcons, colors, tree view, git integration
catbatSyntax highlighting, line numbers, git diff
findfd5x faster, respects .gitignore, regex by default
grepripgrep10x faster, smart defaults, beautiful output
cdzoxideLearns your habits, fuzzy matching
psprocsHuman-readable, colorful, tree view
diffdeltaSyntax highlighting, side-by-side, git aware
tophtopInteractive, better UI, easier to read
historyatuinSQLite-backed, cross-machine sync, per-dir
nvmprotoMulti-language version manager, fast, declarative

All tools are pre-configured with the SilkCircuit theme and sensible defaults.

Tool Highlights ​

Ghostty Terminal ​

The primary terminal emulator, Ghostty is GPU-accelerated and native on both macOS and Linux. Configured with SilkCircuit colors and platform-specific settings in ghostty/.

Atuin Shell History ​

Atuin replaces standard shell history with a SQLite-backed, searchable database featuring cross-machine sync, per-directory filtering, and a SilkCircuit-themed UI (the theme file is installed by the SilkCircuit installer). The shell module (sh/atuin.sh) loads after fzf so Atuin owns history search in both Bash and Zsh.

Press Ctrl+R for workspace search, or Up for prefix search using the current buffer. Ctrl+T and Alt+C remain fzf file and directory pickers. The helpers hfail and hlast search user commands; hagents searches agent commands. The configuration enables the search daemon and disables Atuin's AI, dotfiles management, and PTY proxy features.

Proto Version Manager ​

Proto manages language runtime versions declaratively via .prototools. Currently pins Node.js, pnpm, Rust, and moon. Auto-detects version files and integrates with the shell PATH.

Starship Prompt ​

Fast, minimal, cross-shell prompt with:

  • Git status and branch
  • Language versions (Node, Python, Rust, Go, Java, Kotlin)
  • Command duration
  • Custom SilkCircuit gradient theme
  • Context-aware modules

Tmux ​

Terminal multiplexer configured with:

  • SilkCircuit-themed status bar
  • Mouse support enabled
  • Intuitive split bindings (| and -)
  • Plugin manager (TPM) pre-configured
  • Seamless pane navigation

FZF ​

Fuzzy finder integrated throughout the system:

  • File and directory navigation
  • Command history search
  • Git operations (add, checkout, log, stash)
  • Process management
  • Docker container selection
  • Environment variable search

Modern CLI Tools ​

Detailed guides for each tool:

  • lsd — File listing with icons
  • bat — File viewing with syntax highlighting
  • fd — Fast file finding
  • ripgrep — Blazing fast code search
  • zoxide — Smart directory jumping
  • procs — Modern process viewer
  • delta — Beautiful git diffs

Quick Examples ​

File Operations ​

bash
# List with icons and colors
ll

# Tree view
lt

# View file with syntax highlighting
bat config.ts

# Find files fast (respects .gitignore)
fd pattern

# Search code (10x faster than grep)
rg "TODO" --type ts
bash
# Jump to frequently used directory
z project

# Interactive directory selection
zi

# Fuzzy-find and cd
fcd

Git Operations ​

bash
# Beautiful git diffs (automatic)
git diff

# Interactive file staging
gadd

# Fuzzy branch checkout
gco

# Interactive log browser
glog

System Information ​

bash
# Modern process viewer
procs

# Interactive process killer
fkill

# System overview
sys

# Memory info with visual bar
meminfo

Installation ​

All modern CLI tools are automatically installed during dotfiles setup:

macOS:

bash
# Installed via Homebrew in macos/brew.sh
brew install lsd bat fd ripgrep zoxide procs git-delta htop

Linux:

bash
# Ubuntu/Debian
apt-get install lsd bat fd-find ripgrep

# Install via cargo for latest versions
cargo install lsd bat fd-find ripgrep zoxide procs git-delta

Post-Install:

bash
# Verify installation
lsd --version
bat --version
fd --version
rg --version
delta --version
zoxide --version

Configuration ​

Each tool is configured in the dotfiles:

ToolConfig LocationPurpose
Ghosttyghostty/config, ghostty/*.confTerminal emulator
Starshipsilkcircuit: extras/starship/Prompt customization
Tmuxtmux.confKey bindings, theme
Atuinatuin/config.tomlShell history
Protoproto/.prototoolsLanguage versions
lsdlsd/config.yamlDisplay settings
batsilkcircuit: extras/bat/Theme, syntax settings
Deltagitconfig (delta section)Git diff styling
procssilkcircuit: extras/procs/Process display
FZFsh/fzf.sh, sh/env.sh (ENV vars)Defaults, key bindings
zoxideAutomatic (tracks your usage)Database stored in XDG

Font Requirements ​

Many modern CLI tools use Nerd Font icons for the best experience:

Recommended Fonts:

  • JetBrains Mono Nerd Font
  • Fira Code Nerd Font
  • Hack Nerd Font
  • Meslo LG Nerd Font

Install on macOS:

bash
brew install --cask font-jetbrains-mono-nerd-font
brew install --cask font-fira-code-nerd-font

Configure your terminal:

  • iTerm2: Preferences → Profiles → Text → Font
  • Kitty: Edit ~/.config/kitty/kitty.conf
  • Alacritty: Edit ~/.config/alacritty/alacritty.yml

Customization Examples ​

Change lsd Colors ​

yaml
# lsd/config.yaml
color:
  when: always
  theme: custom

icons:
  when: always
  theme: fancy

Customize bat Theme ​

bash
# Use a different syntax theme
bat --theme="TwoDark" file.ts

# Set permanently
export BAT_THEME="TwoDark"

Modify FZF Appearance ​

bash
# In ~/.rc.local
export FZF_DEFAULT_OPTS="
  --height 80%
  --layout=reverse-list
  --border rounded
  --preview-window right:60%
"

Delta Side-by-Side Diffs ​

ini
# In gitconfig
[delta]
    side-by-side = true
    line-numbers-left-format = ""
    line-numbers-right-format = "│ "

Performance ​

Modern tools are significantly faster than their classic counterparts:

ToolPerformanceComparison
ripgrep10x faster than grepRecursive search
fd5x faster than findFile finding
lsd~2x faster than lsDirectory listing
batSimilar to catWith features
zoxideInstantDirectory jump

All tools are written in Rust, providing memory safety and blazing performance.

Integration Points ​

Modern CLI tools are integrated throughout the dotfiles:

Shell Scripts:

  • sh/fzf.sh — FZF functions
  • sh/git.sh — Delta for diffs, FZF for git operations
  • sh/docker.sh — FZF for container selection
  • sh/directory.sh — zoxide integration
  • sh/process.sh — procs integration

Neovim:

  • Telescope uses fd and ripgrep
  • File explorer shows lsd-style icons
  • Git diff uses delta preview

Tmux:

  • Status bar styled with SilkCircuit theme
  • Integrates with system clipboard

Troubleshooting ​

Icons Not Showing ​

Issue: Boxes or question marks instead of icons

Solution:

  1. Install a Nerd Font (see Font Requirements above)
  2. Configure your terminal to use the Nerd Font
  3. Restart your terminal

Colors Look Wrong ​

Issue: Colors are off or missing

Solution:

bash
# Check terminal color support
echo $TERM

# Should be: xterm-256color or screen-256color
# If not, add to ~/.zshrc:
export TERM=xterm-256color

FZF Not Working ​

Issue: FZF commands hang or don't show preview

Solution:

bash
# Check if fzf is installed
which fzf

# Verify preview command works
bat --version

# Test manually
echo "test" | fzf --preview 'echo {}'

Bat Can't Find Theme ​

Issue: bat: Unknown theme error

Solution:

bash
# Rebuild bat cache
bat cache --build

# List available themes
bat --list-themes

Next Steps ​

Released under the MIT License