macOS 15+ · free · MIT
Your AirPods already know when you slouch.
posture reads the head tracking sensor in your AirPods and nudges you when your head drops for too long. A menu bar app with a live figure and stats, and a CLI built for scripts and AI agents. No account, nothing leaves your Mac.
Needs Xcode command line tools. Builds the app into ~/Applications and links the CLI.

live menu bar figure
A small seated figure next to your other icons bends with your head in real time and turns orange while you slouch.
nudge after 30 seconds
Hold a bad posture past the grace period and you get a notification. Sit back up and it clears with a soft tick.
guided 3D setup
A wireframe head walks you through six moves and learns which way is forward, back and sideways for your AirPods.
stats that mean something
Daily score, time slouched, nudges, best upright streak, hour by hour and the week. Plus your neck's range of motion.
built for agents
Every command takes --json, posture now exits 0 or 1, and posture watch --json streams one event per second.
local only
No account, no network, no telemetry. Settings and history live in ~/.config/posture on your Mac.
guided setup
Look down, look up, ear to each shoulder, turn each way. A ring fills as you follow the head, and each move is checked: nod during a side tilt and it asks you to redo it. Then you sit the way you like to work, and that becomes your reference. At the end the head mirrors you live.

in the terminal
$ posture now
██████·············· 9° forward · 2° left upright
$ posture watch --json
{"event":"sample","degrees":17,"direction":"forward","pitch":17,"roll":-2,"slouching":true}posturewatch live in the terminalposture nowone reading, exit 0 upright, 1 slouchingposture statsscore, slouch time, streak, nudges, by hourposture configthreshold, grace period, range of motionposture doctorAirPods, permission, sensor, calibrationposture baropen the menu bar appquestions
- Which AirPods work?
- Any model with spatial audio head tracking: AirPods Pro, AirPods 3 or newer, AirPods Max and Beats Fit Pro. Standard AirPods 1 and 2 have no motion sensor.
- How accurate is it?
- The AirPods fuse an accelerometer and gyroscope into a gravity direction about 50 times a second, precise to a degree or two and drift free. posture compares it to the way you like to sit and splits the difference into forward, back and sideways.
- Does leaning back count as slouching?
- No. After the guided setup only a forward drop, or a sideways tilt past your threshold plus 5 degrees, counts. Turning to look at another screen is ignored.
- What can it not detect?
- The sensor measures rotation, not position. Pushing your chin forward with your eyes level, or slumping your back with your head level, is not detected. Most real slouching comes with a head drop.
- Does my data leave my Mac?
- No. posture has no network code. Everything stays in ~/.config/posture.