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.

  1. 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.
  2. 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.”
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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