Skip to content

Repository files navigation

Mac Suite

Three small Mac app. One brain. One face.

App Do what
MacAwake Mac try sleep. You say no. Pick how long.
MacClean Wipe keyboard without Mac typing garbage. Keyboard sleep, trackpad sleep, you clean.
MacMirror Menu bar mirror. Check face fast. Snap picture.

All three live here together. One repo. Fix one thing, all three get fix.

Free forever. No price, no accounts, no subscription, no telemetry backend selling anything. Source is public; licence is PolyForm Noncommercial — use it, share it, no charge, commercial use except by permission.


Why One Repo

Before, three separate repo. Same code copied three time. Copy drift. Drift rot:

  • Two of three app did not build
  • One CI red since April, nobody see
  • One app had four test file that never ran once — look like test, test nothing
  • Same file, LinkOpening.swift, in all three. Zero line differ. Three copy, no reason

One repo kill that. Shared code live one place: packages/MacKit.


Get Going

Need: macOS 14+, Xcode 26+, XcodeGen.

brew install xcodegen

Build one app:

cd apps/MacAwake
xcodegen generate
open MacAwake.xcodeproj

Test shared brain, fast, no Xcode:

cd packages/MacKit && swift test

That run in under one second. No app launch. Use it while you work.


Shape

mac-suite/
├── apps/
│   ├── MacAwake/         app, tests
│   ├── MacClean/
│   └── MacMirror/
├── packages/
│   ├── MacKit/           shared base — design, shell, seams
│   └── FitWindow/        window sizing helper
└── docs/
    └── design.md         read this before you touch UI

project.yml is truth. .xcodeproj is generated — never hand-edit, never commit. Info.plist also generated by XcodeGen. Put key in project.yml under info.properties. Hand edit get wiped.


Install

Apps are not signed. Apple charge $99/year for that. Not paid yet.

So Mac shout when you open. This normal. To make Mac quiet:

xattr -rd com.apple.quarantine /Applications/MacAwake.app

Only run that on app you trust. You built this one, so you trust it.

Homebrew removed unsigned app from main tap on 1 September 2026, and killed --no-quarantine flag in Homebrew 5.1. So install come from own tap plus GitHub Release DMG. Command above still needed.

Day the $99 get paid: CI already has notarize step waiting, switched off. Add three GitHub Secret, step wake up, no code change, xattr step goes away forever.


Privacy

Right now: nothing leave your Mac. Zero. No network call, no counter, no ping.

TelemetryClient seam exist in MacKit with do-nothing implementation. When real one built, this README and a proper privacy policy get written before it ship, and it get an off switch.

Do not read Classroom Quick Downloader privacy policy and think it apply here. Different product, different promise.


History

Three old repo folded in here, all commit kept. Old tip pinned forever:

git log history/MacAwake-import
git log history/MacClean-import
git log history/MacMirror-import

Point before the merge tagged pre-unification in each old repo.

To read old history of moved file, ask at old path:

git log history/MacAwake-import -- KeepAwake/App/KeepAwakeController.swift

git log --follow on new path will not chain back past the merge. Subtree import cost. Commits all there, just ask them the old way.


License

See LICENSE.md.

About

Three macOS menu-bar apps on one shared base: MacAwake, MacClean, MacMirror.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages