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
| Classic | Modern | Why Upgrade |
|---|---|---|
ls | lsd | Icons, colors, tree view, git integration |
cat | bat | Syntax highlighting, line numbers, git diff |
find | fd | 5x faster, respects .gitignore, regex by default |
grep | ripgrep | 10x faster, smart defaults, beautiful output |
cd | zoxide | Learns your habits, fuzzy matching |
ps | procs | Human-readable, colorful, tree view |
diff | delta | Syntax highlighting, side-by-side, git aware |
top | htop | Interactive, better UI, easier to read |
history | atuin | SQLite-backed, cross-machine sync, per-dir |
nvm | proto | Multi-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
# 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 tsNavigation
# Jump to frequently used directory
z project
# Interactive directory selection
zi
# Fuzzy-find and cd
fcdGit Operations
# Beautiful git diffs (automatic)
git diff
# Interactive file staging
gadd
# Fuzzy branch checkout
gco
# Interactive log browser
glogSystem Information
# Modern process viewer
procs
# Interactive process killer
fkill
# System overview
sys
# Memory info with visual bar
meminfoInstallation
All modern CLI tools are automatically installed during dotfiles setup:
macOS:
# Installed via Homebrew in macos/brew.sh
brew install lsd bat fd ripgrep zoxide procs git-delta htopLinux:
# 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-deltaPost-Install:
# Verify installation
lsd --version
bat --version
fd --version
rg --version
delta --version
zoxide --versionConfiguration
Each tool is configured in the dotfiles:
| Tool | Config Location | Purpose |
|---|---|---|
| Ghostty | ghostty/config, ghostty/*.conf | Terminal emulator |
| Starship | silkcircuit: extras/starship/ | Prompt customization |
| Tmux | tmux.conf | Key bindings, theme |
| Atuin | atuin/config.toml | Shell history |
| Proto | proto/.prototools | Language versions |
| lsd | lsd/config.yaml | Display settings |
| bat | silkcircuit: extras/bat/ | Theme, syntax settings |
| Delta | gitconfig (delta section) | Git diff styling |
| procs | silkcircuit: extras/procs/ | Process display |
| FZF | sh/fzf.sh, sh/env.sh (ENV vars) | Defaults, key bindings |
| zoxide | Automatic (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:
brew install --cask font-jetbrains-mono-nerd-font
brew install --cask font-fira-code-nerd-fontConfigure your terminal:
- iTerm2: Preferences → Profiles → Text → Font
- Kitty: Edit
~/.config/kitty/kitty.conf - Alacritty: Edit
~/.config/alacritty/alacritty.yml
Customization Examples
Change lsd Colors
# lsd/config.yaml
color:
when: always
theme: custom
icons:
when: always
theme: fancyCustomize bat Theme
# Use a different syntax theme
bat --theme="TwoDark" file.ts
# Set permanently
export BAT_THEME="TwoDark"Modify FZF Appearance
# In ~/.rc.local
export FZF_DEFAULT_OPTS="
--height 80%
--layout=reverse-list
--border rounded
--preview-window right:60%
"Delta Side-by-Side Diffs
# 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:
| Tool | Performance | Comparison |
|---|---|---|
| ripgrep | 10x faster than grep | Recursive search |
| fd | 5x faster than find | File finding |
| lsd | ~2x faster than ls | Directory listing |
| bat | Similar to cat | With features |
| zoxide | Instant | Directory 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 functionssh/git.sh— Delta for diffs, FZF for git operationssh/docker.sh— FZF for container selectionsh/directory.sh— zoxide integrationsh/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:
- Install a Nerd Font (see Font Requirements above)
- Configure your terminal to use the Nerd Font
- Restart your terminal
Colors Look Wrong
Issue: Colors are off or missing
Solution:
# Check terminal color support
echo $TERM
# Should be: xterm-256color or screen-256color
# If not, add to ~/.zshrc:
export TERM=xterm-256colorFZF Not Working
Issue: FZF commands hang or don't show preview
Solution:
# 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:
# Rebuild bat cache
bat cache --build
# List available themes
bat --list-themesNext Steps
- Starship Configuration — Customize your prompt
- Tmux Guide — Terminal multiplexer setup
- FZF Integration — Fuzzy finding everywhere
- Modern CLI Deep Dive — Tool-by-tool guide