You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ls File list with icons
ll Long list with git status
la All files including hidden
lt Tree view (2 levels)
lt3 Tree view (3 levels)
lS Sort by size (largest first)
lm Sort by modified date
Git
gs git status
gss git status -s (short)
ga git add
gaa git add --all
gap git add -p (interactive)
gc git commit
gcm MSG git commit -m MSG
gca git commit --amend
gcan git commit --amend --no-edit
gd git diff
gds git diff --staged
gdw git diff --word-diff
gl git log (short, graph, 20 lines)
gla git log --all
glp git log (pretty, with author + date)
gp git push
gpf git push --force-with-lease
gpl git pull
gplr git pull --rebase
gb git branch
gba git branch -a (all)
gbd git branch -d (delete)
gco git checkout
gcb git checkout -b (new branch)
gsw git switch
gswc git switch -c (new branch)
gst git stash
gstp git stash pop
gstl git stash list
gf git fetch --all --prune
grb git rebase
grbi git rebase -i
grbc git rebase --continue
grba git rebase --abort
gcp git cherry-pick
gbl git blame
gwip Stage all + commit "WIP"
gunwip Undo last WIP commit
gtags List tags (newest first)
gclean Remove untracked files
lg lazygit
ghpr gh pr create
ghprv gh pr view --web
ghprs gh pr status
ghis gh issue list
leakscan Manually scan the working tree for secrets (gitleaks)
Git Hooks
Global (core.hooksPath = ~/.githooks), so they apply to every repo on this machine, not just this one. Every check can be skipped for a single command with --no-verify if it's a false positive.
ni npm install
nr npm run
nrd npm run dev
nrb npm run build
nrt npm run test
nrl npm run lint
Networking
myip Public IP address
localip Local/LAN IP address
ports Show listening ports
ping Ping (5 packets)
headers Fetch HTTP headers
flush Flush DNS cache (macOS)
Utilities
path Print $PATH one per line
reload Reload .zshrc
cls / c Clear terminal
h History
hg TERM Search history for TERM
j List background jobs
weather Current weather
week Current week number
timestamp Unix timestamp
uuid Generate a UUID
json Pretty-print JSON (pipe into it)
serve Start HTTP server on :8000
sha256 SHA-256 checksum
sizeof Size of file/directory
count Count files in current dir
ext File extension statistics
urlencode Encode a URL string
urldecode Decode a URL string
clip Copy to clipboard
paste Paste from clipboard
Process Management
psg TERM Search running processes
memhogs Top 10 memory consumers
cpuhogs Top 10 CPU consumers
rm Prompts before delete (rm -i)
cp Prompts before overwrite (cp -i)
mv Prompts before overwrite (mv -i)
FZF (Fuzzy Finder)
Shortcut
Action
Ctrl+T
Search files (insert path)
Alt+C
Search directories (cd into it)
**<Tab>
Fuzzy completion (e.g., vim **<Tab>)
<Tab>
fzf-tab fuzzy menu for any completion (cd, kill, git checkout, etc.)
Atuin (Shell History)
Local-only — sync and update checks are disabled in ~/.config/atuin/config.toml. Never run atuin register/atuin login on this machine or history starts leaving it.
Shortcut
Action
Ctrl+R
Fuzzy search history (atuin)
↑ / ↓
Normal zsh history search (unchanged, atuin doesn't take over the arrow keys)
Mise (Runtime Versions)
Command
Action
mu node@22 (mise use)
Pin Node 22 for the current project (writes mise.toml)
mi (mise install)
Install versions pinned in mise.toml/.tool-versions
mr <task> (mise run)
Run a task defined in mise.toml
mise ls
List installed runtime versions
mise doctor
Diagnose activation/shims issues
Zoxide (Smart cd)
Command
Action
z foo
Jump to most-used dir matching "foo"
z foo bar
Jump to dir matching "foo" and "bar"
zi
Interactive selection with fzf
z -
Go back to previous directory
Tmux (prefix = Ctrl-a)
Sessions
Key
Action
tmux
Start new session
tmux new -s name
Named session
tmux ls
List sessions
tmux a -t name
Attach to session
prefix + d
Detach
prefix + $
Rename session
prefix + f
Fuzzy-jump between ~/GitHub projects (creates/switches session via tmux-sessionizer; override the search paths with TMUX_SESSIONIZER_PATHS="~/GitHub ~/work")
ts (shell alias)
Same sessionizer, usable from outside tmux too — starts/attaches a session
Windows
Key
Action
prefix + c
New window
prefix + ,
Rename window
prefix + n/p
Next/prev window
prefix + 0-9
Switch to window #
prefix + &
Close window
Panes
Key
Action
prefix + |
Split vertical
prefix + -
Split horizontal
prefix + h/j/k/l
Navigate panes
prefix + H/J/K/L
Resize panes
prefix + z
Toggle pane zoom
prefix + x
Close pane
Copy Mode (vi keys)
Key
Action
prefix + [
Enter copy mode
v
Start selection
y
Copy selection
q
Exit copy mode
Plugins
Key
Action
prefix + I
Install plugins (TPM)
prefix + U
Update plugins
prefix + Ctrl-s
Save session (resurrect)
prefix + Ctrl-r
Restore session (resurrect)
Neovim (leader = Space)
Navigation
Key
Action
Ctrl+h/j/k/l
Move between splits
Shift+h / Shift+l
Prev/next buffer
<leader>bd
Delete buffer
<leader>e
Toggle file explorer
<leader>E
Reveal current file in explorer
Finding (Telescope)
Key
Action
<leader>ff
Find files
<leader>fg
Live grep (search in files)
<leader>fb
Open buffers
<leader>fh
Help tags
<leader>fr
Recent files
<leader>fd
Diagnostics
<leader>fs
Git status
<leader>fc
Git commits
<leader>ft
Find TODOs
<leader>/
Search in current buffer
LSP (when attached)
Key
Action
gd
Go to definition
gr
Find references
gi
Go to implementation
K
Hover documentation
<leader>ca
Code action
<leader>rn
Rename symbol
<leader>D
Type definition
<leader>ds
Document symbols
[d / ]d
Prev/next diagnostic
<leader>d
Show diagnostic float
Git (Gitsigns)
Key
Action
]h / [h
Next/prev hunk
<leader>hs
Stage hunk
<leader>hr
Reset hunk
<leader>hS
Stage entire buffer
<leader>hu
Undo stage hunk
<leader>hp
Preview hunk
<leader>hb
Blame line
<leader>hd
Diff this
<leader>tb
Toggle inline blame
Editing
Key
Action
gcc
Toggle line comment
gc (visual)
Toggle block comment
ys{motion}{char}
Add surround (e.g., ysiw")
ds{char}
Delete surround
cs{old}{new}
Change surround
< / > (visual)
Indent (keeps selection)
Alt+j / Alt+k
Move line up/down
Ctrl+Space
Treesitter incremental select
jk
Exit insert mode
Text Objects (Treesitter)
Key
Action
af / if
Around/inside function
ac / ic
Around/inside class
aa / ia
Around/inside argument
]f / [f
Next/prev function
]c / [c
Next/prev class
Other
Key
Action
<leader>w
Save file
<leader>q
Quit
<leader>Q
Force quit all
<leader>a
Select all
Ctrl+d/u
Scroll down/up (centered)
Esc
Clear search highlight
Tool Quick Reference
jq (JSON)
cat data.json | jq '.'# Pretty-print
cat data.json | jq '.key'# Extract key
cat data.json | jq '.items[0]'# First array element
cat data.json | jq '.items | length'# Array length
cat data.json | jq '.[] | .name'# Map over array
curl -s api | jq -r '.data.url'# Raw output (no quotes)
http GET example.com/api # GET request
http POST example.com/api key=value # POST JSON
http -f POST example.com form=data # POST form
http -d example.com/file.zip # Download
http --headers example.com # Headers only