guide6 min read

The Developer's Terminal Setup Guide (2026)

This is a complete terminal setup guide. Start with nothing, end with a modern development environment — shell, prompt, file tools, git tools, and Docker management. Every tool listed here is on clihub with install commands.

Total setup time: about 30 minutes.


Step 1: Pick a Terminal Emulator

Your terminal emulator is the app that runs everything else. The default Terminal.app on macOS or GNOME Terminal on Linux works, but modern options are faster and more configurable.

Quick picks:

For a detailed comparison, see Best Terminal Emulators for Developers.


Step 2: Install a Package Manager

You need a package manager to install everything else.

macOS — Homebrew:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Linux — your distro's package manager (apt, dnf, pacman) plus optionally Homebrew for cross-platform consistency.

Windows — winget (built in) or Scoop:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression

Step 3: Pick a Shell

Your shell is the command interpreter. The three real options in 2026:

Fish — Works Out of the Box

Autosuggestions, syntax highlighting, smart tab completions — all built in, zero configuration. The tradeoff: Fish uses its own syntax that's not POSIX-compatible, so some scripts need adjusting.

brew install fish
# Set as default shell:
echo $(which fish) | sudo tee -a /etc/shells
chsh -s $(which fish)

Zsh — The Standard

Default on macOS since Catalina. POSIX-compatible, massive plugin ecosystem via frameworks like Oh My Zsh. Requires more setup to get the same features Fish has by default.

# Already installed on macOS. On Linux:
sudo apt install zsh
# Add autosuggestions (Fish-like):
brew install zsh-autosuggestions zsh-syntax-highlighting

Bash — Universal

Available everywhere. If you write scripts that run on servers, CI, and containers, Bash is the guaranteed-available option. Functional but barebones for interactive use.

Recommendation: Fish if you want the least configuration. Zsh if you need POSIX compatibility and want to customize. Bash for servers and scripts.


Step 4: Set Up Your Prompt

Starship — Cross-Shell Prompt

Works with Fish, Zsh, and Bash. Shows git branch, language versions (Node, Python, Rust, Go), cloud context, command duration, and exit codes. Written in Rust — renders in under 10ms.

brew install starship

Add to your shell config:

Fish (~/.config/fish/config.fish):

starship init fish | source

Zsh (~/.zshrc):

eval "$(starship init zsh)"

Customize with ~/.config/starship.toml. The defaults are good — only customize if you want to add or remove prompt segments.


Step 5: Upgrade Your Core Tools

Replace legacy Unix commands with modern alternatives. See Modern Alternatives to Classic Unix Commands for the full breakdown.

The essential five:

brew install ripgrep fd bat eza zoxide
InstallReplacesWhat it adds
ripgrep (rg)grep.gitignore aware, significantly faster
fdfindSimpler syntax, smart defaults
batcatSyntax highlighting, line numbers
ezalsGit status, icons, tree view
zoxide (z)cdLearns your directories, fuzzy matching

Set up aliases in your shell config:

alias cat="bat"
alias ls="eza"
alias find="fd"
alias grep="rg"

Add zoxide initialization:

Fish:

zoxide init fish | source

Zsh:

eval "$(zoxide init zsh)"

Step 6: Git Tools

lazygit — Git TUI

Full terminal UI for git. Stage hunks, rebase, resolve conflicts, manage branches — all with keyboard shortcuts.

brew install lazygit

delta — Better Diffs

Syntax-highlighted diffs with line numbers. Set it as your git pager:

brew install git-delta

Add to ~/.gitconfig:

[core]
    pager = delta
[interactive]
    diffFilter = delta --color-only
[delta]
    navigate = true
    side-by-side = true

gh — GitHub CLI

Create PRs, review issues, manage repos from the terminal.

brew install gh
gh auth login

For more git tools, see Best Git CLI Tools.


Step 7: Terminal Multiplexer

A multiplexer lets you split panes, manage windows, and keep sessions alive when you disconnect.

tmux — The Standard

brew install tmux

Essential keybindings (prefix is Ctrl+b by default):

  • prefix + % — vertical split
  • prefix + " — horizontal split
  • prefix + c — new window
  • prefix + d — detach (session stays alive)
  • tmux attach — reattach to session

zellij — Easier Alternative

brew install zellij

Zellij shows keybindings in a status bar, so you don't need to memorize anything. Lower learning curve than tmux, with floating panes and built-in layouts.

Recommendation: zellij if you're new to multiplexers. tmux if you want the ecosystem (plugins, tpm, deep customization).


Step 8: Docker Tools (Optional)

If you work with containers:

lazydocker — Docker TUI

brew install lazydocker

See containers, images, volumes, logs, and stats in one view. Replaces docker ps, docker logs, docker stats — all at once. For more Docker tools, see Best Docker CLI Tools.


Step 9: Data Tools (Optional)

jq — JSON Processing

brew install jq

Pipe any API response into jq to filter and format. Essential if you work with REST APIs. See Best JSON CLI Tools for alternatives.

tldr — Practical Man Pages

brew install tldr

Community examples instead of full manuals. tldr tar gives you the 5 commands you actually need.


Step 10: AI Tools (Optional)

If you want AI assistance in your terminal:

npm install -g @anthropic-ai/claude-code  # Claude Code
pip install aider-chat                      # aider (open source)
gh extension install github/gh-copilot     # Copilot CLI

See Best AI CLI Tools for a full comparison with pricing.


The Complete Install Script

Here's everything from this guide in one block. Run what you need:

# Package manager (macOS)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Shell & prompt
brew install fish starship

# Core tools
brew install ripgrep fd bat eza zoxide

# Git tools
brew install lazygit git-delta gh

# Multiplexer (pick one)
brew install tmux
# brew install zellij

# Docker tools
brew install lazydocker

# Data tools
brew install jq tldr

Browse all these tools on clihub to see descriptions, GitHub stats, and alternative install methods.


FAQ

How long does this setup take?

About 30 minutes for the full setup, including Homebrew install time. The core tools (step 5) install in under a minute. Most of the time goes into configuring your shell and prompt to your taste.

Can I use this guide on Linux?

Yes. Replace brew install with your distro's package manager (apt install, dnf install, pacman -S). Most tools listed here are in standard Linux repositories. The shell config and aliases are identical.

Do I need all of these tools?

No. Start with steps 1-5 (terminal, package manager, shell, prompt, core tools). Add the rest as you need them. The core tools alone make a significant difference in daily workflow.


All tools in this guide are on clihub — the directory for discovering command line tools.

Find these tools on clihub

Browse install commands, star counts, and comparisons for every CLI tool mentioned in this article.

Related articles