← All Steps

Shell & Dotfiles

Your shell is going to be open all day. Spend 20 minutes setting it up properly and stop fighting it.

Shell Choice

We recommend zsh (default on macOS) or fish. Both work well with our tooling.

Starship Prompt

We use Starship for a fast, informative prompt that shows git status, language versions, and Kubernetes context at a glance.

Install and initialise:

brew install starship

Add to your shell config:

# ~/.zshrc
eval "$(starship init zsh)"

# ~/.config/fish/config.fish
starship init fish | source

Create a minimal config at ~/.config/starship.toml:

[character]
success_symbol = "[>](bold green)"
error_symbol = "[>](bold red)"

[kubernetes]
disabled = false
format = '[$symbol$context( \($namespace\))]($style) '

[gcloud]
disabled = true

[aws]
disabled = false
format = '[$symbol($profile )(\($region\))]($style) '

Useful Aliases

Add these to your ~/.zshrc or ~/.config/fish/config.fish:

# Git shortcuts
alias gs="git status"
alias gd="git diff"
alias gl="git log --oneline -20"
alias gco="git checkout"
alias gcb="git checkout -b"

# Kubernetes
alias k="kubectl"
alias kgp="kubectl get pods"
alias kgs="kubectl get svc"
alias kns="kubectl config set-context --current --namespace"
alias kctx="kubectl config use-context"

# Docker
alias dc="docker compose"
alias dps="docker ps --format 'table {{.Names}}\t{{.Status}}\t{{.Ports}}'"

# General
alias ll="ls -la"
alias ..="cd .."
alias ...="cd ../.."

Directory Navigation

zoxide is a smarter cd that learns your habits:

brew install zoxide

Add to your shell config:

eval "$(zoxide init zsh)"

Then use z instead of cd:

z gremlin    # jumps to ~/git/gremlin (or wherever you go most)
z site       # jumps to the last directory matching "site"

Terminal Multiplexer

For managing multiple sessions, we recommend tmux:

brew install tmux

A minimal ~/.tmux.conf:

# Use Ctrl+a instead of Ctrl+b
set -g prefix C-a
unbind C-b
bind C-a send-prefix

# Split panes with | and -
bind | split-window -h
bind - split-window -v

# Mouse support
set -g mouse on

# Start windows and panes at 1, not 0
set -g base-index 1
setw -g pane-base-index 1

Next Steps

Continue to Git Configuration to set up your commit signing and defaults.