STANDCOACH
Your standing desk works. Your habit doesn't. StandCoach lives in the macOS menu bar and ramps you from 10 minutes of standing per hour to a 50/50 split — one week at a time, only when you're actually at your desk.
Your standing desk is mostly
a very expensive sitting desk.
Day one: three heroic hours on your feet. Day three: your legs file a complaint. Week four: the preset buttons gather dust. The hardware was never the problem — the dosage was.
Enthusiasm isn't a dose
Standing too long, too soon trades back pain for leg fatigue — and ends the habit before it starts. Progression is the whole game.
Reminders that can't see you
Generic apps fire on the hour — in meetings, on the couch, away from the desk entirely. You learn to swipe them away, then you stop noticing them at all.
Invisible progress
No streak, no history, no trend line. A habit you can't see is a habit you can't keep.
One glance.
Sit ⇄ stand, on rails.
-
01
SIT · clinical blue
External display detected → the sit timer starts. Week 3 gives you 50 minutes.
-
02
PROMPT · amber
“Time to stand (20 min).” DONE starts the clock — SNOOZE buys five more.
-
03
STAND · vital green
The stand timer runs. Desk paired? It rises with you — and standing past the goal keeps counting.
-
04
RELEASE
“You can sit now.” Back to 01 — all day, automatically. The menu-bar icon tells the phase at a glance.
Ten minutes an hour.
Then, quietly, half your day.
The schedule advances every seven days from your first launch. The 35/35 plateau is deliberate: sit-stand research puts ~50% standing at the ceiling where benefit outruns leg fatigue. StandCoach takes you there — and holds.
RESET WEEK restarts the progression at week 1 · standing history is preserved.
It knows when you're
actually at your desk.
The proxy is beautifully boring: your external display. Plugged in means you're at the desk. Everything else follows.
- PLUG IN — coaching starts. The sit timer begins the moment your setup wakes.
- UNPLUG — timers pause and pending prompts are cleared. No ghost notifications at the coffee shop.
- RECONNECT — clean resume, mid-cycle, exactly where you left off.
- PAUSE FOR TODAY — one click silences everything until tomorrow. Coach, not drill sergeant.
PRESS THE KEYS — THE DEMO DESK OBEYS
It can drive
the desk itself.
Native CoreBluetooth speaking the Jiecang protocol — Uplift, Desky, Jarvis and friends. Pair once; it reconnects on every launch. No bridge, no Home Assistant, no cloud.
- AUTO-RISE — stand time starts, the desk glides to your standing preset.
- CONSENT TO LOWER — it never descends on its own. “Lower desk” is always your tap.
- DESK = SOURCE OF TRUTH — raise it any way you like and the standing time counts; the goal keeps counting until you lower.
- WIGGLE TO REMIND — optional: a gentle up-and-back nudge the moment the prompt fires. Nets to zero; pure body language.
UPLIFT DESKS NEED THE UPLIFT CONNECT BLE ADAPTER · ONE BLUETOOTH LINK AT A TIME — QUIT THE PHONE APP.
Streaks that respect your weekend.
Working days only — Sat/Sun in the US, Fri/Sat in Israel, per your Mac's region. Every other Friday is a scheduled rest day, and your week starts on whichever day you choose.
An app that interrupts you
for a living has to earn it.
QUIET
- NO DOCK ICON — menu-bar only (
LSUIElement). No window clutter, ever. - PROMPTS ONLY AT YOUR DESK — and snooze, or pause for today, when life happens.
- THREE NOTIFICATION STYLES — banner + sound, banner only, or fully silent: the menu-bar icon alone signals the change.
- POWERS ON WITH YOU — launch at login via
SMAppService; integrations stay off by default.
YOURS
- SANDBOXED, NO NETWORK — your data never leaves the Mac.
- LOCAL-FIRST STORAGE — schedule, streaks and history live in
UserDefaults, keyed by day. - BLUETOOTH IS DESK-LOCAL — BLE to your desk, not the internet. Analytics? Strictly opt-in, off by default.
- RESET WEEK, KEEP HISTORY — restart the ramp anytime; the record of what you did survives.
STAND UP.
GRADUALLY.
SWIFTUI + APPKIT · MACOS 14+ · COREBLUETOOTH (JIECANG) · SWIFTUI CHARTS · JETBRAINS MONO · SANDBOXED
CONNECT AN EXTERNAL DISPLAY TO START