Blog · November 3, 2026 · 7 min read · by Vilva Athiban P B
Neck and Shoulder Stretches for Developers: A 90-Second Routine Between Agent Runs
Watch a developer wait for an agent run and you will see the same shape every time: head pushed forward toward the terminal, shoulders up near the ears, chin out. The wrists are idle, which is why we wrote the sixty-second wrist routine for exactly that gap, but the neck and shoulders are not idle at all. They are holding a position that NHS physiotherapy leaflets name directly as the thing to avoid: poking the chin forward and rounding the shoulders at a computer. This post is the companion routine, ninety seconds for the neck, upper back and shoulders, built from three published exercise programmes with their own hold times and repetition counts, and sized so that it fits between telling Claude Code or Codex what to do and reading what it did.
Where the moves come from
Three sources, all public, none of them ours. Cambridge University Hospitals' Neck exercises and advice leaflet (cuh.nhs.uk/patient-information/neck-exercises-and-advice/) describes head tilts and turns, a chin retraction, an upper trapezius stretch, a scalene stretch and a levator scapulae stretch; it leaves the hold times blank for a clinician to fill in, so we take those from elsewhere. Frimley Health's Head, neck and shoulder stretches leaflet (fhft.nhs.uk) gives repetition counts: shoulder lifts and rolls three to five times, a shoulder blade squeeze held for three seconds and practised three to five times a day, head turns and a gentle chin tuck three to five times at only fifty percent effort. And the Nicholas Institute of Sports Medicine and Athletic Trauma at Northwell publishes an Upper extremity and neck flexibility program (nismat.org) whose rule for every static stretch is hold twenty seconds, rest fifteen, repeat twice more, done once a day, moving in a slow, sustained manner until you feel a pull. Where the routine below gives a number, it is one of theirs.
The 90-second routine
Seated is fine; the NHS leaflets are written for a chair. Keep the shoulders down and relaxed throughout, breathe normally, and go to a pull, never to pain. The order matters a little: the first three moves loosen, the middle three stretch, the last one is the posture reset you carry into the next hour.
- Shoulder rolls (10 seconds). Arms relaxed at your sides, roll both shoulders three to five times, pause, then three to five times the other way. Frimley Health's leaflet starts here for a reason: it is the move that tells you where your shoulders were.
- Head turns (10 seconds). Body still, slowly turn your head toward the right shoulder and back to centre, three to five times, then the left. The leaflet says not to turn to your maximum range. Think “look at the monitor on the other desk,” not “look behind you.”
- Gentle chin tucks (10 seconds). Look straight ahead, draw the chin in so you make a double chin and lengthen the back of the neck, three to five times, using only half your effort. Cambridge's version is the same move described as chin retraction: pull the chin in while keeping the neck and back straight, without tipping the head forward. This is the direct antidote to the forward-head terminal lean.
- Upper trapezius stretch (20 seconds each side). Bring your chin toward the opposite collarbone without rounding the upper back, then turn the head slightly, and hold for twenty seconds; that is NISMAT's description and hold. Cambridge adds two useful details: grasp the chair with the hand on the stretched side and lean away from it, and do not pull on your head.
- Levator scapulae stretch (20 seconds each side). Place one hand on top of your head and gently guide it forward and toward the opposite armpit, without pulling; hold the chair with the other hand and lean away until you feel the stretch along the side and back of the neck. Cambridge describes it; the twenty-second hold is NISMAT's standard.
- Shoulder blade squeeze (10 seconds). Squeeze the shoulder blades together and draw them down your back, hold for three seconds, release; two or three of them. Frimley Health says it should feel easy, not forced. NISMAT's protraction and retraction is the same idea: shoulders forward as far as they go, then back with a squeeze, ten times, if you have the seconds.
- Posture check (the rest). Frimley's last item is not a stretch: sit tall and use the chair back for support rather than slumping. Cambridge's version: shoulders and back relaxed, neck long and upright, chin not poked forward. Set that before you read the agent's output, because the output is what pulls your head forward again.
Two 20-second holds on each side account for eighty of the ninety seconds, which is why this is a one-set routine rather than NISMAT's three; the agent run is the constraint, not the clinical ideal. On a long run, do the trapezius and levator holds a second time and you are at NISMAT's dose for those two.
What we deliberately left out
No head circles. Frimley's leaflet allows forward-only semicircles with the chin on the chest and says never to tip the head back; NISMAT's half-circles carry the same instruction. A full circle with the head rolled backward is the one neck move all three sources avoid, and it is the one most people do at a desk. Also no doorway pectoral stretch, even though a tight chest is part of the rounded-shoulder picture: NISMAT's chest stretch uses a dowel rod, and a doorway variant is not described in any of the three leaflets, so we are not going to invent one and attribute it to them. If you want it, ask a physiotherapist to show you.
When not to stretch
The leaflets are consistent, and worth repeating because developers tend to treat a sore neck as a hardware issue to work around. Cambridge: stop the trapezius stretch if you feel dizzy; if the exercises are painful, seek advice from a physiotherapist or GP; and it is not safe to drive if pain stops you turning your head. Frimley: stop any exercise that feels uncomfortable or causes pain, and stop the tilts and semicircles at any real pain or dizziness. NISMAT: the exercises should not cause or increase pain; reduce the stretch if it does, and if pain persists, stop and call your physician. Add to that the symptoms the NHS lists for repetitive strain injury in our wrist post, tingling, pins and needles or numbness: if any of those run down an arm when you tilt your head, that is a reason to see someone, not a reason to hold the stretch longer. None of this is medical advice; it is what the leaflets say, and the leaflets say to ask a clinician.
Doing it every run, not every lunch
NISMAT prescribes its flexibility programme once a day, every day. Frimley suggests ten to fifteen minutes daily or whenever you feel tension building, and Cambridge's general advice is to change position regularly, move the neck often, and split computer work into smaller chunks with regular breaks. The problem with all three for a working developer is the trigger: “whenever you feel tension building” arrives about four hours too late, and a timer gets dismissed. An agent run is a better cue, because it is a pause you did not have to schedule and it recurs many times a day. We made the general version of that argument in the post on sitting too long; the neck routine is the most desk-shaped application of it, since nothing here requires standing up.
Where NotchFit fits
NotchFit is the $20 one-time macOS menu bar and notch app for developers who use Claude Code or OpenAI Codex CLI. When your agent starts a task, the MacBook notch expands into a panel with a guided, animated exercise on the left and the AI's live progress on the right; the “Claude is done” and “needs permission” alerts wait until your set ends, every set starts only when you tap Start set, and the whole thing runs locally on macOS 14 or later with no account and no telemetry.
Honesty about the fit: the library holds 239 animated exercises, 198 of them photo animations of real athletes plus illustrated moves, and the weekly plan is written by your own agent with /notchfit:plan in Claude Code or $notchfit-plan in Codex after it asks about your goal, equipment, minutes per day and injuries. We are not going to claim that library contains a move called “levator scapulae stretch” because we have not checked that it does, and the app does not publish its exercise list by clinical name. Treat the seven moves above as a manual add-on: run them in the rest timer between NotchFit sets, or on runs where you have told the plan to go easy on your upper body. What the app contributes is the part the leaflets cannot: the cue that fires every run, the countdown ring, the streak and history heatmap that keep you doing it on day eleven, and the guarantee that the agent's finish alert will not interrupt a twenty-second hold at second twelve. If you would rather use the notch purely as a Claude Code and Codex status panel, the Hide workout toggle does that; on a Mac without a notch, NotchFit shows a top-centre pill instead.
Start with the next run
You do not need the app to try this. The next time the terminal says Claude has started, take your eyes off it, roll your shoulders, turn your head gently each way, tuck your chin, and hold each side of the neck for twenty seconds. By the time you have squeezed your shoulder blades and sat back in the chair, the run is usually waiting for you, and you will read its output from a head that is sitting on top of your spine rather than in front of it.
Keep reading
Desk Exercises for Programmers: 15 Moves to Do While Your AI Agent Codes
7 min read
Exercise While Coding: Turn Claude Code Wait Time Into Micro-Workouts
7 min read
Claude Code Notch Notifications on Mac: See When Claude Is Done Without Watching the Terminal
7 min read
Claude Code Tips and Tricks: 12 Ways to Use Claude Code Effectively
8 min read
Claude Code Multiple Sessions: How to Run Agents in Parallel Without Losing Track
6 min read
A Claude Code Workflow That Doesn't Involve Watching the Terminal
5 min read
Claude Code Hooks: A Practical Guide to Automating Your Agent Workflow
7 min read
Claude Code Auto Mode: Fewer Permission Prompts Without Living Dangerously
7 min read
Claude Code Subagents: How to Delegate Work to Specialized Agents
7 min read
Claude Code Context Management: Treat the Context Window Like a Budget
6 min read
Per-Subagent Model Selection: Route the Grunt Work Down, Keep the Judgment Up Top
7 min read
Skills and Plugins: How to Teach Claude Code Your Way of Working
7 min read
Claude Code Background Tasks: Run Long Commands Without Blocking Your Session
6 min read
Codex CLI Notifications: How to Get a Ding When Codex Is Done or Needs Input
7 min read
Cursor Notification When Done: Every Way to Get Notified When Cursor Finishes
6 min read
Claude Code Notifications: How to Get Notified When Claude Code Finishes or Needs Your Input
6 min read
Want to Be Notified When Claude Responds? How Claude Notifications Work on Web, Desktop, and Mobile
5 min read
Claude Code Notification Scripts: Copy-Paste Recipes for Every Platform
6 min read
Get a Ding the Moment Codex Needs Your Response
6 min read
Get Notified the Moment Claude Code Is Waiting for Your Input
6 min read
“Notifications Are Turned Off for Claude” — Here Is the Fix
6 min read
Codex Sound When Done: Make Codex CLI Play a Sound When It Finishes
6 min read
terminal-notifier + Claude Code: Native macOS Alerts When Your Agent Finishes
6 min read
Gemini CLI Notifications: How to Get a Sound or Alert When Gemini Finishes
6 min read
Get Claude Code Notifications on Your Phone
6 min read
Claude Code Remote Control, Explained
7 min read
preferredNotifChannel: Claude Code's Built-In Notification Setting
6 min read
Claude Code Notifications in tmux and Over SSH
7 min read
Claude Code Effort Levels: Why Your Setting Keeps Getting Ignored
8 min read
Codex vs Claude Code Notifications: How Each One Tells You It Is Done
8 min read
Claude Code Notifications Not Working: A Diagnostic Checklist
10 min read
Claude Code Notifications Inside Your Editor's Terminal
7 min read
CLAUDE_CODE_DISABLE_BACKGROUND_TASKS Explained
7 min read
CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP Explained
8 min read
Cursor Alerts Explained: Every Alert Cursor Raises, and How to Control Them
7 min read
Claude Code Environment Variables: The Groups That Actually Matter
10 min read
Claude Code Notifications on WSL and Windows
9 min read
Claude Code Checkpoints and /rewind
8 min read
Claude Remote Control: How It Works, Turning It Off, and Auto Mode
7 min read
Claude Code /loop: Poll a Deploy, Babysit a PR, and Get Told When It's Done
8 min read
Setting Up NotchFit With OpenAI Codex CLI: Hooks, $notchfit-plan, and the Daily Flow
7 min read
Claude Mods Explained: What the New Plugin Layer Can Do, and How to Turn On 'You Should Know'
9 min read
NotchFit vs Mac Break Reminder Apps: A Clock or a Signal From Your Coding Agent?
8 min read
Claude Code Headless Mode: Running claude -p in Scripts and CI, and the Three Signals That It Finished
10 min read
Building a Movement Habit at a Desk: Use the Agent Run as the Cue, One Set as the Unit, and Streaks Carefully
8 min read
Claude Code MCP Servers Explained: Adding Servers, Choosing a Scope, Handling Secrets, and Why Long Tool Calls Go to the Background
10 min read
/notchfit:plan Explained: How Claude Code or Codex Writes a Weekly Workout Plan the Notch Can Actually Run
8 min read
Claude Code Spinner Verbs Explained: What “Pondering” and “Brewing” Mean, How to Change Them, and Why You Should Stop Watching the Spinner
7 min read
Why NotchFit's Done and Permission Alerts Wait Until Your Set Ends, When That Costs You, and How to Turn the Workout Off
7 min read
How to Resume a Claude Code Session: --continue vs --resume, Naming Sessions, the Session Picker, Branching, and What Comes Back
9 min read
NotchFit on a Mac Without a Notch: How Pill Mode Works on Mac mini, iMac, Mac Studio and a MacBook With the Lid Closed
6 min read
How to Run a Claude Code Session in the Background: /background, claude --bg, Agent View, and Getting Back to It
9 min read
What a Notch App Can See: NotchFit's Local-First Design, What the Claude Code and Codex Hooks Send, and What Stays on Your Mac
7 min read
Why Codex CLI Asks for Permission Every Time, and How to Tune the Sandbox and Approval Policy Without Going Full Access
8 min read
What to Do While Claude Code or Codex Works: A Simple Protocol for the Two-to-Twenty-Minute Gap in Every Agent Run
7 min read
Is It Possible to Get a Notification When Claude Code or Codex Hits a Reset? Yes for Claude Code: the quota_auto_resume Hooks, Explained
8 min read
What a MacBook Notch App Can Actually Do: The Five Kinds of Notch Utility, Their Trade-offs, and Where NotchFit Fits
7 min read
How to Make MCP Servers Not Take Up as Much Context in Claude Code: Tool Search, alwaysLoad, Scopes and Output Caps
8 min read
The notchfit Command Line: Drive Your Workout, Read Status as JSON, Validate Plans and Test the Notch Without Leaving the Terminal
7 min read
How to Audit MCP Tool Calls Made by Claude Code: A Five-Minute Hook Audit Log, OpenTelemetry Tool Events, and the Transcript for Investigations
9 min read
Exercise Snacks: What the Research Actually Says About One-Minute Vigorous Breaks, What It Does Not, and How NotchFit's Agent-Run Sets Compare
8 min read
How Long Until a Claude Code MCP Tool Call Times Out? The Four Timers (Startup, Two-Minute Backgrounding, Idle, Wall-Clock), Their Defaults, and Which One to Change
8 min read
Sitting Too Long as a Developer: The Posture Problems Coding Agents Made Worse, What the Research Says About Breaking Up Sitting, and How NotchFit Turns an Agent Run Into the Break
8 min read
Claude Code .mcp.json Explained: Where Project-Scoped MCP Servers Are Read From, What Happens in Subfolders and Monorepos, and Why a Committed Server Shows Pending Approval
8 min read
Standing Desk Exercises for Developers: Why Standing Still Is Not the Goal, Eight Movements That Fit a Thirty-Second Agent Run, and How NotchFit Cues Them From the Notch
8 min read
The claude mcp Command Reference: add Syntax by Transport, What --scope local, project and user Actually Mean, add-json and add-from-claude-desktop, list, get, remove, login and serve
9 min read
Your First Week With NotchFit: Install and Simulate, Run Real Tasks, Write a Smaller Plan Than You Want, Tune the Alerts, Survive the First Skipped Day, and Decide What Stays
8 min read
How to Stop a Running Claude Code Task: Esc vs Ctrl+C, Background Tasks, Subagents, and Disconnecting Remote Control
8 min read
Pomodoro vs Agent-Driven Breaks: Timing Movement to Claude Code and Codex Runs Instead of a Timer
7 min read
Claude Desktop MCP Configuration: claude_desktop_config.json, Logs, Extensions, and the Difference From Claude Code
9 min read
The 20-20-20 Rule for Developers: Eye Strain, the Evidence, and Agent Runs as the Cue
8 min read
Claude Agent SDK + MCP Servers: mcpServers, allowedTools, Status Checks and Auth
9 min read
Discreet Desk Exercises for an Open-Plan Office While Claude Code Runs
7 min read
claude remote-control Server Mode: Run Claude Code as a Session Server
9 min read
Wrist and Forearm Stretches for Developers: A 60-Second Routine for Every Claude Code Run
7 min read
Claude Remote Control vs Claude Code on the Web: Which to Use and How They Differ
9 min read