A native macOS utility that turns the notch into a calm, useful surface.
File Shelf · Now Playing · Timer · Stopwatch · World Clocks · Bitcoin · Clipboard · Notes
satsdisco.github.io/ledge · Download · Changelog
Ledge lives invisibly inside your MacBook notch. Hover or press ⌃⌥Space to expand a clean drawer with your active module. Right-click for quick actions. Close the drawer and it disappears — no Dock icon, no menu bar clutter.
| Module | What it does |
|---|---|
| File Shelf | Drag files onto the notch to park them temporarily. Drag out to any app, copy path, reveal in Finder, pin items across relaunches. |
| Now Playing | Album art, track title, artist, and transport controls for Apple Music and Spotify. |
| Timer / Stopwatch | Focus presets (5 / 10 / 25 / 60 min) with start / pause / reset and a completion sound, plus a count-up stopwatch with drift-free pause and resume. |
| World Clocks | Up to 6 configurable timezones with analog or digital faces, live-updating. |
| Bitcoin | Live BTC/USD from CoinGecko — price, 24h change, and a sparkline chart. |
| Clipboard | Manual stash for text, images, and files. Press ⌃⌥V, click Capture, or drag onto the notch. Rich text + HTML preserved, on-device OCR on stashed images (text becomes searchable), pinning, snippet editing, full keyboard nav (↑↓ ⏎ ⌫ ⌘F ⌘1–9 space). Concealed-clipboard hints from password managers are honored — secrets get skipped. |
| Notes | Daily notepad with auto-rollover. Today's note is always editable and autosaves; at midnight it slides into a scrollable archive that renders markdown (headers, lists, bold, code, links). |
Each module can be enabled or disabled independently in Settings.
Download the latest DMG (macOS 14 Sonoma or later)
- Open the DMG.
- Drag Ledge to Applications.
- Launch Ledge. Grant Automation permission when prompted (needed for Now Playing).
- Enable "Launch at login" in Settings if you'd like.
Ledge is Developer ID signed and Apple notarized — no Gatekeeper warnings.
| Action | How |
|---|---|
| Expand | Hover the notch, or press ⌃⌥Space |
| Collapse | Move the cursor away, or press ⌃⌥Space again |
| Switch modules | Click the tabs in the expanded header |
| Stash to clipboard | Drag onto the notch, or press ⌃⌥V to capture the system clipboard |
| Drop files | Drag any file onto the notch |
| Quick actions | Right-click the notch area |
| Open Settings | Right-click → Settings, or expand + ⌘, |
| Quit | Right-click → Quit Ledge |
Both global shortcuts are rebindable in Settings → Shortcuts. The full Clipboard keyboard cheat sheet lives there too.
Requires Xcode 16+ and macOS 14+.
git clone https://github.com/satsdisco/ledge.git
cd ledge
swift build
./scripts/make-app.sh
open build/Ledge.appTo build a signed release DMG:
./scripts/release.sh # Developer ID signed
./scripts/release.sh --notarize # + Apple notarizedLedge is built with Swift + SwiftUI for content and AppKit (NSPanel) for the floating window layer. The module system uses a protocol-based architecture — each module is a self-contained unit with its own views, state, and persistence.
App/ Entry point, AppDelegate, RootCoordinator
Window/ NSPanel, geometry, display coordination
Interaction/ Hover engine, expansion controller, keyboard shortcuts
ModuleHost/ Module protocol, registry, persistence, enable/disable
Modules/ FileShelf, NowPlaying, Timer, Clocks, Bitcoin, Clipboard, Notes
Services/ Logging, feature flags, login item, Sparkle updater
DesignSystem/ Motion tokens, palette, typography
Settings/ SwiftUI settings panes
See docs/ARCHITECTURE.md for the full design, and docs/ADRs/ for key engineering decisions.
Ledge is local-first. The only network calls are:
- CoinGecko API — public price data for the Bitcoin module (no auth, no tracking).
- Sparkle — checks
https://satsdisco.github.io/ledge/appcast.xmlonce a day for new versions. Updates are signed with an EdDSA key and only installed if the signature matches.
Clipboard images run through the on-device Vision framework for OCR. Nothing leaves your Mac.
No telemetry, no analytics, no accounts, no cloud sync. Your data stays on your Mac in ~/Library/Application Support/Ledge/.
- macOS 14 Sonoma or later
- Apple silicon or Intel Mac (universal binary)
- A Mac with a notch (works on non-notch Macs with the synthetic-notch option in Settings → Advanced)
All rights reserved. Free to download and use.
Built by @satsdisco.
Uses KeyboardShortcuts by Sindre Sorhus and Sparkle by Andy Matuschak / the Sparkle Project.