Groundwork

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.

Daily loop — 30 minutes
5m shell movement and history
5m tmux panes and sessions
7m Neovim motions and edits
5m Git status, diff, commit thinking
5m agent plan, diff, verification
3m macOS/Raycast/Anybox movement
Want the full path, day by day?

This 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

1

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.

2

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.

3

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 1Shell basics: pwd, ls, cd, mkdir, touch, cat, less, rm -i.
Day 2History and completion: Tab, CtrlR, CtrlA, CtrlE, AltB, AltF.
Day 3tmux panes: create, resize, move, zoom, rename a window, detach, attach.
Day 4Vim motions: h j k l, words, lines, search, insert, visual, delete, change, undo.
Day 5Git basics: git status, git diff, git add -p, commit, branch, switch, log.
Day 6macOS layer: app switching, window cycling, tabs, Raycast window snaps, Anybox link recall, BetterDisplay presets.
Day 7One-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

sh

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.

tm

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.

cp

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.

nv

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

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.

ai

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

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.

Instructor move

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.