Terminal Cheatsheet
Last updated: January 2026
This is a reference sheet for the terminal workflow I use daily — Ghostty as the terminal, zsh with modern command replacements, and Claude Code and Codex for AI integrations. I’m testing other tools which I’ll share and update after I’ve added to my actual workflow.
The Stack
This seems like a lot of tools, but they work together seamlessly and have leveled up my productivity by allowing me to stay within the terminal for longer periods of focused work. Much of this stack is inspired by Omarchy, but adapted to work on my Macbook.
- Terminal: Ghostty — fast, GPU-accelerated, great splits
- Shell: zsh with Oh My Zsh
- Editor: LazyVim (Neovim distro), Zed for deeper reviews
- AI: Claude Code and Codex CLI
- Git: lazygit — terminal UI (TUI) for git
- Docker: lazydocker — TUI for docker
- Navigation: zoxide — smarter cd
- Files: yazi — terminal file manager
- Search: fzf — fuzzy finder for everything
When to Use What Editor
LazyVim for most editing — it’s fast, stays in the terminal flow, and the keybinds become muscle memory.
Zed when you need:
- Multi-file review with better visual diffing
- Side-by-side comparisons
- Longer reading sessions where GUI comfort helps
- Pair programming or screen sharing
The zed command opens the current directory. I’ll often zed . after Claude or Codex makes a batch of changes to review everything before committing.
When to Source vs When to Exit
I’ve found that this can be tricky to remember, but here is a helpful rule:
Run source ~/.zshrc when you change:
- Shell aliases or functions
- Environment variables
- Ghostty config
- Neovim config
- Any tool that runs in the terminal (lazygit, Starship, etc.)
Run /exit in Claude Code when you change:
- Claude hooks or skills
- Claude config files
- Slash command definitions
Sometimes Claude won’t refresh skill changes without a full /exit. This is why the /rename + /resume flow is useful — you can exit cleanly and resume your session with the new config.
# Before exiting, name your session
/rename my-feature-work
# After relaunching Claude
/resume my-feature-work
Here’s the quick reference for which command to run:
# After editing .zshrc
source ~/.zshrc
# After editing Claude config
/exit # then relaunch claude
Ghostty Navigation
My Ghostty setup uses vim-style navigation with Cmd+Shift as the modifier.
| Action | Keybind |
|---|---|
| Navigate left split | Cmd+Shift+H |
| Navigate right split | Cmd+Shift+L |
| Navigate up split | Cmd+Shift+K |
| Navigate down split | Cmd+Shift+J |
| Toggle split zoom | Cmd+Shift+Z |
| Equalize splits | Cmd+Shift+= |
| New split (default) | Cmd+D |
| Quick terminal | Cmd+`` |
The quick terminal (`Cmd+“) opens a dropdown pane from the top of the screen. Useful for quick commands that don’t need a persistent split.
Resizing splits:
| Action | Keybind |
|---|---|
| Resize left | Cmd+Shift+← |
| Resize right | Cmd+Shift+→ |
| Resize up | Cmd+Shift+↑ |
| Resize down | Cmd+Shift+↓ |
Shell Aliases
Modern replacements for classic commands (using bat, eza, and zoxide):
| Alias | Runs | What it does |
|---|---|---|
cat | bat | Syntax-highlighted file viewing |
ls | eza | Better directory listing |
ll | eza -l | Long format |
la | eza -la | All files, long format |
tree | eza --tree | Tree view |
cd | zoxide | Smart directory jumping |
Quick access:
| Alias | Action |
|---|---|
v | Open neovim |
lg | Open lazygit |
lzd | Open lazydocker |
y | Open yazi (cd on exit) |
Smart navigation with zoxide:
Zoxide learns your habits. Visit a directory a few times and it remembers. Then you can jump with partial matches:
cd seeds # jumps to ~/Documents/.../jonathanprozzi/seeds
cd dot # jumps to ~/Documents/.../dotfiles
cd ai # jumps to ai-research
cd int # jumps to intuition project
No aliases needed — zoxide figures out what you mean based on your history.
Clipboard Helpers
These make piping to/from clipboard trivial:
| Alias | Action |
|---|---|
c | Pipe to clipboard (pbcopy) |
p | Paste from clipboard (pbpaste) |
cpwd | Copy current directory path |
fzfc | Fuzzy find and copy selection |
Quick path sharing for Claude:
The combo of zoxide + cpwd is great for quickly grabbing paths to share with Claude or paste into conversations:
cd seeds && cpwd # jump to vault, copy full path
cd dot && cpwd # jump to dotfiles, copy full path
Now you can paste the full absolute path into Claude or a message without typing it out.
fzf Integration
| Keybind | Action |
|---|---|
Ctrl+T | Fuzzy find files |
Ctrl+R | Search command history |
Alt+C | Fuzzy find and cd to directory |
Notes Integration
| Command | Action |
|---|---|
notes | Open vault in neovim |
note | cd to vault |
fn | Fuzzy find notes with preview |
dn | Open today’s daily note |
Git Shortcuts
| Alias | Command |
|---|---|
ga | git add |
gc | git commit |
gs | git status |
gch | git checkout |
gb | git branch |
Or just use lg to open lazygit for everything.
Config Quick Edits
| Alias | Opens |
|---|---|
zshconfig | ~/.zshrc |
gconfig | Ghostty config |
claudeconfig | Claude config |
The Hyper Key
Via Karabiner-Elements, Right Command becomes a “Hyper” key — Cmd+Ctrl+Opt+Shift all at once. This opens up a whole namespace of shortcuts that never conflict with anything.
Also:
- Caps Lock (held) → Control
- Caps Lock (tapped) → Escape
Putting It Together
A typical flow:
Cmd+``— quick terminal for a fast commandcd web— jump to web-projects (zoxide remembers)lg— open lazygit, check statusCmd+D— split terminalCmd+Shift+L— navigate to new splitclaude— start Claude Code session- Work, make changes
Cmd+Shift+Z— zoom Claude’s split when focusingCmd+Shift+H— back to lazygit to commit
If I change shell config mid-session:
source ~/.zshrc
If I change Claude hooks:
/exit
# relaunch