Tiny charms that hang from the top of your Mac screen, swing with real rope physics, and cheer you on. A gentle focus buddy, made for ADHD brains. Free and open source.
https://github.com/user-attachments/assets/83c76ddd-3cf0-400b-ad3a-4ef0acb147b8

⬇ Download Swaybles — Mac, macOS 14 or newer.

Swaybles collects no data. None.
Don't take our word for it — this is the entire source code, right here in this repo.
You need Xcode (free, Mac App Store).
cd mac
swift run Swaybles # or: open Package.swift, then ⌘R in Xcode
swift test # or ⌘U in Xcode
Swaybles lives in the menu bar (✨). Open Swaybles Studio from there (⌘,) to pick charms, set your 90-day goal and choose a rope.
mac/scripts/make-app.sh # → mac/dist/Swaybles-<version>.zip
Without a paid Apple Developer account the app isn't notarized, so the first launch is right-click → Open.
Art comes from Imagine Art using the template in docs/ART.md. Save the PNG to art/raw/<pack>/<id>.png, add the
charm to tools/packs.json, then:
npm install # once
npm run charms <pack>
npm run charms:review <pack>
| Folder | What |
|---|---|
mac/ | The app (Swift). See CLAUDE.md for the code map. |
docs/ | PRD, art spec, 90-day charm calendar |
tools/ | Art importer, contact sheet, promo-video recorder |
art/raw/ | Original Imagine Art images |
src/ | Old Electron version (kept for the art pipeline; being retired) |
Code: MIT. Charm images: see ART-LICENSE.
Swift
59.1%
JavaScript
33.8%
HTML
5.3%
Shell
1.8%
Tiny charms that hang from the top of your Mac screen, swing with real rope physics, and cheer you on. A gentle focus buddy, made for ADHD brains. Free and open source.
https://github.com/user-attachments/assets/83c76ddd-3cf0-400b-ad3a-4ef0acb147b8

⬇ Download Swaybles — Mac, macOS 14 or newer.

Swaybles collects no data. None.
Don't take our word for it — this is the entire source code, right here in this repo.
You need Xcode (free, Mac App Store).
cd mac
swift run Swaybles # or: open Package.swift, then ⌘R in Xcode
swift test # or ⌘U in Xcode
Swaybles lives in the menu bar (✨). Open Swaybles Studio from there (⌘,) to pick charms, set your 90-day goal and choose a rope.
mac/scripts/make-app.sh # → mac/dist/Swaybles-<version>.zip
Without a paid Apple Developer account the app isn't notarized, so the first launch is right-click → Open.
Art comes from Imagine Art using the template in docs/ART.md. Save the PNG to art/raw/<pack>/<id>.png, add the
charm to tools/packs.json, then:
npm install # once
npm run charms <pack>
npm run charms:review <pack>
| Folder | What |
|---|---|
mac/ | The app (Swift). See CLAUDE.md for the code map. |
docs/ | PRD, art spec, 90-day charm calendar |
tools/ | Art importer, contact sheet, promo-video recorder |
art/raw/ | Original Imagine Art images |
src/ | Old Electron version (kept for the art pipeline; being retired) |
Code: MIT. Charm images: see ART-LICENSE.
Swift
59.1%
JavaScript
33.8%
HTML
5.3%
Shell
1.8%