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.

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.

ActionKeybind
Navigate left splitCmd+Shift+H
Navigate right splitCmd+Shift+L
Navigate up splitCmd+Shift+K
Navigate down splitCmd+Shift+J
Toggle split zoomCmd+Shift+Z
Equalize splitsCmd+Shift+=
New split (default)Cmd+D
Quick terminalCmd+``

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:

ActionKeybind
Resize leftCmd+Shift+←
Resize rightCmd+Shift+→
Resize upCmd+Shift+↑
Resize downCmd+Shift+↓

Shell Aliases

Modern replacements for classic commands (using bat, eza, and zoxide):

AliasRunsWhat it does
catbatSyntax-highlighted file viewing
lsezaBetter directory listing
lleza -lLong format
laeza -laAll files, long format
treeeza --treeTree view
cdzoxideSmart directory jumping

Quick access:

AliasAction
vOpen neovim
lgOpen lazygit
lzdOpen lazydocker
yOpen 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:

AliasAction
cPipe to clipboard (pbcopy)
pPaste from clipboard (pbpaste)
cpwdCopy current directory path
fzfcFuzzy 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

KeybindAction
Ctrl+TFuzzy find files
Ctrl+RSearch command history
Alt+CFuzzy find and cd to directory

Notes Integration

CommandAction
notesOpen vault in neovim
notecd to vault
fnFuzzy find notes with preview
dnOpen today’s daily note

Git Shortcuts

AliasCommand
gagit add
gcgit commit
gsgit status
gchgit checkout
gbgit branch

Or just use lg to open lazygit for everything.

Config Quick Edits

AliasOpens
zshconfig~/.zshrc
gconfigGhostty config
claudeconfigClaude 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:

  1. Cmd+`` — quick terminal for a fast command
  2. cd web — jump to web-projects (zoxide remembers)
  3. lg — open lazygit, check status
  4. Cmd+D — split terminal
  5. Cmd+Shift+L — navigate to new split
  6. claude — start Claude Code session
  7. Work, make changes
  8. Cmd+Shift+Z — zoom Claude’s split when focusing
  9. Cmd+Shift+H — back to lazygit to commit

If I change shell config mid-session:

source ~/.zshrc

If I change Claude hooks:

/exit
# relaunch

Back to home