Pin any window to the top of your screen — adapted for macOS 15 (Sequoia) and Apple Silicon (M1–M4).
This repository is based on the excellent original project:
- Upstream: lihaoyun6/Topit (AGPL-3.0)
Upstream targets macOS 13+ and ships via Homebrew / developer-signed releases. This fork focuses on:
| Item | Detail |
|---|---|
| Target OS | macOS 15.0+ (verified on 15.3.1) |
| Architecture | arm64 (Apple Silicon) |
| Build without full Xcode | CLI build.sh using Command Line Tools + swiftc |
| Permission UX | No infinite system permission prompt loop when access is denied |
| Auto-update | Sparkle auto-update is disabled (local stub) to keep the offline CLI build simple |
If you are on macOS 13/14 and want the official build, prefer the upstream releases.
- Pin windows from any application above other windows
- Pin multiple windows at once; move, resize, and interact with them
- Menu bar controls and keyboard shortcuts
- Window picker with live thumbnails
- macOS 15.0 or later
- Apple Silicon (arm64)
- Permissions (required):
- Screen Recording (录屏与系统录音)
- Accessibility (辅助功能)
Grab the latest .app from Releases.
- Unzip and drag
Topit.appto/Applications - Open Topit once (right-click → Open if Gatekeeper blocks ad-hoc signed apps)
- Enable Screen Recording and Accessibility for Topit in System Settings
- Click Check Again in Topit (or quit and reopen) after granting permissions
Note: This build is ad-hoc signed (no Apple Developer ID). That is normal for community builds. After you re-download a new binary, macOS may ask you to re-enable permissions once.
git clone https://github.com/Accesscoderlink4/Topit-macOS15.git
cd Topit-macOS15
./build.sh
open build/Topit.appRequirements:
- macOS 15 SDK via Command Line Tools (
xcode-select --install) - No full Xcode required for the CLI path
Open Topit.xcodeproj in Xcode 16+, set the run destination to My Mac, and build.
(You may need to adjust SPM packages; this fork vendors KeyboardShortcuts and stubs Sparkle for the CLI path.)
On denied screen-recording access, some older builds could retry every second and spam system prompts. This fork:
- Only checks permission state at launch / when the main window appears
- Shows a static in-app guide when permissions are missing
- Requests access only when you click the permission buttons
- Does not recurse into capture APIs while denied
Topit-macOS15/
Topit/ # App sources
Topit.xcodeproj/ # Xcode project (upstream)
vendor/KeyboardShortcuts/ # Vendored dependency (MIT)
build/manual_assets/ # Icons/images for CLI packaging
toolchain/ # CLT module-map shim for broken multi-CLT installs
build.sh # Package arm64 .app without full Xcode
script/build_and_run.sh
LICENSE # AGPL-3.0 (same as upstream)
This project remains under the GNU Affero General Public License v3.0 as required by upstream.
- Original copyright: lihaoyun6
- macOS 15 / CLI packaging adaptations: contributors of this fork
Third-party:
- KeyboardShortcuts — MIT (Sindre Sorhus)
- Sparkle — originally used upstream; stubbed here
This is a community adaptation for personal / open-source use. It is not an official release from the original author. Use at your own risk.