Muscle memory
A daily practice plan for the terminal, tmux, Neovim, Git, and agents.
Keyboard skill is built by short, repeated reps. This page gives beginners a path and gives experienced developers a way to rebuild muscle memory without turning the whole day into tool practice.
5m shell movement and history5m tmux panes and sessions7m Neovim motions and edits5m Git status, diff, commit thinking5m agent plan, diff, verification3m macOS/Raycast/Anybox movementThis page is the sampler — the drills and the first week. Groundwork Twelve is the complete program: twelve gate-checked stages you can run steady (~1h/day, 12 weeks), committed (2–4h/day, ~6 weeks), or fully immersed (8–12h/day, under a month), with deep builds as assessments and an agent that graduates from tutor to delegate as your fundamentals harden.
#Day zero
Open Ghostty and read the prompt
Run pwd, ls, cd, and clear. Say out loud what folder you are in. Then use CtrlL to clear the screen.
Learn the Mac modifier names
⌘ is Command, ⌥ is Option, and in terminal docs Alt usually means Option sending an Alt/Meta key sequence. This setup configures Ghostty with macos-option-as-alt = true.
Start tmux
Run tmux new -s practice. Split with Ctrla then | and Ctrla then -. Move with Alth/j/k/l.
#Week one
Spend one day on each track, then repeat the hard ones. Beginners should stop while it still feels fun; experienced developers can do the same drills inside a real project.
| Day 1 | Shell basics: pwd, ls, cd, mkdir, touch, cat, less, rm -i. |
| Day 2 | History and completion: Tab, CtrlR, CtrlA, CtrlE, AltB, AltF. |
| Day 3 | tmux panes: create, resize, move, zoom, rename a window, detach, attach. |
| Day 4 | Vim motions: h j k l, words, lines, search, insert, visual, delete, change, undo. |
| Day 5 | Git basics: git status, git diff, git add -p, commit, branch, switch, log. |
| Day 6 | macOS layer: app switching, window cycling, tabs, Raycast window snaps, Anybox link recall, BetterDisplay presets. |
| Day 7 | One-hour AI-native build: create a tiny repo, edit in Neovim, run commands in tmux, ask an agent for one narrow change, review the diff, commit with Git, and write one note about what still feels awkward. |
#Tool drills
Shell drill
Create a folder in /tmp, make three files, search them with rg, preview them with bat, jump away, then use CtrlR to find the command again.
tmux drill
Open four panes. Put editor, tests, Git, and notes in separate panes. Move only with the keyboard. Detach with Ctrla then d, then attach again with tmux attach -t practice.
Copy drill (keyboard-only)
Run a command that prints several screens of output. Enter copy mode with Ctrla then [, page up and down without losing your place, search backward for a unique error string with / (n/N to repeat), select across two screens with v, and copy with y. Paste it into a temp file to prove it reached the clipboard. Then grab the last command with Ctrla then ShiftY. Do it all without the mouse — and be able to explain why a terminal's own selection can't see inside a tmux pane. See tmux → Selecting and copying.
Neovim drill
Open a file, jump by word, change text with ciw, search with /, split the window, and move between splits and tmux panes with Alth/j/k/l.
Git drill
Make two edits, stage only one with git add -p, inspect git diff --cached, commit, then use git show --stat to confirm what you actually saved.
Agent drill
Ask an agent to review a small diff. Accept no vague feedback: require file paths, line numbers, a concrete risk, and a suggested verification command. Then ask it for one tiny implementation change, read the plan, let it edit, and inspect the diff before keeping anything.
Mac layer drill
Open Ghostty, Zen, Finder, and Slack. Switch apps with ⌘Tab, windows with ⌘`, tabs with ⌃Tab, snap Ghostty and Zen with Raycast, then open a saved project link from Anybox.
#For teaching a team
Run this as a four-session workshop: terminal basics, tmux plus shell productivity, Neovim plus Git, then AI-native workflows. Keep every exercise inside a disposable practice repo so people can experiment without fear, and make "read the diff out loud" part of the final session.
Have everyone share one shortcut that felt awkward at first and one that already saved time. That normalizes the messy middle where muscle memory is still forming.