A macOS Finder Sync Extension that adds context menu items when you right-click empty space in any Finder folder.
- Open in Ghostty — opens a new Ghostty terminal window at the current directory
- Open in Code — opens VS Code at the current directory
- New Text File — creates
Untitled.txtin the current directory (auto-increments if it already exists)
- macOS 14.0+
- Xcode 16+
- A free Apple Developer account (Apple ID added to Xcode)
- XcodeGen (
brew install xcodegen)
# Generate the Xcode project
cd FinderTools
xcodegen generate
# Build
xcodebuild -project FinderTools.xcodeproj -scheme FinderTools -configuration Debug \
DEVELOPMENT_TEAM=<YOUR_TEAM_ID> CODE_SIGN_IDENTITY="Apple Development" build
# Install to /Applications
cp -R ~/Library/Developer/Xcode/DerivedData/FinderTools-*/Build/Products/Debug/FinderTools.app /Applications/
# Launch (registers the extension)
open /Applications/FinderTools.app
# Enable the extension
pluginkit -e use -i com.jacobmaynard.FinderTools.FinderToolsExtension
# Restart Finder to load it
killall FinderAlternatively, open FinderTools.xcodeproj in Xcode, set your Team and signing certificate to "Apple Development" for both targets, and hit Cmd+R.
After launching the app for the first time:
- Go to System Settings → General → Login Items & Extensions → Finder Extensions
- Toggle on FinderToolsExtension
Or use the command line:
pluginkit -e use -i com.jacobmaynard.FinderTools.FinderToolsExtension
killall FinderThe extension stays enabled across restarts — the host app does not need to be running. Just keep FinderTools.app in /Applications.
After rebuilding, re-copy to /Applications and restart Finder:
rm -rf /Applications/FinderTools.app
cp -R ~/Library/Developer/Xcode/DerivedData/FinderTools-*/Build/Products/Debug/FinderTools.app /Applications/
killall FinderFinderTools/
├── project.yml # XcodeGen spec
├── FinderTools/
│ ├── AppDelegate.swift # Minimal host app
│ ├── Info.plist
│ └── FinderTools.entitlements
└── FinderToolsExtension/
├── FinderSync.swift # Extension logic (menu items + actions)
├── FinderToolsExtension.entitlements
└── Info.plist
Edit FinderToolsExtension/FinderSync.swift. Add a new NSMenuItem in menu(for:) and a corresponding @objc action method. Rebuild and reinstall.