Docking is a native macOS overlay dock built with SwiftUI and a small AppKit windowing layer.
It provides a configurable dock panel, app and folder items, calendar/weather widgets, and a Control Center for settings.
Docking was built for desktops where the menu bar is already crowded: frequently used actions and glanceable information can live in the dock instead. It also supports Liquid Glass appearance presets.
- macOS 26 or later.
Install with Homebrew:
brew tap sk-226/docking https://github.com/sk-226/docking
brew trust --cask sk-226/docking/docking
brew install --cask sk-226/docking/dockingbrew trust --cask is required because this repository is used directly as the
cask tap. Prefer trusting only this cask instead of disabling Homebrew tap trust
checks globally.
If Homebrew reports Tap sk-226/docking remote mismatch, remove the old tap and
tap the GitHub repository again:
brew untap sk-226/docking
brew tap sk-226/docking https://github.com/sk-226/dockingA standalone build is available from the v0.0.4 release as a DMG. This 0.0.4 build is not Developer ID notarized, so macOS may ask you to confirm the app on first launch. If macOS blocks the first launch, approve Docking in System Settings > Privacy & Security and launch it again.
Uninstall:
brew uninstall --cask sk-226/docking/dockingInstalling Docking does not change Apple Dock settings. Docking starts as an overlay dock.
To use Docking as the primary dock:
- Launch Docking.
- Open Control Center > Restore.
- Click Use Docking as Primary Dock and confirm.
- Click Reload Apple Dock to Apply if needed.
To return to the Apple Dock:
- Open Control Center > Restore.
- Click Disable Docking replacement mode, or Restore Original macOS Dock Settings, and confirm.
- Click Reload Apple Dock to Apply if needed.
If you enabled Primary Dock mode, restore the Apple Dock before uninstalling. Uninstalling Docking removes the app, but it does not restore Apple Dock preferences.
swift build --product DockingRun the app from a staged macOS app bundle:
./script/build_and_run.shRun the framework-free validation executable:
swift run DockingValidationBefore sharing a local build, run:
./script/release_check.shManual checks that cannot be covered by SwiftPM are tracked in QA.md. Performance checks are tracked in PERFORMANCE.md. Maintainer notes are in DEVELOPMENT.md.
- Calendar events are read locally through EventKit.
- Location is requested only when current-location weather is enabled.
- Weather can use Open-Meteo for manual-city or fallback weather data.
- App usage is not uploaded.
- There is no analytics code.