Skip to content

NongKnot/StayUp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StayUp 🦆

Duck's up. Mac stays awake. Work does not faceplant.

License: MIT Open Source Platform: macOS 13+ Architecture: Apple Silicon Built with Swift Duck Mode

Free Apple Silicon Mac menu-bar Duck that keeps local work alive when macOS really wants a nap. No account. No telemetry. No weird cloud leash.

Close the lid. AI agent still working. Render still rendering. Download still downloading. Good Duck.

Duck walking with a closed MacBook
Close Lid. Walk.
Duck beside a docked MacBook
Mac(Book) Mini.
Duck watching local work run at night
Ducking Auto.

🦆 What The Duck Does

  • Don't Let Work Die. Close the lid. Duck keeps the Mac up.
  • Ducking Auto. Trusted local work starts. Duck wakes. Work stops. Duck naps.
  • Walks With You. Carry the Mac. Duck waddles. Important science.
  • Don't Die. Low battery? Duck taps out before the Mac faceplants.

The StayUp Duck walking

🤔 Why Not Amphetamine?

Amphetamine is excellent and packed. If you want the big cockpit, use it.

StayUp is the tiny weird Duck for local AI/tool work: Activity Source receipts prove the job is alive, Auto keeps the Mac awake, then Duck stands down when the receipts go quiet.

If there is no real external monitor, Duck can also make a small fake display for remote GUI tools. Not magic. Just screen-shaped nonsense.

My creator hatched a Duck before Googling hard enough. Duck has learned humility. Duck remains up.

🚀 Getting A Duck

Normies Way ✨

Download StayUp from getstayup.app.

First setup has a few macOS prompts:

  • Welcome window: Launch at Login, Helper setup, update preference.
  • Helper setup: macOS approval plus one password prompt. This is the lid-closed-on-battery part.
  • Sparkle updates: optional signed updates from getstayup.app/appcast.xml.

No Helper, no hard-case promise. Duck is bold, not fake.

Respectable Way 🛠

StayUp is a small AppKit app built with swiftc. No Xcode project. No SPM. Sparkle is vendored so a fresh clone can build without dependency setup.

git clone https://github.com/NongKnot/StayUp.git
cd StayUp
bash build.sh

cp -R StayUp.app /Applications/
open /Applications/StayUp.app

For the real StayUp setup:

StayUp menu -> Settings -> Helper -> Set up

For a notarized local build:

bash build.sh notarize

That needs a Developer ID certificate and a configured notarytool keychain profile.

⚡ Auto Mode

Auto mode is Duck with timing:

work starts -> Duck up
work stops  -> grace timer
quiet again -> Duck down

Supported starter sources include Claude Code CLI, Codex CLI, LM Studio, and Ollama. Sources are local and opt-in. Cloud/web work somewhere else does not keep this Mac awake unless a local thing writes a heartbeat.

🔒 Privacy

No telemetry. No analytics. No crash reporting. No accounts.

StayUp reads local Activity Source receipts, optional local session details for the menu, and accelerometer samples only while engaged. Sparkle checks for updates only if enabled or manually requested.

Security notes live in SECURITY.md.

🧹 Uninstall

Polite path. Good Duck:

  1. Open StayUp -> Settings -> Helper -> Uninstall Helper.
  2. Quit StayUp.
  3. Drag /Applications/StayUp.app to the Trash.

Fast path:

pkill -x StayUp
sudo launchctl bootout system/app.getstayup.helper 2>/dev/null || true
rm -rf /Applications/StayUp.app
defaults delete app.getstayup 2>/dev/null || true

If System Settings still shows a background item afterward, remove it from:

System Settings -> General -> Login Items & Extensions

🙏 Credits

The code is MIT. Forks should use their own name and artwork so this Duck keeps his pond.

📜 License

MIT. See LICENSE.